There are three major steps in installing Debian on your Bifferboard:
- Kernel boot command line.
- Kernel installation on the Bifferboard.
- Rootfs installation on a USB device or an SD/MMC card.
Kernel boot command line
Since Biffboot v3.3, dated 19.July.2010, the kernel boot command line no longer specifies an external block device for the root file system. As a result of this, you need to update the boot configuration before you can boot from a USB device or an SD/MMC card. You have two options to configure the boot command line:
- bb_eth_setconfig.py – configuration via Ethernet, using a pyGTK application.
- Serial console – you will need a USB-to-serial cable @ 3.3V to do this; the cable is sold at the Bifferboard order page, and I recommend that you have such a cable for debugging purposes.
You need to set the kernel boot command line (“Kernel cmndline”) to:
console=uart,io,0x3f8 root=/dev/sda1 rootwait
Kernel installation on the Bifferboard
Download a pre-built kernel binary image:
- vmlinuz-126.96.36.199-bifferboard-ipipe (909K, MD5 checksum c375285bc07df2a42e43f2065ebc5b56)
- vmlinuz-2.6.32-bifferboard – EXPERIMENTAL (906K, MD5 checksum 54fa8b8769ed7456a8a59fc2f0feac98)
The kernel is compiled with (almost) all possible modules, so your Bifferboard should be able to easily use any device supported on Debian. Once you have downloaded the kernel image, you can then upload it to the Bifferboard, as advised at the Biffboot Wiki page. You have two options to upload the kernel – via the serial port or over the ethernet. Both work well.
Example: Assuming that you have the Bifferboard SVN repository checked out in “~/biffer/svn“, you have downloaded the “vmlinuz-188.8.131.52-bifferboard-ipipe” kernel image in “/tmp“, your Bifferboard has a MAC address of “00:B3:F6:00:37:A9“, and you have connected it on the Ethernet port “eth0” of your computer, here are the commands that you would need to use:
cd ~/biffer/svn/utils sudo ./bb_eth_upload.py eth0 00:B3:F6:00:37:A9 /tmp/vmlinuz-184.108.40.206-bifferboard-ipipe
Rootfs installation on a USB device or an SD/MMC card
Once you have the kernel “installed” on the Bifferboard and ready to boot, you need to prepare a rootfs media. This is where your Debian installation is stored and booted from. Download one of the following pre-built rootfs images (default root password is “biffroot”):
- Debian “lenny” for Bifferboard – minimal (download size 95M, uncompressed size 346MB, MD5 checksum bda83e6b7b6440a75fa9e749f04ebb2d).
- Debian “lenny” for Bifferboard – developer (download size 129M, uncompressed size 468MB, MD5 checksum 01eb3cc5246ad1ca793ece9de2add9da).
The “developer” version adds the following packages: build-essential, perl, links, manpages, manpages-dev, man-db, mc, vim. Note that for each image you will need at least 100MB more free on the rootfs media.
In order to populate the rootfs media, you have to do the following:
- Create one primary partition, format it as “ext3” and then mount the USB device or SD/MMC card.
- Extract the archive in the mounted directory.
- Unmount the directory.
Example: Assuming that you have the Bifferboard SVN repository checked out in “~/biffer/svn“, you have downloaded the “minimal” rootfs image in “/tmp“, and you are using an SD/MMC card under the device name “/dev/mmcblk0“, here are the commands that you would need to use:
sudo bash mkdir /mnt/rootfs cd ~/biffer/svn/debian/rootfs ./format-and-mount.sh /dev/mmcblk0 /mnt/rootfs tar -jxf /tmp/debian-lenny-bifferboard-rootfs-minimal.tar.bz2 -C /mnt/rootfs umount /mnt/rootfs # CHANGE THE DEFAULT ROOT PASSWORD!
When you have the USB device or SD/MMC card ready and populated with the customized Debian rootfs, plug it in Bifferboard, attach a serial cable to Bifferboard, if you have one, and boot it up.
That’s it. Enjoy your Bifferboard running Debian.
Update: As already mentioned in the comments below, you would probably need to set up swap too. Here is my recipe:
# change "128" (MBytes) below to a number which suits your needs dd if=/dev/zero of=/swapfile bs=1M count=128 mkswap /swapfile swapon /swapfile # enables swap right away; disable with "swapoff -a" echo '/swapfile none swap sw 0 0' >> /etc/fstab # enables swap at system boot
Using a file for swap on a 2.6 Linux kernel has the same performances as using a separate swap partition as discussed at LKML.
Update 2: As announced by Debian, Debian 5.0 (lenny) has been superseded by Debian 6.0 (squeeze). Security updates have been discontinued as of February 6th, 2012. Thus by downloading and installing the images provided here, you’re using an obsolete Debian release. If that’s not a problem for you, read on. You need to change the file “/etc/apt/sources.list” to the following using your favorite text editor:
deb http://archive.debian.org/debian lenny main contrib non-free deb-src http://archive.debian.org/debian lenny main contrib non-free deb http://archive.debian.org/debian-security/ lenny/updates main contrib non-free deb-src http://archive.debian.org/debian-security/ lenny/updates main contrib non-free
P.S. If you want to build your own customized Debian rootfs image for Bifferboard – checkout the Bifferboard SVN repository and review the instructions in “debian/rootfs/images.txt“.
- dpkg: extract specific file.
- Other similar Debian projects for Bifferboard – Bifferboard Wiki “Home > ’Desktop’ Linux Distributions > Debian” page.
- Pinouts for the standard single USB Bifferboard.
- Bifferboard with 2 USB ports – hardware specification and pinouts.