Na architektuře arm64 nemají obrazy debian-installer
u pro Stretch povolen grafický
instalátor, tudíž se používá sériová konzole. Firmware by měl konzoli
rozpoznat automaticky, avšak pokud automatika selže, po zavedení
Linuxu z GRUBu uvidíte hlášku Booting
Linux
a dál už nic.
Jestliže to je i váš případ, musíte parametry konzoly nastavit ručně. V nabídce GRUBu stiskněte klávesu e pro editaci příkazové řádky a upravte část
--- quiet
do podoby
console=zařízení
,rychlost
například:
console=ttyAMA0,115200n8
Následně stiskněte kombinaci Control+x, čímž bude zavádění pokračovat s novým nastavením.
Juno používá UEFI, takže je instalace celkem přímočará. Nejpraktičtější je instalace z USB klíčenky, ovšem aby zavádění z USB fungovalo, potřebujete aktuální firmware. Sestavení z http://releases.linaro.org/latest/members/arm/ po březnu 2015 je ověřeno, že funguje. Více o aktualizaci firmwaru se dozvíte v dokumentaci k Juno.
Nachystejte si standardní USB klíčenku s obrazem arm64 CD a vložte ji do jednoho ze zadních USB portů. Následně připojte sériový kabel do horního 9 pinového sériového portu. Vyžadujete-li síťové připojení, zapojte ethernetový kabel do zdířky na přední straně.
Spusťte sériovou konzoli s rychlostí 115200, 8 bitů bez parity a Juno zapněte. Juno by mělo nastartovat z USB klíčenky do nabídky GRUBu. Nastavení konzoly na Junu zlobí, takže prosté pokračování klávesou Enter nezobrazí žádný výstup. Nejprve musíte podle (5.1.1 – „Nastavení konzoly“) nastavit konzoli na
console=ttyAMA0,115200n8
a teprve pak lze pokračovat v běžné instalaci.
Tento počítač se běžně dodává s U-Bootem, ale je dostupný i UEFI firmware. Budete se tedy muset rozhodnout, zda nejprve nainstalujete UEFI firmware a pak použijete standardní způsob instalace, nebo zda použijete U-Boot a jeho metody. Pro ovládání instalačního systému budete muset použít sériovou konzoli, protože grafická instalace není na architektuře amd64 povolena.
Doporučený postup instalace je pomocí openembedded systému dodávaného
s počítačem nakopírovat debian-installer
, jádro a initrd na pevný disk a pak
z těchto souborů zavést instalační systém. Alternativně můžete jádro,
dtb a initrd získat a zavést ze sítě protokolem TFTP (viz část 5.1.4.1 – „Zavedení z TFTP přes U-Boot“). Po dokončení instalace je třeba ruční
zásah, aby bylo možno nově nainstalovaný systém zavést.
Spusťte sériovou konzoli s rychlostí 115200, 8 bitů bez parity
a počítač zapněte. Restartujte počítač a až se zobrazí hláška
Hit any key to stop autoboot
,
stiskněte libovolnou klávesu. Objeví se výzva
Mustang#
, kde můžete použít příkazy
U-Bootu pro nahrání a zavedení jádra, dtb a initrd.
Zavedení se sítě vyžaduje síťové připojení, funkční TFTP server a nejspíš i DHCP, RARP nebo BOOTP server pro automatické nastavení sítě.
Nastavení zavádění ze sítě je popsáno v 4.3 – „Příprava souborů pro zavedení ze sítě pomocí TFTP“.
Zavedení ze sítě přes firmware U-Boot se skládá ze tří kroků: nastavení sítě, zavedení obrazů jádra, initrd a dtb do paměti a konečně spuštění nahraného jádra.
Síť můžete nastavit buď automaticky pomocí DHCP:
setenv autoload no
dhcp
nebo ručně nastavením několika proměnných:
setenv ipaddr
ip_adresa_klienta
setenv netmask
maska
setenv serverip
ip_adresa_TFTF_serveru
setenv dnsip
ip_adresa_DNS_serveru
setenv gatewayip
ip_adresa_výchozí_brány
Budete-li chtít toto nastavení uložit trvale, použijte příkaz
saveenv
Nyní musíte nahrát obrazy jádra, initrd a dtb do paměti, což se provádí příkazem tftpboot. jako parametr příkazu musíte zadat adresu v paměti, na kterou se má obraz nahrát. Bohužel, mapa paměti se liší systém od systému a proto zde nemůžeme vypsat pevné adresy platné pro všechny.
Na některých systémech si U-Boot předdefinovává proměnné prostředí
s vhodnými adresami. Jsou to proměnné
kernel_addr_r
, ramdisk_addr_r
a fdt_addr_r
. Zda jsou ve vašem případě nastaveny,
a připraveny k použití, si můžete ověřit příkazem
printenv kernel_addr_r ramdisk_addr_r fdt_addr_r
Nejsou-li definovány, budete si muset konkrétní hodnoty zjistit v dokumentaci k vašemu systému a nastavit je ručně. Například na systémech založených na SOC Allwinner SunXi (třeba Allwinner A10, architektura „sun4i“ nebo Allwinner A20, architektura „sun7i“) můžete použít následující hodnoty:
setenv kernel_addr_r 0x46000000
setenv fdt_addr_r 0x47000000
setenv ramdisk_addr_r 0x48000000
Po nastavení adres můžete stáhnout obrazy z dříve definovaného TFTP serveru a nahrát je do paměti příkazy:
tftpboot ${kernel_addr_r}
název_souboru_s_obrazem_jádra
tftpboot ${fdt_addr_r}
název_souboru_s_dtb
tftpboot ${ramdisk_addr_r}
název_souboru_s_obrazem_initrd
Nyní zbývá nastavit parametry jádra a spustit ho. U-Boot předá jádru
parametry přes proměnnou prostředí bootargs
, takže
do ní nastavte veškeré potřebné parametry jádra a instalačního
systému, jako je třeba konzole (5.3.1 – „Zavěděcí konzole“) nebo
přednastavení (5.3.2 – „Parametry instalačního programu“ a B – „Automatizování instalací pomocí přednastavení“). Například:
setenv bootargs console=ttyS0,115200 rootwait panic=10
Samotné spuštění jádra závisí na použitém formátu. Pro uImage/uInitrd vypadá příkaz následovně:
bootm ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
a pro nativní linuxový formát takto:
bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r}
![]() |
Poznámka |
---|---|
Při zavádění standardních linuxových obrazů je důležité nahrát obraz
úvodního ramdisku až po jádru a dtb, jelikož U-Boot automaticky uloží
do proměnné |