Differences between revisions 2 and 3
Revision 2 as of 2005-11-23 18:21:23
Size: 4086
Editor: DaleSmith
Revision 3 as of 2005-11-23 20:32:20
Size: 3612
Editor: DaleSmith
Comment: Removed Funky Footnote
Deletions are marked like this. Additions are marked like this.
Line 91: Line 91:
massage it a bit[1] and feed it into `dpkg --set-selections`. massage it a bit and feed it into `dpkg --set-selections`.
Line 135: Line 135:

That bit of sed converts a list of .debs that look like this:

To the proper input to `dpkg --set-selections` , which looks like
bluez-pan install
bluez-pcmcia-support install
bluez-sdp install
bluez-utils install
libsdp2-dev install
libsdp2 install

Here are the steps I used to install Debian woody using debootstrap on the Alchemy development board.

1. Create the nfsroot environment on your workstation

Create a place for the root filesystem.

mkdir -p /tftpboot/

add that dir to /etc/exports and restart nfs


debootstrap --arch mips woody /tftpboot/ http://archive.progeny.com/debian/ woody_mipsel

Then you need to edit some files.

  • /etc/hosts

cat >> /tftboot/                localhost                masta                  tester
  • /etc/fstab

cat > /tftboot/
/proc     /proc                 proc     defaults
masta:/ /                                nfs      rw,rsize=8192,wsize=8192,hard,intr    0  0
none            /proc/bus/usb usbfs     defaults                                                                          0  0
  • /etc/hostname

echo tester > /tftboot/
  • /etc/resolv.conf

echo nameserver > /tftboot/

2. Boot the system

At the Yamon prompt, load the kernel. The syntax is:

load [-r] [tftp:][//ipaddr][/filename]

You can pre-load some of the values, so you only need to type "load" to actually load a kernel.

load Then start the kernel.


The system will boot, but because /etc/inittab doesn't exist yet, init will ask you for a runlevel. Tell it "s" for single use mode. You will be dropped into a shell.

The filesystem is mounted read-only at this point, so remount it read-write. Add the -n option to not update /etc/mtab:

mount -n / -o remount,rw

Then mount the proc filesystem:

mount -n /proc

The date will be wrong, as there is no battery backed hardware clock on the dev board. So set it by hand:

date -s "2003-8-5 9:23"

Now to reinstall all the packages! The packages are already "installed", that is they are on the disk, but the package system doesn't have them in the database yet.

cd /var/cache/apt/archives/
dpkg -i libc6* libstdc++* libncurses5* dpkg_*
dpkg -i apt_*.dpkg

At this point apt is installed. We can install the rest of the debs using apt. We can tell apt to use the "dselect-upgrade" method, but first we need to set the packages. So get a directory listing, massage it a bit and feed it into dpkg --set-selections.

ls *.deb | sed 's/\([^_]*\)_.*/\1 install/' | dpkg --set-selections

Then run apt-get to install the selected packages:

apt-get dselect-upgrade

This sometimes fails. Just keep running it over and over until it's done. Sometimes you need to correct a problem. For example, I needed to rm /var/mail to get base-files to install.

3. Other things that need to be done

To get the serial console working:

- In /etc/inittab, uncomment the T0 line and change the baud

  • rate to 115200

- Add ttyS0 to /etc/securetty

echo ttyS0 >> /tftboot/

You can do that (and any other config file editing) from your host system, working on the exported files.

Once everything is all up and running nicely, add some options to /etc/apt/sources.list and do an apt-get update and then apt-get upgrade.

Some packages that need to be added are:

ssh telnet: So we can login over the network ntp-simple: So we can set the date dilo ppp pppoe: Some packages to remove

Also make sure turn off hwclock: update-rc.d -f hwclock.sh remove update-rc.d -f hwclockfirst.sh remove