Forum: Compiler & IDEs Beagleboard Kernel Module Cross Compiling


von Thomas S. (dreamer2000)


Lesenswert?

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

von Jannik M (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.