5.1. Opstart af installationsprogrammet på 64-bit ARM

5.1.1. Konsolkonfiguration

Det grafiske installationsprogram er ikke aktiveret på arm64 debian-installer-aftryk for jessie så den serielle konsol anvendes. Konsolenheden bør blive registreret automatisk fra firmwaren, men hvis den ikke gør det så vil du efter, at du starter op i Linux fra GRUB-menuen se en Booting Linux-besked, og så intet andet.

Hvis du møder denne problemstilling, så skal du angive en speciel konsolkonfiguration på kernekommandolinjen. Tryk på e for Rediger kernekommandolinje i GRUB-menuen, og ændr

--- quiet

til

console=<device>,<speed>

f.eks.

console=ttyAMA0,115200n8

. Når færdig tryk på Control+x for at forsætte opstart med den nye indstilling.

5.1.2. Juno-installation

Juno har UEFI så installationen er ligefrem. Den mest praktiske metode er installation fra USB-drev. Du skal bruge en opdateret firmware for at USB-opstart fungerer. Bygninger fra http://releases.linaro.org/latest/members/arm/ efter marts 2015 er testet o.k. Se Juno-dokumentationen vedrørende firmwareopdatering.

Forbered et standardaftryk fra en arm64-cd på et USB-drev. Indsæt det i en af USB-portene på bagsiden. Indsæt et serielt kabel i den øvre 9-stik serielle port på bagsiden. Hvis du skal bruge netværk (netboot-aftryk) så isæt ethernetkablet i soklen på fronten af maskinen.

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 Enter will show no kernel output. Set the console to

console=ttyAMA0,115200n8

(as described in Afsnit 5.1.1, “Konsolkonfiguration”). Control+x to boot should show you the debian-installer screens, and allow you to proceed with a standard installation.

5.1.3. Applied Micro Mustang 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 (Afsnit 5.1.4.1, “TFTP-opstart i 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.

5.1.4. Opstart med TFTP

Opstart fra netværket kræver, at du har en netværksforbindelse og en TFTP-netværksopstartsserver (og sandsynligvis også en DHCP-, RARP- eller BOOTP-server for automatisk netværkskonfiguration).

Opsætningen på serversiden for understøttelse af netværksopstart er beskrevet i Afsnit 4.3, “Forberedelse af filer for TFTP-netopstart”.

5.1.4.1. TFTP-opstart i U-Boot

Netværksopstart på systemer, der bruger firmwaren U-Boot, består af tre trin: a) konfiguration af netværket, b) indlæsning af aftrykket (kerne/initiel ramdisk/dtb) i hukommelsen og c) faktisk kørsel af den tidligere indlæste kode.

Først skal du konfigurere netværket, enten automatisk via DHCP ved at køre

setenv autoload no
dhcp

eller manuelt ved at indstille flere miljøparametre

setenv ipaddr <ip-adresse for klienten>
setenv netmask <netmaske>
setenv serverip <ip-adresse for tftp-serveren>
setenv dnsip <ip-adresse for navneserveren>
setenv gatewayip <ip-adresse for standardadgangspunktet>

Hvis du foretrækker det kan du foretage disse indstillinger ved at køre

saveenv

Efterfølgende skal du indlæse aftrykkene (kerne/intiel ramdisk/dtb) i hukommelsen. Dette gøres med kommandoen tftpboot, som skal have adressen hvor aftrykket skal lagres i hukommelsen. Desværre kan hukommelseskortet variere fra system til system, så der er ingen generel regel om, hvilke adresser som kan bruges.

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

Når indlæsningsadresserne er defineret, så kan du indlæse aftrykket i hukommelsen fra den tidligere definerede tftp-server med

tftpboot ${kernel_addr_r} <filnavn for kerneaftrykket>
tftpboot ${fdt_addr_r} <filnavn for dtb'en>
tftpboot ${ramdisk_addr_r} <filnavn for det initielle ramdisk-aftryk>

Tredjeparten indstiller kernens kommandolinje og kører den indlæste kode. U-boot videresender indholdet af miljøvariablen bootargs som kommandolinje til kernen, så eventuelle parametre for kernen og installationsprogrammet - såsom konsolenheden (se Afsnit 5.3.1, “Opstartskonsol”) eller forudfyldte indstillinger (se Afsnit 5.3.2, “Parametre for Debian-installationsprogrammet” og Appendiks B, Automatisering af installationen med preseeding (forhåndskonfiguration)) - kan sættes med en kommando som

setenv bootargs console=ttyS0,115200 rootwait panic=10

Den præcise kommando til at køre den tidligere indlæste kode afhænger af det anvendte aftryksformat. Med uImage/uInitrd er kommandoen

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

og med standardaftryk for Linux er det

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

Bemærk: Når der opstartes standardaftryk for Linux, så er det vigtigt at indlæse det oprindelige ramdisk-aftryk efter kernen og dtb'en, da U-Boot angiver filstørrelsesvariablen til størrelsen på den sidst indlæste fil og kommandoen bootz kræver størrelsen af ramdisk-aftrykket for at fungere korrekt. I tilfælde hvor der opstartes en platformspecifik kerne, d.v.s. en kerne uden enhedstræ, udelades parameteren ${fdt_addr_r}.