Formáty zaváděcích obrazů Systémy založené na architektuře ARM většinou používají dva formáty zaváděcích obrazů: Standardní linuxové jádro ve formátu zImage (vmlinuz) spolu se standardním linuxovým ramdiskem (initrd.gz). Jádro ve formátu uImage (uImage) ve spojení s odpovídajícím ramdiskem (uInitrd). Formáty uImage/uInitrd jsou speciálně navrženy pro firmware u-boot, který se používá na mnoha ARMových systémech. Starší verze u-bootu uměly zavádět pouze soubory ve formátu uImage/uInitrd, proto se používají hlavně na starších systémech armel. Novější verze u-bootu již umí kromě uImage/uInitrd zavádět také standardní linuxová jádra a initrd, ale syntaxe se trošku liší. Na systémech používajících multiplatformní jádro je kromě jádra a initrd ještě zapotřebí soubor se stromem zařízení (device-tree blob, dtb), který je specifický pro každý systém a obsahuje popis toho konkrétního hardwaru. Zavedení z TFTP &boot-installer-intro-net.xml; Zavedení z TFTP přes u-boot 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 () nebo přednastavení ( a ). 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} 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é filesize velikost posledně nahraného souboru. Aby příkaz bootz fungoval správně, potřebuje znát velikost ramdisku, kterou mu předáte právě z proměnné filesize. Jestliže zavádíte jádro sestavené pro konkrétní platformu (tj. bez stromu zařízení), jednoduše vynechte parametr ${fdt_addr_r}. Zavedení z USB klíčenky in u-boot Mnohé moderní verze u-bootu podporují USB a umožňují zavádět z úložných USB zařízení, jako jsou třeba USB klíčenky. Přesný postup se ale bohužel liší systém od systému. U-Boot v2014.10 přinesl sjednocené zpracování příkazové řádky a framework pro automatické zavádění. To umožňuje vytvářet obecné zaváděcí obrazy, které pracují na všech systémech implementujících tento framework. &d-i; na těchto systémech podporuje instalaci z USB zařízení. Pro vytvoření USB klíčenky pro instalaci &debian;u musí USB klíčenka obsahovat souborový systém podporovaný u-bootem (novější verze obvykle podporují FAT16, FAT32, ext2, ext3 a ext4). Na tento souborový systém rozbalte archiv hd-media (viz ) a pak přikopírujte ISO obraz prvního instalačního CD/DVD &debian;u. Framework pro automatické zavádění v novějších verzích u-bootu funguje podobně jako volby pro zavádění v BIOSu PC, tj. postupně prozkoumá seznam možných zaváděcích zařízení, zda na nich nenalezne platný zaveditelný obraz a spustí první, který nalezne. Pokud na zařízení není nainstalovaný žádný operační systém, mělo by zasunutí USB klíčenky a zapnutí systému způsobit zavedení instalačního systému. Zavedení z USB můžete také vyvolat ručně na výzvě u-bootu příkazem run usb_boot. Jedním problémem, se kterým byste se mohli potkat při zavádění z USB a použití sériové konzole, je rozdílné nastavení přenosové rychlosti konzoly. Je-li v u-bootu nastavena proměnná console, předá ji zaváděcí skript jádru, aby ji použilo jako primární konzoli a případně nastavilo přenosovou rychlost. Na některých platformách specifikuje proměnná console i rychlost (např. console=ttyS0,115200), zatímco na jiných obsahuje pouze název zařízení (console=ttyS0). Pokud se výchozí přenosová rychlost u-bootu (často 115200) liší od výchozí přenosové rychlosti jádra (tradičních 9600), vede to ve druhém případě k nečitelnému výstupu. Pokud to nastane, měli byste ručně upravit proměnnou console, aby obsahovala správnou rychlost pro váš systém, a pak zavést instalátor příkazem run usb_boot.