The Debian GNU/Linux ARM port now provides the same stability and ease of maintenance for ARM machines that other architectures have enjoyed for some time. This document describes how to set up Debian-ARM on your Acorn Risc PC without having to repartition the local hard disc, and is aimed particularly at those who already use Debian on another architecture.
Instructions for installing Debian on a Risc PC's local storage have been written by Peter Naulls.
Now the Acorn's ready to go. (With certain kernels you may need to add root=/dev/nfs onto the end of that command to force use of an NFS root.)
(flevit) /usr/local/debian-arm tar zxvf ~/debian-image_990822.tar.gz
You'll need to be root to untar successfully, because the archive contains, for example, devices and setuid programs.
Obviously if the path to the directory you untarred the image into, or your hostname, differs, you'll need to put the appropriate values instead. Although no_root_squash isn't usually recommended, it is necessary if you want to be able to administer the new machine locally.
# <device> <mountpoint> <fstype> <options> <dump> <fsckorder> flevit:/usr/local/debian-arm / nfs defaults,hard,remount 0 0 proc /proc proc defaults 0 0 zeus:/usr/home /usr/home nfs defaults,soft 0 0
Again, if your hostname, IP address (ip), netmask (sm), gateway address (gw), path to mount (rp) or NFS server address (sa) differ, use the appropriate values. You'll also need to find the hardware address (ha) of the machine you're setting up for Linux - the easiest way to do this is to leave it running its existing operating system (presumably RISC OS) and do something like this:
(flevit) ~ ping -c1 moray PING moray.jesus.cam.ac.uk (188.8.131.52): 56 data bytes 64 bytes from 184.108.40.206: icmp_seq=0 ttl=255 time=0.6 ms --- moray.jesus.cam.ac.uk ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 0.6/0.6/0.6 ms (flevit) ~ /usr/sbin/arp Address HWtype HWaddress Flags Mask Iface hades.jesus.cam.ac.uk ether 08:00:5A:C7:01:CF C eth0 hephaestus.jesus.cam.ac ether 00:20:AF:F2:80:CE C eth0 resurrexit.jesus.cam.ac ether 00:80:C8:8E:48:83 C eth1 pentagon.jesus.cam.ac.u ether 00:C0:4F:71:08:40 C eth0 route-north-3.cam.ac.uk ether 00:10:F6:B2:B4:00 C eth0 moray.jesus.cam.ac.uk ether 00:02:07:04:24:E0 C eth1 lambda.jesus.cam.ac.uk ether 00:C0:4F:71:08:40 C eth0 zeus.jesus.cam.ac.uk ether 00:00:B4:3D:18:4C C eth0
The resulting table should contain the hardware address of the machine you just pinged; copy it across, removing the colons as you do so.
And that's probably it.
Hm. Well, then things get interesting. What I did myself, when I found that the autobuilder ARM kernel images had NFS compiled as a module (not very helpful in this context), was to compile a new kernel on a machine that already had a working crosscompiler to ARM. Or, at least, that's what I did after several abortive attempts to build my own crosscompiler from sources. In the meantime, though, Matthew Garret's built some Debian packages for crosscompiling to ARM; see his cross-compilation page. If you don't have a Debian system to hand, the generally recommended source of information on building a cross-compiler with an ARM target seems to be Chris Rutter's toolchain guide.
Moray Allan <email@example.com>, 22 March 2000
With thanks to Timothy Baldwin, Matthew Garrett, Peter Naulls, Russell King, Jim Pick, Chris Rutter, Linus Torvalds, and many others.