(01. 08. 2018)
Jakiś czas temu wyszedł fajny SBC na Armie który dobrze powinien się sprawdzać jako router do zastosowań domowych. ESPRESSObin Marvella ma trzy gigabitowe porty ethernetowe, do 2 GB RAM-u, procesor z linii ARMv7 oraz inne dodatki. Przeportowano na niego różne linuxy oraz OpenWRT, niestety ten ostatni podczas moich ostatnich testów trzeba było budować samodzielnie bo opkg nie działało - architektura nie była oficjalnie wspierana. Build niekonecznie chciał zadziałać na moim komputerze więc, z racji ograniczonej ilości czasu na takie zabawy, płytka poszła w kąt.
Dwa dni temu światło dzienne ujrzało OpenWRT v18.06.0, jak się okazało - z obsługą ESPRESSObin dodaną przez naszego rodaka, Tomasza Macieja Nowaka. Opiszę tutaj krótko procedurę przygotowania karty SD oraz uBoota, bo nie znalazłem tego nigdzie indziej w internecie.
Najperw karta SD: ściągasz globalscale-espressobin-ext4-sdcard.img.gz, sha256sums oraz sha256sums.asc stąd, po czym rozpakowujesz oraz kopiujesz na kartę:
$ gpg2 --verify sha256sums.asc # porównaj ze skrótami kluczy na https://openwrt.org/docs/guide-user/security/signatures
$ sha256sum -c --ignore-missing sha256sums
$ gunzip globalscale-espressobin-ext4-sdcard.img.gz
$ sudo dd if=openwrt-mvebu-cortexa53-globalscale-espressobin-ext4-sdcard.img of=/dev/mmcblk0
$ sudo sync
Na karcie SD powstaną dwie partycje, druga z nich ma rozmiar 256 MB i będzie robiła za root. Jeśli, tak jak ja, nie jesteś wytrawnym użytkownikiem OpenWRT i będziesz musiał przetestować kilka pakietów zanim wybierzesz ten właściwy - propnuję ją powiększyć. KDE Partition Manager doskonale daje sobie radę z tym zadaniem.
Następnie włóż kartę do swojego ESPRESSObin. Będziesz potrzebował dwóch kabli: 5.5mm 12V do zasilania oraz Micro USB do połączenia z portem szeregowym. Proponuję najpierw podłączyć Micro USB oraz połączyć się z zasilanym przez niego konweterem USB/Serial:
$ sudo screen /dev/ttyUSB0 115200
Po podłączeniu zasilania, w konsoli powinny pojawić się komunikaty z uBoota, a po paru sekundach - prompt.
Hit any key to stop autoboot: 0
Marvell>>
Sekwencja komend która spowoduje prawidłowe bootowanie się OpenWRT jest następująca:
setenv fdt_name 'armada-3720-espressobin.dtb'
setenv image_name 'Image'
setenv ethact 'neta0'
setenv set_bootargs 'setenv bootargs $console'
setenv bootcmd 'mmc dev 0; ext4load mmc 0:1 $kernel_addr $image_name;ext4load mmc 0:1 $fdt_addr $fdt_name;setenv bootargs $console root=/dev/mmcblk0p2 rw rootwait; booti $kernel_addr - $fdt_addr'
saveenv
run bootcmd
Po kilkunastu sekundach powinno pojawić się coś w stylu:
Please press Enter to activate this console.
...
[ 16.551701] mv88e6085 d0032004.mdio-mii:01 lan1: Link is Down
Wciśnij enter i ciesz się najnowszym OpenWRT (niestety, bez przepisu na drinka)
BusyBox v1.28.4 () built-in shell (ash)
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
-----------------------------------------------------
OpenWrt SNAPSHOT, r7705-fec8fe8
-----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@OpenWrt:/#
root@OpenWrt:/# opkg update
Downloading http://downloads.openwrt.org/snapshots/targets/mvebu/cortexa53/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_core
....
root@OpenWrt:/# opkg install luci
Installing luci (git-18.212.55585-176e246-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/luci/luci_git-18.212.55585-176e246-1_all.ipk
.....