5.1. Démarrer l'installateur sur ARM 64 bit

5.1.1. Configuration de la console

L'installateur graphique n'est pas activé dans les images de l'installateur de Jessie pour l'architecture arm64. La console série est utilisée à la place. Le périphérique de console devrait être détecté par le microcode, mais si ça n'est pas le cas, après avoir démarré Linux depuis le menu de GRUB, vous verrez le message « Booting Linux » mais rien d'autre.

Si vous observez ce problème, vous devrez définir une configuration spécifique de la console sur la ligne de commande du noyau. Entrez e pour éditer la ligne de commande du noyau (« Edit kernel command-line ») au menu de GRUB, et remplacez

--- quiet

par

console=<périphérique>,<vitesse>

Par exemple

console=ttyAMA0,115200n8

Après cela, entrez Control+x pour amorcer avec les nouveaux paramètres.

5.1.2. Installation sur Juno

Juno est un système UEFI et l'installation devrait donc être relativement simple. La méthode la plus pratique est d'installer depuis une clef USB. Vous aurez besoin d'un microcode à jour pour faire fonctionner l'amorçage par USB. Les constructions de http://releases.linaro.org/latest/members/arm/ postérieures à mars 2015 ont été testées avec succès. Veuillez consulter la documentation des systèmes Juno pour la mise à jour du microcode.

Préparez une image CD standard pour arm64 sur une clef USB. Insérez la clef dans un des ports disponibles à l'arrière. Branchez un cable de liaison série dans le port série à 9 broches supérieur à l'arrière. Si vous avez besoin du réseau (pour les images netboot), branchez le câble dans la prise de devant.

Run a serial console at 115200, 8bit no parity, and boot the Juno. It should boot from the USB stick to a GRUB menu. The console config is not correctly detected on Juno so just hitting Entrée will show no kernel output. Set the console to

console=ttyAMA0,115200n8

(as described in Section 5.1.1, « Configuration de la console »). Control+x to boot should show you the installateur Debian screens, and allow you to proceed with a standard installation.

5.1.3. Installation sur Applied Micro Mustang

UEFI est disponible sur cette machine, mais elle est souvent fournie avec U-Boot. Vous devrez donc d'abord installer le microcode UEFI pour démarrer une installation standard, ou utiliser la méthode avec U-Boot. De plus, l'USB n'est pas pris en charge dans le noyau de Jessie, ce qui empêche l'installation par USB. Vous devrez utiliser une console série pour effectuer l'installation car l'installateur graphique n'est pas activé pour l'architecture arm64.

La méthode recommandée est de copier le noyau de l'installateur Debian et l'initrd sur le disque dur en utilisant le système openembedded fourni avec la machine, puis d'amorcer depuis ce disque pour effectuer l'installation. Autrement, utilisez TFTP pour obtenir le noyau, l'initrd et l'arbre de périphérique et démarrez la machine (Section 5.1.4.1, « Amorcer à partir de TFTP avec U-Boot »). Après l'installation, des changements seront à faire pour amorcer depuis le système installé.

Exécutez une console série à 115200 bauds, 8 bits, aucun bit de parité, et amorcez la machine. Redémarrez la machine et lorsque vous lisez « Hit any key to stop autoboot: », pressez une touche pour obtenir une invite Mustang#. Utilisez ensuite les commandes U-Boot pour charger et démarrer le noyau, l'arbre de périphérique et l'initrd.

5.1.4. Amorcer à partir de TFTP

Pour amorcer depuis le réseau, il vous faut une connexion au réseau et un serveur TFTP (et aussi, sûrement, un serveur DHCP, RARP ou BOOTP pour la configuration automatique du réseau).

L'installation côté serveur pour l'amorçage depuis le réseau est décrite dans la Section 4.3, « Préparer les fichiers pour amorcer depuis le réseau avec TFTP ».

5.1.4.1. Amorcer à partir de TFTP avec U-Boot

Sur les systèmes utilisant le microprogramme U-Boot, l'amorçage depuis le réseau est effectué en trois étapes : a) configurer le réseau, b) charger les images (noyau/initrd/dtb) en mémoire et c) exécuter le code chargé.

Premièrement, il faut configurer le réseau automatiquement avec DHCP en exécutant :

setenv autoload no
dhcp

ou manuellement en positionnant plusieurs variables d'environnement :

setenv ipaddr <adresse ip du client>
setenv netmask <masque réseau>
setenv serverip <adresse ip du serveur tftp>
setenv dnsip <adresse ip du serveur de noms>
setenv gatewayip <adresse ip de la passerelle par défaut>

Si vous préférez, vous pouvez rendre ces réglages permanents en exécutant :

saveenv

Une fois cette étape exécutée, vous devez charger les images (noyau/initrd/dtb) en mémoire avec la commande tftpboot qui doit être appelée avec l'adresse à laquelle charger l'image. Malheureusement, l'adressage de la mémoire varie d'un système à l'autre et il n'y a donc pas de règle générale à appliquer.

On some systems, U-Boot predefines a set of environment variables with suitable load addresses: kernel_addr_r, ramdisk_addr_r and fdt_addr_r. You can check whether they are defined by running

printenv kernel_addr_r ramdisk_addr_r fdt_addr_r

If they are not defined, you have to check your system's documentation for appropriate values and set them manually. For systems based on Allwinner SunXi SOCs (e.g. the Allwinner A10, architecture name « sun4i » or the Allwinner A20, architecture name « sun7i »), you can e.g. use the following values:

setenv kernel_addr_r 0x46000000
setenv fdt_addr_r 0x47000000
setenv ramdisk_addr_r 0x48000000

Lorsque les adresses de chargement sont définies, vous pouvez charger les images depuis le serveur tftp défini précédemment avec :

tftpboot ${kernel_addr_r} <fichier de l'image du noyau>
tftpboot ${fdt_addr_r} <fichier du dtb>
tftpboot ${ramdisk_addr_r} <fichier de l'image initrd>

La troisième étape consiste à positionner la ligne de commande du noyau et exécuter le code chargé. U-boot envoie le contenu de la variable d'environnement « bootargs » au noyau. Tous les paramètres pour le noyau et l'installateur — comme le périphérique d'interface (consultez la Section 5.3.1, « Console d'amorçage ») ou les options de préconfiguration (consultez la Section 5.3.2, « Paramètres pour l'installateur Debian » et l'Annexe B, Automatisation de l'installation par préconfiguration) — peuvent être positionnés avec une commande comme celle-ci

setenv bootargs console=ttyS0,115200 rootwait panic=10

La commande exacte pour exécuter le code chargé dépend du format d'image utilisé. Pour le format uImage/uInitrd, la commande sera :

bootm ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}

et avec une image Linux native, elle sera :

bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r}

Note : dans le cas de l'amorçage avec une image Linux standard, il est important de charger l'initrd après le noyau et le dtb, car U-Boot positionne la variable filesize à la taille du dernier fichier chargé, et la commande bootz a besoin de la taille de cet initrd pour fonctionner correctement. Dans le cas de l'amorçage d'un noyau spécifique (c'est-à-dire sans arbre de périphériques), il suffit d'omettre le paramètre ${fdt_addr_r}.