3.6. Configurarea componentelor, dispozitivelor și a sistemului de operare înainte de instalare

Această secțiune preinstalare, vă va ghida în configurarea componentelor și a dispozitivelor, dacă este cazul, pe care va trebui să o faceți înainte de a instala Debian. În general, aceasta implică verificarea și, eventual, modificarea configurărilor microcodului BIOS/UEFI din sistem pentru sistemul dumneavoastră. BIOS/UEFI sau microcodul sistemului (system firmware) este software-ul de bază folosit de componente; este invocat cel mai critic în timpul procesului de pornire (după acționarea butonului de alimentare cu energie).

3.6.1. Selectarea dispozitivului de pornire

3.6.2. Firmware-ul ARM

După cum s-a menționat deja, nu există, din păcate, un standard pentru firmware-ul de sistem pe sistemele ARM. Chiar și comportamentul diferitelor sisteme care folosesc nominal același firmware poate fi destul de diferit. Acest lucru rezultă din faptul că o mare parte a dispozitivelor care utilizează arhitectura ARM sunt sisteme încorporate, pentru care producătorii construiesc de obicei versiuni de firmware puternic personalizate și includ corecțiii specifice dispozitivului. Din păcate, producătorii de multe ori nu își trimit modificările și extensiile înapoi dezvoltatorilor de firmware din ramura principală, astfel încât modificările lor nu sunt integrate în versiunile mai noi ale firmware-ului original.

Drept urmare, chiar și sistemele nou vândute folosesc adesea un firmware care se bazează pe o versiune modificată de producător de ani de zile a unui firmware al cărui cod bază a evoluat mult mai mult între timp și oferă caracteristici suplimentare sau prezintă un comportament diferit în anumite aspecte. În plus, denumirea dispozitivelor integrate nu este consecventă între diferitele versiuni modificate de producător ale aceluiași firmware, prin urmare este aproape imposibil să se furnizeze instrucțiuni utilizabile independente de produs pentru sistemele bazate pe ARM.

3.6.3. Configurarea adresei MAC Ethernet în U-Boot

Adresa MAC a fiecărei interfețe Ethernet ar trebui, în mod normal, să fie unică la nivel global și, din punct de vedere tehnic, trebuie să fie unică în domeniul său de difuzare Ethernet. Pentru a realiza acest lucru, producătorul alocă de obicei un bloc de adrese MAC dintr-un fond comun (pool) administrat central (pentru care trebuie plătită o taxă) și preconfigurează una dintre aceste adrese pentru fiecare articol vândut.

În cazul plăcilor de dezvoltare, uneori producătorul dorește să evite plata acestor taxe și, prin urmare, nu oferă adrese unice la nivel global. În aceste cazuri, utilizatorii înșiși trebuie să definească adrese MAC pentru sistemele lor. Când nu este definită nicio adresă MAC pentru o interfață ethernet, unii controlori de rețea generează o adresă MAC aleatorie care se poate modifica la fiecare pornire și, dacă se întâmplă acest lucru, accesul la rețea ar fi posibil chiar și atunci când utilizatorul nu a stabilit manual o adresă, dar de exemplu atribuirea de adrese IP semi-statice de către DHCP pe baza adresei MAC a clientului solicitant nu ar funcționa în mod evident.

Pentru a evita conflictele cu adrese MAC existente atribuite oficial, există un grup de adrese care este rezervat pentru așa-numitele adrese administrate local. Este definit prin valoarea a doi biți specifici din primul octet al adresei (articolul Adresa MAC din Wikipedia în limba engleză oferă o explicație bună). În practică, aceasta înseamnă că de exemplu orice adresă care începe cu un hexazecimal „ca” (cum ar fi ca:ff:ee:12:34:56) poate fi utilizată ca adresă administrată local.

Pe sistemele care utilizează U-Boot ca firmware de sistem, adresa MAC Ethernet este plasată în variabila de mediu ethaddr. Acest lucru poate fi verificat în linia de comandă U-Boot, cu comanda printenv ethaddr și poate fi stabilită cu comanda setenv ethaddr ca:ff:ee:12:34:56 . După stabilirea valorii, comanda saveenv face ca atribuirea să fie permanentă.

3.6.4. Probleme de realocare Nucleu/Initrd/Device-Tree în U-Boot

Pe unele sisteme cu versiuni U-Boot mai vechi pot apărea probleme cu realocarea corectă a nucleului Linux, a discului ram inițial și a blocului arborelui de dispozitive în memorie în timpul procesului de pornire. În acest caz, U-Boot afișează mesajul Se pornește nucleul... (Starting kernel ...), dar sistemul se blochează după aceea, fără alte rezultate. Aceste probleme au fost rezolvate cu versiuni mai noi U-Boot începând cu v2014.07.

Dacă sistemul a folosit inițial o versiune U-Boot mai veche decât v2014.07 și a fost actualizat ulterior la o versiune mai nouă, problema poate apărea în continuare chiar și după actualizarea U-Boot. Actualizarea U-Boot, de obicei, nu modifică variabilele de mediu U-Boot existente, iar remedierea necesită configurarea unei variabile de mediu suplimentare (bootm_size), lucru pe care U-Boot îl face automat numai în instalațiile noi, fără date de mediu existente. Este posibil să stabiliți manual „bootm_size” la valoarea implicită a noului U-Boot rulând comanda env default bootm_size; saveenv în linia de comandă a U-Boot.

O altă posibilitate de a evita problemele legate de realocare este să rulați comanda setenv fdt_high ffffffff; setenv initrd_high 0xffffffff; saveenv în linia de comandă U-Boot pentru a dezactiva complet realocarea discului ram inițial și blocul arborelui de dispozitive.