3.6. Configuration matérielle et système avant l'installation

Cette section passe en revue les réglages matériels que vous devrez peut-être effectuer avant d'installer Debian. En général, cela implique de vérifier, et parfois de modifier, les réglages du microprogramme système (BIOS,UEFI, etc.) sur votre machine. Le « BIOS », « UEFI » ou « microprogramme système » est le logiciel de base utilisé par le matériel ; il est plus spécifiquement exécuté pendant le processus d'amorçage (après la mise sous tension).

3.6.1. Microprogramme ARM

Comme évoqué plus haut, il n'y a malheureusement pas de standard de microprogramme sur les systèmes ARM. Même le comportement de deux systèmes qui utilisent le même microprogramme peut être différent. Cela vient du fait que beaucoup de périphériques utilisant l'architecture ARM sont des systèmes embarqués, pour lesquels les constructeurs produisent des versions de microprogramme largement personnalisées et incluent des correctifs spécifiques au matériel. Malheureusement, ces constructeurs ne remontent pas leurs modifications et extensions aux développeurs de la branche principale, et leurs changements ne sont pas intégrés aux nouvelles versions du microprogramme original.

En conséquence de cela, même les nouveaux systèmes vendus utilisent souvent un microprogramme basé sur une ancienne version propre au constructeur, alors que la branche principale a beaucoup évolué et offre maintenant des fonctionnalités supplémentaires, ou se comporte différemment. De plus, les nommages des périphériques embarqués ne sont pas cohérents d'un fabriquant à l'autre pour le même microprogramme. Il est donc presque impossible de fournir des instructions utilisables pour tous les systèmes basés sur ARM.

3.6.2. Configurer l'adresse MAC Ethernet dans U-Boot

L'adresse MAC de chaque interface Ethernet devrait normalement être unique de façon globale, et doit surtout être unique au sein de son domaine réseau. Pour y parvenir, les constructeurs réservent généralement un lot d'adresses MAC depuis une réserve centrale (pour laquelle il faut payer) et préconfigurent une de ces adresses sur chaque élément vendu.

Dans le cas des cartes de développement, certains constructeurs veulent éviter de payer ces frais et ne fournissent pas d'adresse réellement unique. Dans ce cas, les utilisateurs doivent définir eux-mêmes une adresse MAC pour leurs systèmes. Si aucune adresse MAC n'est définie pour une interface ethernet, certains pilotes de réseau génèrent une adresse MAC aléatoire qui peut changer à chaque démarrage. Dans cette configuration, l'accès au réseau est possible même si l'utilisateur n'a pas configuré d'adresse, mais par exemple assigner une adresse IP semi statique par DHCP, basée sur l'adresse MAC du client, ne fonctionnerait évidemment pas correctement.

Pour éviter les conflits avec les adresses MAC officiellement assignées, il y a une réserve pour les adresses « administrées localement ». Elles sont définies par la valeur de deux bits spécifiques dans le premier octet de leur adresse (l'article « Adresse MAC » sur Wikipédia, ou «  MAC address » sur la page anglaise, donne une bonne explication). En pratique, cela veut dire que toute adresse commençant avec la chaîne hexadécimale ca (comme ca:ff:ee:12:34:56) peut être utilisée comme administrée localement.

Sur les systèmes utilisant U-Boot comme microprogramme système, l'adresse MAC Ethernet est placée dans la variable d'environnement « ethaddr ». Elle peut être vérifiée à l'invite de U-Boot avec la commande « printenv ethaddr » et peut être positionnée avec « setenv ethaddr ca:ff:ee:12:34:56 ». Après avoir positionnée la variable, la commande « saveenv » rend la modification permanente.

3.6.3. Problèmes de positionnement du noyau, de l'initrd et de l'arbre de périphériques dans U-Boot

Sur certains systèmes avec d'anciennes versions de U-Boot, il peut y avoir des problèmes de déplacement du noyau Linux, de l'image mémoire initiale ou de l'arbre des périphériques dans la mémoire lors du démarrage. Dans ce cas, U-Boot affiche le message « Starting kernel ... », mais le système gèle après cela sans autre message. Ces problèmes ont été résolus dans les nouvelles versions de U-Boot, postérieures à v2014.07.

Si le système utilisait une version plus ancienne que la v2014.07, et même après une mise à niveau de U-Boot, le problème peut encore apparaître. La mise à niveau de U-Boot ne modifie généralement pas les variables d'environnement existantes et le correctif nécessite une variable d'environnement supplémentaire (bootm_size), qui n’est créée automatiquement que sur les nouvelles installations sans variable d’environnement existante, Il est possible de positionner manuellement la variable bootm_size à la nouvelle valeur par défaut en exécutant la commande « env default bootm_size; saveenv » à l'invite de U-Boot.

Une autre possibilité de contourner les problèmes liés au déplacement est d'exécuter la commande « setenv fdt_high ffffffff; setenv initrd_high 0xffffffff; saveenv » à l'invite de U-Boot, pour désactiver totalement le déplacement du disque mémoire initial et de l'arbre de périphériques.