The graphical installer is not enabled on the arm64 installateur Debian
images for jessie so the serial console is used. The console device should be detected automatically from the firmware, but if it not then after you boot linux from the GRUB menu you will see a 'Booting Linux' message then nothing more.
If you hit this issue you will need to set a specific console config on the kernel command line. Hit e
for 'Edit Kernel command-line' at the GRUB menu, and change
--- quiet
to
console=<device>,<speed>
e.g.
console=ttyAMA0,115200n8
When finished hit Control+x to continue booting with new setting.
Juno has UEFI so the install is straightforward. The most practical method is installing from USB stick. You need up to date firmware for USB-booting to work. Builds from http://releases.linaro.org/latest/members/arm/ after March 2015 tested OK. Consult Juno documentation on firmware updating.
Prepare a standard arm64 CD image on a USB stick. Insert it in one of the USB ports on the back. Plug a serial cable into the upper 9-pin D on the back. If you need networking (netboot image) plug the ethernet cable into the socket on the front of the machine.
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 return 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.
UEFI is available for this machine but it is normally shipped with U-Boot so you will need to either install UEFI firmware first then use standard boot/install methods, or use U-Boot boot methods. Also USB is not supported in the jessie kernel so installing from a USB stick does not work. You must use a serial console to control the installation because the graphical installer is not enabled on the arm64 architecture.
The recommended install method is to copy the installateur Debian
kernel and initrd onto the hard drive, using the openembedded system supplied with the machine, then boot from that to run the installer. Alternatively use TFTP to get the kernel/dtb/initrd copied over and booted (Section 5.1.4.1, « Amorcer à partir de TFTP avec U-Boot »). After installation, manual changes to boot from the installed image are needed.
Run a serial console at 115200, 8bit no parity, and boot the machine. Reboot the machine and when you see "Hit any key to stop autoboot:" hit a key to get a Mustang# prompt. Then use U-Boot commands to load and boot the kernel, dtb and initrd.
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 ».
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.
Sur certains systèmes, U-Boot prédéfinit un ensemble de variables d'environnement avec des adresses de chargement adaptées : kernel_addr_r, ramdisk_addr_r et fdt_addr_r. Vous pouvez vérifier si elles sont définies en exécutant :
printenv kernel_addr_r ramdisk_addr_r fdt_addr_r
Si elles ne sont pas définies, vous devez consulter la documentation de votre système et les positionner manuellement. Pour les systèmes basés sur les puces Allwinner SunXi (par exemple, les Allwinner A10 ou A20, noms d'architecture sun4i et sun7i), vous pouvez utiliser les valeurs suivantes :
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}.