The graphical installer is not enabled on the arm64 debian-installer
images
for jessie so the serial console is used. The console device
should be detected automatically from the firmware, but if it is
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 serial port 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 (Abschnitt 5.1.1, „Console configuration“). Control+x to boot should show you the debian-installer
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 debian-installer
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 (Abschnitt 5.1.4.1, „TFTP-Boot in 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.
Um per Netzwerk booten zu können, benötigen sie eine Netzwerkverbindung sowie einen TFTP-Netzwerk-Boot-Server (und unter Umständen auch einen DHCP-, RARP- oder BOOTP-Server zur automatischen Netzwerkkonfiguration).
Die server-seitige Einrichtung zur Unterstützung vom Booten über Netzwerk ist im Abschnitt 4.3, „Dateien vorbereiten für TFTP-Netzwerk-Boot“ beschrieben.
Das Booten von Systemen über das Netzwerk mittels der U-Boot-Firmware erfordert drei Schritte: a) Konfigurieren des Netzwerks, b) Laden der Images (Kernel/Initial-Ramdisk/dtb) in den Speicher und c) das eigentliche Ausführen des vorher geladenen Codes.
Als erstes müssen Sie das Netzwerk konfigurieren, entweder automatisch über DHCP, indem Sie dies ausführen:
setenv autoload no dhcp
oder manuell, indem Sie verschiedene Umgebungsvariablen setzen:
setenv ipaddr <ip-adresse des clients> setenv netmask <netmask> setenv serverip <ip-adresse des tftp-servers> setenv dnsip <ip-adresse des nameservers> setenv gatewayip <ip-adresse des standard-gateways>
Falls Sie möchten, können Sie diese Einstellungen auch fest einrichten mit:
saveenv
Danach müssen Sie die Images (Kernel/Initial-Ramdisk/dtb) in den Speicher laden. Dies wird mit dem tftpboot-Befehl erledigt, der zusammen mit der Adresse, an der das Image im Speicher abgelegt werden soll, angegeben werden muss. Unglücklicherweise kann die Lücke im Speicher von System zu System variieren, daher gibt es keine grundsätzliche Regel, welche Adresse hierfür verwendet werden muss.
Auf einigen Systemen legt U-Boot einige Umgebungsvariablen mit passenden Ladeadressen an: kernel_addr_r, ramdisk_addr_r und fdt_addr_r. Sie können überprüfen, ob diese definiert sind, indem Sie dies ausführen:
printenv kernel_addr_r ramdisk_addr_r fdt_addr_r
Falls sie nicht definiert sind, müssen Sie die Dokumentation des Systems konsultieren bezüglich näherer Angaben zu passenden Werten und diese händisch setzen. Für Systeme, die auf Allwinner SunXi-SoCs (z.B. dem Allwinner A10, Architekturname „sun4i“ oder dem Allwinner A20, Architekturname „sun7i“) basieren, können Sie z.B. folgende Werte nutzen:
setenv kernel_addr_r 0x46000000 setenv fdt_addr_r 0x47000000 setenv ramdisk_addr_r 0x48000000
Sind die Ladeadressen bereits definiert, können Sie die Images von dem vorher definierten TFTP-Server in den Speicher laden mit:
tftpboot ${kernel_addr_r} <dateiname des kernel-images> tftpboot ${fdt_addr_r} <dateiname des dtb> tftpboot ${ramdisk_addr_r} <dateiname des initial-ramdisk-images>
Der dritte Schritt ist das Setzen der Kernel-Befehlszeile und das eigentliche Ausführen des geladenen Codes. U-Boot übergibt den Inhalt der Umgebungsvariable „bootargs“ als Befehlszeile an den Kernel; also können alle Parameter für den Kernel und den Installer - wie z.B. die Konsolen-Gerätedatei (lesen Sie dazu Abschnitt 5.3.1, „Boot-Konsole“) oder eventuelle Voreinstellungsoptionen (Näheres in Abschnitt 5.3.2, „Debian-Installer-Parameter“ und Anhang B, Automatisieren der Installation mittels Voreinstellung) - mit einem Befehl wie dem folgenden gesetzt werden:
setenv bootargs console=ttyS0,115200 rootwait panic=10
Der exakte Befehl zur Ausführung des vorher geladenen Codes hängt vom verwendeten Image-Format ab. Bei uImage/uInitrd lautet der Befehl:
bootm ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
Bei nativen Linux-Image ist es:
bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r}
Beachten Sie: wenn Sie Standard-Linux-Images booten, ist es wichtig, dass das Initial-Ramdisk-Image nach dem Kernel und der DTB geladen wird, da U-Boot die filesize-Variable (Dateigröße) auf die Größe der letzten geladenen Datei setzt und der bootz-Befehl benötigt die Größe des Ramdisk-Images, um korrekt zu arbeiten. Beim Booten eines plattformspezifischen Kernels, also eines Kernels ohne Gerätebaum-Abbild (DTB), lassen Sie den ${fdt_addr_r}-Parameter einfach weg.