Hi!
Ich versuche seit einigen Wochen ein Kernel-Modul für das Beagleboard
über die Angstrom-Distribution zu kompilieren. Dabei handelt es sich
einmal nur um ein kurzes Minimal-Modul mit INIT und RELEASE...
Die Toolchain wurde so installiert:
git clone git://git.angstrom-distribution.org/setup-scripts
Danach habe ich noch den Kernel und ein Image gebaut:
MACHINE=beagleboard ./oebb.sh config beagleboard
MACHINE=beagleboard ./oebb.sh update
MACHINE=beagleboard ./oebb.sh bitbake virtual/kernel
MACHINE=beagleboard ./oebb.sh bitbake systemd-gnome-image
Im Netz habe ich das kurze Makefile fürs Modul-Kompilieren gefunden:
obj-m := mod1.o
Und das dazugehörigen Build-Script:
#!/bin/bash
export
SYSROOTS=${HOME}/source/toolchain/setup-scripts/build/tmp-angstrom_2010_
x-eglibc/sysroots
export
PATH=${PATH}:${SYSROOTS}/x86_64-linux/usr/bin/armv7a-angstrom-linux-gnue
abi
export ARCH=arm
export CROSS_COMPILE=arm-angstrom-linux-gnueabi-
export KERNELDIR=${SYSROOTS}/beagleboard/kernel
make -C ${KERNELDIR} M=$(pwd) modules
Ich bekomme folgenden Fehler:
tom@***:~/source/modtest$ ./run.sh
make: Entering directory
`/home/tom/source/toolchain/setup-scripts/build/tmp-angstrom_2010_x-egli
bc/sysroots/beagleboard/kernel'
CC [M] /home/tom/source/modtest/mod1.o
/bin/sh: scripts/basic/fixdep: not found
make[1]: *** [/home/tom/source/modtest/mod1.o] Error 127
make: *** [_module_/home/tom/source/modtest] Error 2
make: Leaving directory
`/home/tom/source/toolchain/setup-scripts/build/tmp-angstrom_2010_x-egli
bc/sysroots/beagleboard/kernel'
Soweit ich rausgefunden habe, ist fixdep dafür zuständig Abhängigkeiten
zwischen Paketen zu finden. Wie komme ich zu der ausführbaren Datei?
Wenn ich make modules_prepare ausführe, möchte er, dass ich eine
komplette Kernel-Konfiguration durchmache. Diese sollte ja durch das
oebb.sh schon eingerichte worden sein oder? Außerdem sollte das für x86
(Host) und nicht fürs Target kompiliert sein - richtig?
Kompiliert wird auf einem Ubuntu Host.
Jeder Vorschlag würde mir schon weiter helfen,
Danke Thomas
was mir spontan einfällt (nur vermutungen, kann auch schwachsinn sein =D): 1. in PATH steht was von "armv7a-angstrom-linux-gnueabi" <- include-Dir?? 2. in CROSS_COMPILER "arm-angstrom-linux-gnueabi-" <- CC-Command Präfix da fehlt evtl. das gcc 3. die in PATH stehenden Header usw. sind mit "armv7a-..." angegeben, dein compiler aber nur mit "arm-..." kenne das nur als identische namen 4. deine Toolchain ist definiert mit "...gnueabi..." = soft float, soweit ich mich erinnere ist die A-Dist. aber hard float, sprich "...gnueabihf..." 5. fixdep scheint er nicht zu finden, evtl neu installieren...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.