Raspberry Pi Crosscompilation

Aus Hackerspace Ffm
Wechseln zu: Navigation, Suche

Kurze Einführung, wie man am bequemsten für den Raspberry auf einem PC (unter Linux) kompiliert. Und zwar, ohne sich die große Mühe mit Crosscompilern und dergleichen zu machen. Dazu verwenden wir einen architectural chroot, bei dem wir eine Art virtuellen ARM-Chip simulieren, aber ohne den ganzen Overhead einer VM.

Vorbereitung

Packages installieren

sudo apt-get install proot qemu-user

Image herunterladen

Image: https://downloads.raspberrypi.org/raspbian_latest

unzip 2015-09-24-raspbian-jessie.img

Ordnerstruktur in lokales Filesystem kopieren

Position der root-partition im disk-image finden:

file 2015-09-24-raspbian-jessie.img
2015-09-24-raspbian-jessie.img:
DOS/MBR boot sector;
partition 1 : ID=0xc, start-CHS (0x0,130,3), end-CHS (0x7,165,30), startsector 8192, 114688 sectors;
partition 2 : ID=0x83, start-CHS (0x7,165,31), end-CHS (0x2d,220,15), startsector 122880, 8325120 sectors

Obige fette Zahl mit 512 (block size) multiplizieren und dann:

mkdir mnt
sudo mount -v -o offset=62914560 2015-09-24-raspbian-jessie.img mnt
mkdir raspbian
sudo cp -a mnt/* raspbian/
sudo umount mnt

Chroot

Normale Nutzung (z.B. compilieren):

proot -r raspbian -q qemu-arm [command]

Root-Zugang:

sudo proot -0 -r -q qemu-arm [command]

Die Argumente -R bzw. -S binden spezielle Verzeichnisse ein, das machte bei mir allerdings mehr Probleme als dass es eine Hilfe war.

TODO

  • fakeroot-Zugriff ohne sudo

Links

http://proot.me/#examples