It's taken a while but all of the pieces are finally in place to run successfully through Debian Installer on ARM64 using the Debian ARM64 port.
So I'm now running nightly builds locally and uploading them to http://www.hellion.org.uk/debian/didaily/arm64/.
If you have CACert in your CA roots then you might prefer the slightly more secure version.
Hopefully before too long I can arrange to have them building on one of the project machines and uploaded to somewhere a little more formal like people.d.o or even the regular Debian Installer dailies site. This will have to do for now though.
Warning
The arm64 port is currently hosted on Debian Ports which only supports the unstable "sid" distribution. This means that installation can be a bit of a moving target and sometimes fails to download various installer components or installation packages. Mostly it's just a case of waiting for the buildd and/or archive to catch up. You have been warned!
Installing in a Xen guest
If you are lucky enough to have access to some 64-bit ARM hardware (such as the APM X-Gene, see wiki.xen.org for setup instructions) then installing Debian as a guest is pretty straightforward.
I suppose if you had lots of time (and I do mean lots) you could also install under Xen running on the Foundation or Fast Model. I wouldn't recommend it though.
First download the installer
kernel
and
ramdisk
onto your dom0 filesystem (e.g. to /root/didaily/arm64
).
Second create a suitable guest config file such as:
name = "debian-installer"
disk = ["phy:/dev/LVM/debian,xvda,rw"]
vif = [ '' ]
memory = 512
kernel = "/root/didaily/arm64/vmlinuz"
ramdisk= "/root/didaily/arm64/initrd.gz"
extra = "console=hvc0 -- "
In this example I'm installing to a raw logical volume
/dev/LVM/debian
. You might also want to use
randmac to generate a
permanent MAC address for the Ethernet device (specified as
vif = ['mac=xx:xx:xx:xx:xx:xx']
).
Once that is done you can start the guest with:
xl create -c cfg
From here you'll be in the installer and things carry on as
usual. You'll need to manually point it to ftp.debian-ports.org
as
the mirror, or you can preseed by appending to the extra
line in the
cfg like so:
mirror/country=manual mirror/http/hostname=ftp.debian-ports.org mirror/http/directory=/debian
Apart from that there will be a warning about not knowing how to setup the bootloader but that is normal for now.
Installing in Qemu
To do this you will need a version of http://www.qemu.org
which supports qemu-system-aarch64
. The latest release doesn't yet
so I've been using
v2.1.0-rc3
(it seems upstream are now up to -rc5). Once qemu is built and
installed and the installer
kernel
and
ramdisk
have been downloaded to $DI
you can start with:
qemu-system-aarch64 -M virt -cpu cortex-a57 \
-kernel $DI/vmlinuz -initrd $DI/initrd.gz \
-append "console=ttyAMA0 -- " \
-serial stdio -nographic --monitor none \
-drive file=rootfs.qcow2,if=none,id=blk,format=qcow2 -device virtio-blk-device,drive=blk \
-net user,vlan=0 -device virtio-net-device,vlan=0
That's using a qcow2 image for the rootfs, I think I created it with something like:
qemu-img create -f qcow2 rootfs.qcow2 4G
Once started installation proceeds much like normal. As with Xen you
will need to either point it at the debian-ports archive by hand or
preseed by adding to the -append
line and the warning about no
bootloader configuration is expected.
Installing on real hardware
Someone should probably try this ;-).