• Schwierigkeitsgrad: Fortgeschrittener

Bootparameter bearbeiten:

mount /dev/mmcblk0p1 /mnt
nano /mnt/boot.cmd

So sieht die geänderte boot.cmd aus.

#--------------------------------------------------------------------------------------------------------------------------------
# Boot loader script to boot with different boot methods for old and new kernel
# Credits: https://github.com/igorpecovnik - Thank you for this great script!
#--------------------------------------------------------------------------------------------------------------------------------
if load mmc 0:1 0x00000000 uImage-next
then
# mainline kernel >= 4.x
#--------------------------------------------------------------------------------------------------------------------------------
setenv bootargs console=ttyS0,115200 console=tty0 console=tty1 root=/dev/sda1 rootfstype=ext4 elevator=deadline rootwait
load mmc 0:1 0x49000000 dtb/${fdtfile}
load mmc 0:1 0x46000000 uImage-next
bootm 0x46000000 - 0x49000000
#--------------------------------------------------------------------------------------------------------------------------------
else
# sunxi 3.4.x
#--------------------------------------------------------------------------------------------------------------------------------
setenv bootargs console=ttyS0,115200 console=tty0 console=tty1 sunxi_g2d_mem_reserve=0 sunxi_ve_mem_reserve=0 hdmi.audio=EDID:0 disp.screen0_output_mode=EDID:1680x1050p60 root=/dev/sda1 rootfstype=ext4 elevator=deadline rootwait
setenv bootm_boot_mode sec
load mmc 0:1 0x43000000 script.bin
load mmc 0:1 0x48000000 uImage
bootm 0x48000000
#--------------------------------------------------------------------------------------------------------------------------------
fi

 

Zweimal folgendes ändern:

root=/dev/mmcblk0p2

in

root=/dev/sda1

ändern.

 

Danach müssen wir aus der boot.cmd eine ausführbare Datei machen, dazu nimmt man folgenden Befehl.

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

Dann kommt aber eine Fehlermeldung das mkimage fehlt, ok kurz nachinstallieren.

apt-get install u-boot-tools 

Dann nochmal probieren und das Ergebnis sieht wie folgt aus.

root@bananapi /tmp # mkimage -C none -A arm -T script -d boot.cmd boot.scr
Image Name:   
Created:      Sun Apr 17 20:41:34 2016
Image Type:   ARM Linux Script (uncompressed)
Data Size:    1626 Bytes = 1.59 kB = 0.00 MB
Load Address: 00000000
Entry Point:  00000000
Contents:
   Image 0: 1618 Bytes = 1.58 kB = 0.00 MB

Nun starten wir den BananaPi mit

shutdown -r now

neu. Wieder einloggen und checken ob die Platte richtig erkannt wurde. Dazu geben wir

df -h

ein. (diskfree)

Ausgabe:

Filesystem      Size  Used Avail Use% Mounted on
rootfs          1.4T  1.1G  1.3T   1% /
/dev/root       1.4T  1.1G  1.3T   1% /
devtmpfs        486M     0  486M   0% /dev
tmpfs            98M  232K   97M   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           195M     0  195M   0% /run/shm

 

Meine Festplatte ist 1,5T groß, die Karte nur 4GB. Das rootfs ist 1.4T groß, damit bin ich zufrieden. Der BananaPI bootet jetzt nur noch von der SD-Karte danach läuft alles auf der Platte. Das macht das ganze System wesentlich flotter, eine Class 10 Karte kann man mit mindestens 10MB/s beschreiben, mein Test unten ergab ca. 40MB/s auf der Platte.