Gentoo

Aus WIKI
Zur Navigation springen Zur Suche springen

Aufgabe: Erstellen eines Gentoo Systems auf Banana PI

Hier gibt es die orginalen Images für den Banana Pi.


Zubehör:

  • Banana Pi
  • USB-Kabel: USB-Stecker <-> micro USB-Stecker
  • Netzteil mit mindestens 1A und USB-Kupplung
  • SD card 32 GB


  1. Lade ich mir das Gentoo Image herunter (images)
  2. Entpacke Datei
  3. Lade Win32 Disk Imager herunter
  4. Starte Win32 Disk Imager und schreibe image auf SD-Card (orginale Anleitung)
  5. kopiere Daten von der 2. Partition auf ein Linux system.
  6. verändere mit gparted die zweite Partition auf der SD-Card auf die volle Größe
  7. lade mir stage 3 für arm herunter (hier) und das # die standard edition auch eine hardfp zu sein schein hab ich mal stage3 herunter geladen
  8. sd card neu partitioniert
Disk /dev/sdb: 29.5 GiB, 31657558016 bytes, 61831168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x7dea4524

Device     Boot    Start      End  Sectors  Size Id Type
/dev/sdb1           2048    43007    40960   20M 83 Linux
/dev/sdb2          43008 58763263 58720256   28G 83 Linux
/dev/sdb3       58763264 61831167  3067904  1.5G 82 Linux swap / Solaris
  1. ext4 formatieren: mkfs.ext4 /dev/sdb2
  2. swap formatieren: mkswap /dev/sdb3
  3. entpacke stage3 nach sdb2
  4. kopieren modules verzeichnis aus orginalen lib verzeichnis nach sdb2
  5. teste start auf banana pi

Wie baue ich mir einen 4er Kernel aus den gentoo-sourcen für den Banana PI

emerge gentoo-sources

cd /usr/src/linux/arch/arm/configs

wget https://raw.githubusercontent.com/BPI-SINOVOIP/BPI-Mainline-kernel/c36474d725cb86b207b1e7f762824e04ef9d385d/arch/arm/configs/bpi_defconfig

cd ../../..

make bpi_defconfig
make -j2 dtbs
LOADADDR=0x40008000 make -j2 uImage
make -j2 modules
make -j2 modules_install

um die Wartezeit zu verkürzen kann man es mit distcc beschleunigen...

make -j5 CC="distcc gcc" modules

Jetzt noch die die Datei /boot/boot.cmd anlegen mit dem folgenden Inhalt:

setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10
load mmc 0:1 0x43000000 bananapi/${fdtfile}
load mmc 0:1 0x42000000 bananapi/uImage
bootm 0x42000000 - 0x43000000

Jetzt muss mit mkimage noch die Datei umgewandelt werden in eine scr Datei. Dafür benötige ich u-boot

Uboot habe ich mir von https://github.com/BPI-SINOVOIP/BPI-Mainline-kernel/tree/c36474d725cb86b207b1e7f762824e04ef9d385d herrunter geladen und in das Verzeichnis /data/projects/gentoo-kernel/u-boot-v2015.07 entpackt.

make Bananapi_M1_defconfig
make -j2


Convert boot.cmd to boot.scr

mkimage -C none -A arm -T script -d boot.cmd boot.scr

Bevor ich das neue u-boot einspiele, mache ich mir noch eine Sicherung

Dazu lese ich ab dem 8.block die nächsten 2040 blocks ein und schreibe diese in eine Datei.

dd if=/dev/mmcblk0 of=/data/projects/gentoo-kernel/u-boot-backup.dd bs=1024 seek=8 count=2040

Neues u-boot einspielen

dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8
mkdir /boot/bananapi
cp arch/arm/boot/uImage /boot/bananapi/uImage
cp arch/arm/boot/dts/sun7i-a20-bananapi.dtb /boot/bananapi/sun7i-a20-bananapi.dtb