jamie.lentin.co.uk

Devices & Debian

Other non-computer shaped things that can still run Linux. To get them going there are various things that are useful to set-up on a host PC regardless of what you are trying to get going

Cross-compilier

Emdebian provide you with a handy source of cross-compilers for various architectures, saving you effort. They say you should use stable, unless you're planning on developing the compilers themselves. So add the repository to your system:

# cat <<EOF > /etc/apt/sources.list.d/emdebian.list
deb http://www.emdebian.org/debian/ stable main
EOF
# aptitude install emdebian-archive-keyring
# aptitude update

Then try installing one if the virtual packages to see what GCC versions you can install:

# aptitude install c-compiler-arm-linux-gnueabi # Or c-compiler-mipsel-linux-gnu, e.g.
  . . .
Package c-compiler-arm-linux-gnueabi is a virtual package provided by:
  gcc-4.4-arm-linux-gnueabi 4.4.5-8
  gcc-4.3-arm-linux-gnueabi 4.3.5-4
You should explicitly select one to install.

...and then install the version you opt for.

You may see "Depends: libgmp3c2 which is a virtual package." if using sid, in which case the easiest thing seems to be to install the package from testing.

TFTP Server

TFTP is a simple protocol that many bootloaders support to transfer files over a network into memory. This means you can load a kernel over a network which is very handy when debugging.

One such server is "tftpd-hpa". This can be installed via. apt-get / aptitiude in Debian, all defaults are fine. This will create a /srv/tftp which will be available to any hosts that connect.

NFS Booting

You can netboot via NFS from another host, which makes tinkering with config fastest.

If you use dnsmasq as a DHCP server, you can set the following in dnsmasq.conf so the device finds it's root FS:

dhcp-host=00:09:5B:F8:A9:E1,net:wgt634u,10.150.1.70,wgt634u
dhcp-boot=net:wgt634u,kernel.elf.gz,nfs-server-host,nfs-server-ip
dhcp-option=net:wgt634u,option:root-path,/srv/netgear_nfsroot

Then all the device needs is {{root=/dev/nfs rw ip=dhcp}} in it's kernel commandline.