Die Pinne für den Adapter liegen ja nur parallel zum Eingang des Steckers vom Netzteil. Also, solange da nichts abfackelt kann man da eine Menge Strom drüber jagen 🙂
Wenn es funktioniert ist ja alles gut.
Da sich ja schon seit längerer Zeit so nicht mehr richtig viel tut, schau ich nur noch gelegentlich ins Pine64-Forum. Das war gestern Abend mal wieder der Fall und da schreibt jemand, das er den neuen u-boot für den ROCKPro64 fertig hat. Das weckt natürlich meine Neugierde Es handelt sich um diesen u-boot
U-Boot TPL 2020.01-rc5-01969-g0bfd4738c6 (Jan 03 2020 - 15:46:36)
Der liebe Kamil hatte das ja schon vor Monaten angekündigt, aber leider nicht umgesetzt. Gut, das wir uns im Open Source Umfeld bewegen, da haben mehrere Menschen Zugriff auf die Daten. Ok, weiter
Hier der Link zum Forum.
Ich oute mich mal, die Binaries die er dort vorstellt, sagen mir zwar was, ich weiß aber nicht so richtig was ich damit anfangen soll. Ein paar Versuche hier waren leider erfolglos. Also habe ich den ganzen Beitrag nochmal aufmerksam gelesen und bin dann über das Script
flash_spi.img.gz
gestolpert. Dazu hat der Autor sigmaris eine Github Seite mit Anleitung erstellt.
"Das U-Boot" Source Tree. Contribute to sigmaris/u-boot development by creating an account on GitHub.
GitHub (github.com)
Ok, das bekommen wir hin
Also, das Script entpackt und auf eine SD-Karte geschrieben. Den ROCKPro64 damit gestartet und wir sehen einen u-boot Yeah!
U-Boot TPL 2020.01-rc5-01969-g0bfd4738c6 (Jan 03 2020 - 15:46:36)
Channel 0: LPDDR4, 50MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS=1 Die BW=16 Size=1024MB
Channel 1: LPDDR4, 50MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS=1 Die BW=16 Size=1024MB
256B stride
256B stride
lpddr4_set_rate: change freq to 400000000 mhz 0, 1
lpddr4_set_rate: change freq to 800000000 mhz 1, 0
Trying to boot from BOOTROM
Returning to boot ROM...
Ein paar schnelle Versuche mit verschiedenen Datenträgern war nicht so erfolgreich. Da es spät war, habe ich abgebrochen. Heute Morgen dann beim ersten Kaffee noch mal richtig drüber nachdenken....
Ok, wenn ich von der PCIe NVMe SSD starten möchte, brauche ich dort das komplette Image drauf. Doch wie stelle ich das dann jetzt an? Man könnte den Adapter in einen PC einbauen, man könnte die Karte in einen freien Slot einbauen, wäre beides möglich bei mir. Aber, ich bin faul. Morgens unterm Schreibtisch rum rutschen? Nö.
Wir schreiben uns das aktuelle Image vom Kamil auf eine SD-Karte. In den Homeordner kopieren wir das entpackte Image vom Kamil.
buster-minimal-rockpro64-0.9.16-1163-arm64.img
Damit starten wir jetzt den ROCKPro64. Nach Passwortwechsel, das kennt ihr ja sicherlich bereits alles, befinden wir uns im Homeordner. Dort liegt nun unser Image. Das soll nun auf die PCI NVMe SSD.
Schauen wir mal, ob alles da ist.
sudo fdisk -l
[sudo] password for rock64:
Disk /dev/ram0: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/mtdblock0: 384 KiB, 393216 bytes, 768 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
Disk /dev/mtdblock1: 3.6 MiB, 3768320 bytes, 7360 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
Disk /dev/mtdblock2: 32 KiB, 32768 bytes, 64 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
Disk /dev/mtdblock3: 12 MiB, 12582912 bytes, 24576 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
Disk /dev/nvme0n1: 232.9 GiB, 250059350016 bytes, 488397168 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
Disk /dev/mmcblk0: 59.5 GiB, 63864569856 bytes, 124735488 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: gpt
Disk identifier: 4252573B-53A6-4918-89A6-7802D8D8031F
Device Start End Sectors Size Type
/dev/mmcblk0p1 64 8063 8000 3.9M Linux filesystem
/dev/mmcblk0p2 8064 8191 128 64K Linux filesystem
/dev/mmcblk0p3 8192 16383 8192 4M Linux filesystem
/dev/mmcblk0p4 16384 24575 8192 4M Linux filesystem
/dev/mmcblk0p5 24576 32767 8192 4M Linux filesystem
/dev/mmcblk0p6 32768 262143 229376 112M Microsoft basic data
/dev/mmcblk0p7 262144 124735454 124473311 59.4G Linux filesystem
Image ?
rock64@rockpro64:~$ ls
buster-minimal-rockpro64-0.9.16-1163-arm64.img
Gut, alles vorhanden. Dann mal los.
rock64@rockpro64:~$ sudo dd of=/dev/nvme0n1 if=/home/rock64/buster-minimal-rockpro64-0.9.16-1163-arm64.img bs=1M
2045+0 records in
2045+0 records out
2144337920 bytes (2.1 GB, 2.0 GiB) copied, 36.9288 s, 58.1 MB/s
Hier, der dd Befehl incl. Erfolgsmeldung. Damit wäre das Image jetzt auf der PCIe NVMe SSD. Wir können nun die SD-Karte entfernen und mit der NVMe Karte booten.
U-Boot TPL 2020.01-rc5-01969-g0bfd4738c6 (Jan 03 2020 - 15:46:36)
Channel 0: LPDDR4, 50MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS=1 Die BW=16 Size=1024MB
Channel 1: LPDDR4, 50MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS=1 Die BW=16 Size=1024MB
256B stride
256B stride
lpddr4_set_rate: change freq to 400000000 mhz 0, 1
lpddr4_set_rate: change freq to 800000000 mhz 1, 0
Trying to boot from BOOTROM
Returning to boot ROM...
U-Boot SPL 2020.01-rc5-01969-g0bfd4738c6 (Jan 03 2020 - 15:46:36 +0000)
Trying to boot from SPI
NOTICE: BL31: v2.2(release):v2.2-277-gb1af2a51
NOTICE: BL31: Built : 15:44:18, Jan 3 2020
U-Boot 2020.01-rc5-01969-g0bfd4738c6 (Jan 03 2020 - 15:46:36 +0000)
Model: Pine64 RockPro64
DRAM: 2 GiB
PMIC: RK808
MMC: dwmmc@fe320000: 1, sdhci@fe330000: 0
Loading Environment from SPI Flash... SF: Detected gd25q128 with page size 256 B
*** Warning - bad CRC, using default environment
In: serial@ff1a0000
Out: serial@ff1a0000
Err: serial@ff1a0000
Model: Pine64 RockPro64
rockchip_dnl_key_pressed: adc_channel_single_shot fail!
Net: eth0: ethernet@fe300000
Hit any key to stop autoboot: 0
Card did not respond to voltage select!
Card did not respond to voltage select!
Device 0: Vendor: 0x144d Rev: 1B2QEXE7 Prod: S466NX0K606125A
Type: Hard Disk
Capacity: 476940.0 MB = 465.7 GB (976773168 x 512)
... is now current device
Scanning nvme 0:7...
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
2073 bytes read in 4 ms (505.9 KiB/s)
select kernel
1: kernel-4.4.202-1237-rockchip-ayufan-gfd4492386213
2: kernel-4.4.202-1237-rockchip-ayufan-gfd4492386213-memtest
3: kernel-4.4.197-1236-rockchip-ayufan-g30faab37e339
4: kernel-4.4.197-1236-rockchip-ayufan-g30faab37e339-memtest
[...gekürzt...]
YEAH! Der ROCKPro64 bootet direkt von der PCIe NVMe SSD. Dazu bedarf es jetzt nur noch, das der u-boot im SPI Speicher drin ist.
Noch kurz das Filesystem anzeigen lassen
rock64@rockpro64:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 960M 0 960M 0% /dev
tmpfs 193M 7.7M 185M 4% /run
/dev/nvme0n1p7 1.9G 1.1G 669M 62% /
tmpfs 963M 0 963M 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 963M 0 963M 0% /sys/fs/cgroup
/dev/nvme0n1p6 112M 4.0K 112M 1% /boot/efi
tmpfs 193M 0 193M 0% /run/user/1000
Somit sollte sich auch der Kernel Problem los aktualisieren lassen, was ja vorher immer recht mühsam war.
Aktuell nutzt der ROCKPro64 dieses Image
Linux rockpro64 4.4.197-1236-rockchip-ayufan-g30faab37e339 #1 SMP Tue Oct 22 11:35:10 UTC 2019 aarch64
Dann installieren wir mal 4.4.202-1237-rockchip-ayufan
https://github.com/ayufan-rock64/linux-kernel/releases/
Nach dem Reboot
_ __ _ _
_ __ ___ ___| | ___ __ _ __ ___ / /_ | || |
| '__/ _ \ / __| |/ / '_ \| '__/ _ \| '_ \| || |_
| | | (_) | (__| <| |_) | | | (_) | (_) |__ _|
|_| \___/ \___|_|\_\ .__/|_| \___/ \___/ |_|
|_|
Linux rockpro64 4.4.202-1237-rockchip-ayufan-gfd4492386213 #1 SMP Sat Nov 23 13:55:47 UTC 2019 aarch64
So muss das funktionieren. Sehr lange drauf gewartet!
Und jetzt mal Schauen, ob das auch von USB3 geht, das ging gestern Abend auch nicht.....
Ok, Problem gelöst. Bitte hier nachlesen.
Nachdem ich jetzt ein wenig rumgespielt habe, folgende Empfehlung.
Der u-boot ist ja zum Testen da, mit einer PCIe NVMe SSD oder einer SD-Karte bootet er einwandfrei. Mit meiner eMMC-Karte nicht, so wie auch nicht an USB2 und USB3. Sollte ihr also so ein Gerät zum Booten benutzen, müsst ihr den gewohnten Weg gehen.
Sigmaris hat eine neue Version seines u-boot released.
https://forum.frank-mankel.org/topic/746/u-boot
Diese neue Version soll einen Boot von einer PCIe SATA Platte ermöglichen. Yeah!
I have updated the OP with info about a new release, based on mainline U-Boot v2020.01, and now with PCIe SATA drive boot support as well as NVMe.
Das muss ich dann mal testen
Ich habe dann heute mal den uboot getestet um zu sehen, ob von einer SATA HDD gebootet wird.
U-Boot TPL 2020.01-01987-g335875f1f5 (Feb 01 2020 - 15:02:32)
Channel 0: LPDDR4, 50MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS=1 Die BW=16 Size=1024MB
Channel 1: LPDDR4, 50MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS=1 Die BW=16 Size=1024MB
256B stride
256B stride
lpddr4_set_rate: change freq to 400000000 mhz 0, 1
lpddr4_set_rate: change freq to 800000000 mhz 1, 0
Trying to boot from BOOTROM
Returning to boot ROM...
U-Boot SPL 2020.01-01987-g335875f1f5 (Feb 01 2020 - 15:02:32 +0000)
Trying to boot from SPI
NOTICE: BL31: v2.2(release):v2.2-271-g9a943ba43
NOTICE: BL31: Built : 15:00:49, Feb 1 2020
U-Boot 2020.01-01987-g335875f1f5 (Feb 01 2020 - 15:02:32 +0000)
Model: Pine64 RockPro64
DRAM: 2 GiB
PMIC: RK808
MMC: dwmmc@fe320000: 1, sdhci@fe330000: 0
Loading Environment from SPI Flash... SF: Detected gd25q128 with page size 256 B
*** Warning - bad CRC, using default environment
In: serial@ff1a0000
Out: serial@ff1a0000
Err: serial@ff1a0000
Model: Pine64 RockPro64
Net: eth0: ethernet@fe300000
Hit any key to stop autoboot: 0
Card did not respond to voltage select!
Card did not respond to voltage select!
PCIE-0: Link up (Bus0)
Device 0: unknown device
scanning bus for devices...
Target spinup took 0 ms.
SATA link 1 timeout.
AHCI 0001.0200 32 slots 2 ports 6 Gbps 0x3 impl SATA mode
flags: 64bit ncq stag led clo pmp pio slum part ccc sxs
Device 0: (0:0) Vendor: ATA Prod.: ST2000LM015-2E81 Rev: SDM1
Type: Hard Disk
Capacity: 1907729.0 MB = 1863.0 GB (3907029168 x 512)
Device 0: (0:0) Vendor: ATA Prod.: ST2000LM015-2E81 Rev: SDM1
Type: Hard Disk
Capacity: 1907729.0 MB = 1863.0 GB (3907029168 x 512)
... is now current device
Scanning scsi 0:7...
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
1055 bytes read in 49 ms (20.5 KiB/s)
select kernel
1: kernel-4.4.197-1236-rockchip-ayufan-g30faab37e339
2: kernel-4.4.197-1236-rockchip-ayufan-g30faab37e339-memtest
Enter choice: 1: kernel-4.4.197-1236-rockchip-ayufan-g30faab37e339
Retrieving file: /boot/initrd.img-4.4.197-1236-rockchip-ayufan-g30faab37e339
5143934 bytes read in 110 ms (44.6 MiB/s)
Retrieving file: /boot/vmlinuz-4.4.197-1236-rockchip-ayufan-g30faab37e339
20545544 bytes read in 346 ms (56.6 MiB/s)
append: rw panic=10 init=/sbin/init coherent_pool=1M ethaddr=62:03:b0:d6:dc:b3 4
Retrieving file: /boot/dtbs/4.4.197-1236-rockchip-ayufan-g30faab37e339/rockchipb
96273 bytes read in 32 ms (2.9 MiB/s)
## Flattened Device Tree blob at 01f00000
Booting using the fdt blob at 0x1f00000
Loading Ramdisk to 7da14000, end 7defbd7e ... OK
rock64@rockpro64:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 960M 0 960M 0% /dev
tmpfs 193M 7.7M 185M 4% /run
/dev/sda7 1.8T 1.1G 1.8T 1% /
tmpfs 963M 0 963M 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 963M 0 963M 0% /sys/fs/cgroup
/dev/sda6 112M 4.0K 112M 1% /boot/efi
tmpfs 193M 0 193M 0% /run/user/1000
Wieder ein Stück weiter
Hallo @mabs,
ja. Der uboot wird in den SPI Speicher geladen. Der sucht dann beim Starten nach einem bootfähigem Device. So wie auf einem ganz normalen PC. Eine richtig coole Sache, wo ich mich freue, das das langsam mal funktioniert.
Die Performance wird ja dann sicherlich von dem Device bestimmt. Dazu gibt es ja genug Messungen. Ich würde eine NVMe SSD immer einer SATA Platte vorziehen. Es kommt aber auf den Anwendungsfall an.
Für ein NAS dann eher zwei oder mehr SATA Platten, und von USB3 HDD booten So wie ich das schon lange betreibe.
Aber, da hat auch jeder andere Vorstellungen und Vorlieben für.