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
Gast
#3263266
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...
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.