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 .....