Hallo Welt-Kernel-Modul für Android & unbekannte Verlagerung: 27, wenn insmod

Ich versuche ein einfaches Kernelmodul zu erstellen. Ich versuche, Nachrichten an dmesg zu drucken, aber ich bekomme immer

insmod: init_module 'hello.ko' fehlgeschlagen (Exec Format Fehler) in Android

nachher: ​​dmesg: unbekannter umzug: 27

#include <linux/module.h>
#include <linux/kdb.h>
int init_module(void)
{
    printk(KERN_ALERT "Hello world!\n");
    return 1;
}

void cleanup_module(void)
{
    printk(KERN_INFO "Goodbye world 1.\n");
}
MODULE_AUTHOR("Robert P. J. Day");
MODULE_LICENSE("Dual BSD/GPL");
MODULE_VERSION("2:1.0") ;
MODULE_DESCRIPTION("You have to start somewhere.");

Die make-Datei

    obj-m +=hello.o


KERNELDIR ?= ~/android/kernel/common
#KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
CROSS_COMPILE=~/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-

ARCH=arm
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) modules

clean:
$(MAKE) -C $(KERNELDIR) M=$(PWD) clean
rm *.symvers

Weiß jemand warum? Und wie bringt man es zum Laufen?

Ich habe nach einer Lektüre festgestellt, dass der Umsiedlungsabschnitt beim Kompilieren in die falsche Richtung zeigt.

Offset     Info    Type            Sym.Value  Sym. Name
00000008  0000171b R_ARM_PLT32       00000000   printk

Wann sollte es tatsächlich sein:

Offset     Info    Type            Sym.Value  Sym. Name
00000008  0000171c R_ARM_CALL       00000000   printk

Kann jemand raten / wissen, wie das sein könnte? Vielen Dank an Chris Stratton, der mir soweit geholfen hat.

Ich habe nach einer Lektüre festgestellt, dass der Umsiedlungsabschnitt beim Kompilieren in die falsche Richtung zeigt.

Offset     Info    Type            Sym.Value  Sym. Name
00000008  0000171b R_ARM_PLT32       00000000   printk

Wann sollte es tatsächlich sein:

Offset     Info    Type            Sym.Value  Sym. Name
00000008  0000171c R_ARM_CALL       00000000   printk

Kann jemand raten / wissen, wie das sein könnte? Vielen Dank an Chris Stratton, der mir soweit geholfen hat.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage