Raspberry Pi Crosscompilation: Unterschied zwischen den Versionen

Aus Hackerspace Ffm
Wechseln zu: Navigation, Suche
K (Ordnerstruktur in lokales Filesystem kopieren)
 
Zeile 22: Zeile 22:
 
  sudo mount -v -o offset='''62914560''' 2015-09-24-raspbian-jessie.img mnt
 
  sudo mount -v -o offset='''62914560''' 2015-09-24-raspbian-jessie.img mnt
 
  mkdir raspbian
 
  mkdir raspbian
  sudo cp -r mnt/* raspbian/
+
  sudo cp -a mnt/* raspbian/
 
  sudo umount mnt
 
  sudo umount mnt
  

Aktuelle Version vom 2. November 2015, 22:19 Uhr

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