En els sistemes basats en ARM, en la majoria de casos, es fa servir un dels dos formats d'imatges d'arrencada: a) nuclis Linux estàndard en format «zImage» («vmlinuz») conjuntament amb disc RAM inicials estàndard de Linux («initrd.gz») o b) nuclis en format «uImage» («uImage») conjuntament amb el corresponent disc RAM inicial («uInitrd»).
«uImage/uInitrd» son formats d'imatges dissenyats pel programari del maquinari («firmware») U-Boot i que es fa servir en molts sistemes basats en ARM (sobretot de 32 bits). Les versions anteriors d'U-Boot només podent arrencar fitxers en els formats «uImage/uInitrd» i per això es fan servir en els sistemes ARM més antics. Les noves versions d'U-Boot poden arrencar imatges «uImage/uInitrd» i també nuclis estàndard Linux així com imatges de dics RAM, tot i què la sintaxi de les ordres que ho fan és significativament diferent a l'arrencada amb «uImage».
Pels sistemes que fan servir nuclis multiplataforma, a més del nucli i el disc RAM incial necessiten un fitxer anomenat dispositiu d'arbres («device-tree» o «device-tree blob», «dtb»). Aquest fitxer és específic per a cada sistema suportat i conté la descripció del maquinari corresponent. Cal que el «dtb» sigui subministrat pel microprogramari del maquinari («firmware»), però a la pràctica, sovint s'ha de carregar un de nou.
Per arrencar des de la xarxa necessitareu una connexió i un servidor d'arrencada de xarxa TFTP ( i probablement un servidor DHCP, RARP o BOOTP per a la configuració automàtica de la xarxa).
El mètode d'instal·lació per suportar l'arrencada de la xarxa es descriu a Secció 4.3, «Preparació dels fitxers per a l'arrencada en xarxa TFTP».
L'arrencada amb xarxa en sistemes que fan servir el microprogramari («firmware») U-Boot consisteix en tres passos: a) configuració de la xarxa, b) càrrega de les imatges (nucli, dics RAM inicial i «dtb») a la memòria i c) execució del codi carregat prèviament.
Primer cal configurar la xarxa, ja sigui automàticament a través de DHCP executant
setenv autoload no dhcp
o bé manualment establint els valors de diverses variables d'entorn
setenv ipaddr <ip adreça del client> setenv netmask <netmask> setenv serverip <ip aadreça del servidor tftp > setenv dnsip <ip adreça dels servidor de noms> setenv gatewayip <ip adreça de la passarel·la predeterminada>
Si ho prefereix, pot fer que aquests ajustos siguin permanents executant
saveenv
Després ha de carregar les imatges (nucli, disc inicial RAM i «dtb») a la memòria. Això es fa executant l'ordre «tftpboot», el qual cal proveir la direcció en la qual està emmagatzemada la imatge a la memòria. Malauradament, el mapa de memòria pot variar entre sistemes, pel que no hi ha una regla general per a les adreces que es puguin fer servir per això.
En diversos sistemes, U-Boot predefineix con conjunt de variables d'entorn amb les adreces de càrrega adequades: «kernel_addr_r», «ramdisk_addr_r» i «fdt_addr_r». Podeu comprovar quines estan definides executant
printenv kernel_addr_r ramdisk_addr_r fdt_addr_r
Si no estan definides, haureu de consultar la documentació del vostre sistema per saber els valors adequats i establir-los manualment. Per a sistemes basats en «Allwinner SunXi SOCs» (p. ex. Allwinner A10, nom d'arquitectura «sun4i» o Allwinner A20, nom d'arquitectura «sun7i»), podeu, per exemple, fer servir els següents valors:
setenv kernel_addr_r 0x46000000 setenv fdt_addr_r 0x47000000 setenv ramdisk_addr_r 0x48000000
Una vegada definides les adreces de càrrega, podeu carregar les imatges a la memòria del servidor tftp prèviament determinat amb
tftpboot ${kernel_addr_r} <nom del fitxer d'imatge del nucli> tftpboot ${fdt_addr_r} <nom del fitxer del «dtb»> tftpboot ${ramdisk_addr_r} <nom del fitxer de la imatge inicial del disc RAM>
La tercera part és establir la línia d'ordres del nucli i executar el codi carregat. U-Boot transfereix el contingut de la variable d'entorn «bootargs» com a línies d'ordres al nucli, de manera que els paràmetres per al nucli i l'instal·lador, com el dispositiu de terminal (llegiu Secció 5.3.1, «Terminal d'arrencada») o opcions de configuració (llegiu Secció 5.3.2, «Paràmetres de l'instal·lador Debian» i Apèndix B, Automatització de la instal·lació fent servir una configuració prèvia)- poden establir-se amb ordres del tipus
setenv bootargs console=ttyS0,115200 rootwait panic=10
L'ordre concreta per executar el codi prèviament carregat depèn del format de la imatge que s'utilitzi.Amb «uImage/uInitrd», l'ordre és
bootm ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
i amb imatges natives de Linux és
bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r}
Nota: en arrencar imatges estàndard Linux, és important carregar la imatge del disc RAM inicial després que el nucli i el «dtb» com a U-Boot estableixin la variable de la mida de fitxer amb el valor de la mida del darrer fitxer carregat i l'ordre «bootz» requereixi la mida de la imatge de disc RAM per a treballar correctament. En el cas d'arrencar un nucli específic de la plataforma, p. ex. un nucli sense arbre de dispositius, ometeu el paràmetre ${fdt_addr_r}.