Beagleboard Kernel Module Cross Compiling

OP #2534266
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

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.