Tato část vás provede nastavením hardwaru, který je občas potřeba před vlastní instalací mírně připravit. Obecně se tím myslí kontrola a případná změna nastavení BIOSu/systémového firmware. „BIOS“ nebo „systémový firmware“ je nejnižší úroveň softwaru, který je využíván zařízeními v počítači, a rozhodujícím způsobem ovlivňuje start počítače po jeho zapnutí.
Jak jsme již zmínili dříve, na systémech ARM bohužel neexistuje standard pro systémový firmware a proto se různé systémy, které nominálně používají stejný firmware, mohou chovat zcela odlišně. To pramení z faktu, že se ARM architektura používá hlavně v embeded zařízeních, pro které výrobci vytváří vlastní upravené firmwary a přidávají záplaty pro konkrétní zařízení. Výrobci bohužel často zapomenou zaslat své úpravy zpět vývojářům původního firmwaru, takže se jejich změny neobjeví v novějších verzích daného firmwaru.
Výsledkem je, že i nové systémy často používají firmware, který je založený na nějaké prehistorické verzi firmwaru, kterou si výrobce kdysi upravil, přičemž vývoj původního firmwaru mezitím pokračoval a nyní nabízí nové vlastnosti, nebo v některých ohledech jiné chování. Výrobci upravených firmwarů navíc nepojmenovávají integrovaná zařízení konzistentně, takže i když se jedná o stejný základní firmware, je na platformě ARM téměř nemožné poskytnout obecně platné informace.
Na
.../images/u-boot/
poskytuje Debian obrazy U-Bootu pro nejrůznější
armhf systémy, které umí nahrát U-Boot z SD karty. U-Boot je nabízen
ve dvou variantách: surové komponenty U-Bootu a předpřipravený obraz
pro jednoduché zapsání na SD kartu. Surové komponenty jsou zamýšleny
pro pokročilé uživatele, doporučenou cestou jsou předpřipravené obrazy
pro SD karty. Obrazy se jmenují
<systém>.sdcard.img.gz
a na SD kartu se dají
zapsat například tímto příkazem:
zcat <systém>
.sdcard.img.gz > /dev/SD_KARTA
Jako vždy, zkontrolujte si, zda zapisujete na správné zařízení, protože tím smažete veškerý obsah daného zařízení!
Pokud pro svůj systém naleznete obraz U-Bootu jak u Debianu, tak u výrobce systému, doporučujeme použít verzi z Debianu, jelikož tato bývá novější a mívá více vlastností.
MAC adresa každého ethernetového rozhraní by měla být celosvětově unikátní, resp. musí být unikátní minimálně v rámci dané ethernetové broadcastovací domény. Výrobce si pro sebe obvykle alokuje blok MAC adres z centrálně spravované zásoby (za což zaplatí nějaký poplatek) a pak příslušně nakonfiguruje každé vyrobené zařízení tak, aby mělo unikátní adresu.
V případě vývojářských desek se chce někdy výrobce vyhnout placení poplatků a proto unikátní MAC adresu na ethernetové zařízení nenastaví. V takových případech musí MAC adresu nastavit uživatel. Některé ovladače síťových karet, když zjistí, že MAC adresa není přiřazena, vygenerují náhodnou MAC adresu, která se může při každém restartu měnit. Pro uživatele to pak vypadá, že síťování v zásadě funguje, ale některé služby nemusí být zrovna spolehlivé, jako třeba přiřazování semi-statických IP adres pomocí DHCP na základě MAC adresy.
Aby se předešlo konfliktům se stávajícími, oficiálně přiřazenými MAC
adresami, existuje blok adres, které je rezervován pro takzvaně
„místně spravované“ adresy. Blok je definován hodnotou
dvou konkrétních bitů v prvním bajtu adresy. V praxi to znamená, že se
jako lokálně spravovaná adresa dá použít například libovolná adresa
začínající hexadecimálním ca
(jako třeba
ca:ff:ee:12:34:56
.
Na systémech používajících jako firmware U-Boot je ethernetová MAC
adresa umístěna v proměnné prostředí ethaddr
.
Adresu můžete zkontrolovat v promptu U-Bootu příkazem
printenv ethaddr a nastavit příkazem
setenv ethaddr ca:ff:ee:12:34:56
.
Po nastavení proměnné můžete hodnotu trvale uložit příkazem
saveenv.
Na některých systémech se starší verzí U-Bootu se mohou objevit
problémy s korektním přesunem linuxového jádra, úvodního ramdisku
a binárky se stromem zařízení během zavádění. Projevuje se to tak, že
U-Boot vypíše hlášku
Starting kernel ...
, ale systém
dál zamrzne bez jakéhokoliv výstupu. Problém byl vyřešen v novějších
verzích U-Bootu, tj. od verze v2014.07 dále.
Problém se může projevit i v případě, že systém původně používal verzi
U-Bootu starší než v2014.07 a teprv následně byl aktualizován.
Aktualizace U-Bootu totiž obvykle nemění stávající proměnné prostředí
a oprava problému vyžaduje, aby se nastavila nová proměnná prostředí
bootm_size
, což U-Boot provádí automaticky pouze
u nových instalací v čistém prostředí. Ručně tuto novou proměnnou
nastavíte v promptu U-Bootu příkazem
env default bootm_size; saveenv.
Jinou možností, jak obejít problém s přesunem, je v promptu U-Bootu spustit příkaz setenv fdt_high ffffffff; setenv initrd_high 0xffffffff; saveenv, kterým zcela zakážete přesun úvodního ramdisku a binárky se stromem zařízení.