Hallo, ich versuche seit ein paar Tagen ein selbst geschriebenes Kernel-Modul für ein eigebettetes System mit ARM-Architektur zu Kompilieren. Hier ist ein link zu dem System: http://www.rocketboards.org/foswiki/Documentation/ArrowSoCKitEvaluationBoard Ich kann das Modul unter Kubuntu Kompilieren, jedoch kann ich das Modul auf dem System nicht laden. Es kommt der Fehler, dass das Modul nicht kompatibel ist. Könnt ihr mit ein paar Tips für das Cross-Compiling geben? Hier das Modul zum testen:
1 | #include <linux/init.h> |
2 | #include <linux/module.h> |
3 | MODULE_LICENSE("Dual BSD/GPL"); |
4 | |
5 | static int hello_init(void) |
6 | {
|
7 | printk(KERN_ALERT "Hello, world"); |
8 | return 0; |
9 | }
|
10 | |
11 | static void hello_exit(void) |
12 | {
|
13 | printk(KERN_ALERT "Goodbye, cruel world\n"); |
14 | }
|
15 | |
16 | module_init(hello_init); |
17 | module_exit(hello_exit); |
und hier das Makefile:
1 | obj-m := hello.o |
2 | |
3 | KERNEL_SRC_DIR=/home/tobi/linux-socfpga |
4 | PWD=$(shell pwd) |
5 | |
6 | all: |
7 | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -C $(KERNEL_SRC_DIR) \ |
8 | M=$(PWD) modules |
9 | |
10 | clean: |
11 | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -C $(KERNEL_SRC_DIR) \ |
12 | M=$(PWD) clean |
unter /home/tobi/linux-socfpga befinden sich die Kernel Sources aus git://git.rocketboards.org/linux-socfpga.git zusätzlich habe ich die Linearo ARM toolchain hinzugefügt.