Beagleboard Kernel Module Cross Compiling

#2534266
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
Gast #3263266
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...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren