3.6. Než začnete s instalací …

This section will walk you through pre-installation hardware setup, if any, that you will need to do prior to installing Debian. Generally, this involves checking and possibly changing BIOS/UEFI/system firmware settings for your system. The BIOS/UEFI or system firmware is the core software used by the hardware; it is most critically invoked during the bootstrap process (after power-up).

3.6.1. ARM firmware

As already mentioned before, there is unfortunately no standard for system firmware on ARM systems. Even the behaviour of different systems which use nominally the same firmware can be quite different. This results from the fact that a large part of the devices using the ARM architecture are embedded systems, for which the manufacturers usually build heavily customized firmware versions and include device-specific patches. Unfortunately the manufacturers often do not submit their changes and extensions back to the mainline firmware developers, so their changes are not integrated into newer versions of the original firmware.

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.

3.6.2. Obrazy U-Bootu poskytované Debianem

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

3.6.3. Nastavení ethernetové MAC adresy v U-Bootu

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.

3.6.4. Problémy s přesunem jádra/initrd/stromu zařízení v U-Bootu

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