Installing Debian on BCM91250A
In order to install Debian on an BCM91250A evaluation board (SWARM), you need the following:
- an BCM91250A evaluation board from Broadcom with a recent version of CFE (see my page on upgrading CFE).
- a null modem cable. (We will support desktop like installations with a compatible graphics card and an USB keyboard in the future, but this currently doesn't work.)
- another machine (called the server from now on) on which you can install a TFTP and a DHCP server.
Preparing the server
First, you have to install a TFTP and DHCP server. While I will demonstrate in the following how to configure these services on a Debian machine, there is no special requirement that these services run on Debian. Any TFTP and DHCP server will do, and they don't even have to be on the same machine.
In order to install TFTP and DHCP packages, issue the following commands as
user root
:
apt-get install tftpd apt-get install isc-dhcp-server
Secondly, you have to configure the TFTP and the DHCP server. The TFTP
package should automatically put a proper configuration line in
/etc/inetd.conf
but you might have to adapt it to your system. By
default, it will use /boot
as the directory to serve TFTP files. Edit
the /etc/inetd.conf
file and make sure it contains a line like this:
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /boot
You also have to configure your DHCP server. Edit /etc/dhcp/dhcpd.conf
and add an entry similar to the following:
host swarm { hardware ethernet 00:02:4C:FE:0D:09; fixed-address 192.168.1.67; option routers 192.168.1.1; option host-name "swarm"; }
You have to adapt various values: you can choose your own host name, and
you need the MAC address of your BCM91250A evaluation board. You can
obtain this value by issuing the show devices
command in CFE.
Now, download and install the actual files needed for the installation.
Download the whole contents of the following directory to your TFTP
directory (/boot
in the example above): big-endian
or little-endian.
Edit sibyl.conf
and substitute 192.168.1.1 with the IP address or name of
your TFTP server.
Finally, restart the TFTP and DHCP server to activate all changes you have made:
/etc/init.d/inetd restart /etc/init.d/isc-dhcp-server restart
Installing Debian
Now it's time to start the installation of Debian. Connect the null modem
cable to the lower serial port of your BCM91250A and start a terminal
emulation program (minicom, cu or screen) with the settings 115200 8N1 (for
example, screen /dev/ttyS0 115200
). Start your BCM91250A and load the
installer with the marked commands in the
transcript below (you have to type the IP address or name of your TFTP
server instead of 192.168.1.1):
CFE> ifconfig eth0 -auto eth0: Link speed: 100BaseT FDX Device eth0: hwaddr 00-02-4C-FE-0D-09, ipaddr 192.168.1.3, mask 255.255.255.0 gateway 192.168.1.1, nameserver 131.111.8.42, domain cyrius.com *** command status = 0 CFE> boot 192.168.1.1:/boot/sibyl Loader:raw Filesys:tftp Dev:eth0 File:192.168.1.1:/boot/sibyl Options:(null) Loading: ....... 126648 bytes read Entry at 0x0000000020000000 Closing network. Starting program at 0x0000000020000000 SiByte Loader, version 2.4.2 Built on Jul 28 2004 Network device 'eth0' configured Getting configuration file tftp:192.168.1.1:/boot/sibyl.conf... Config file retrieved. Loading kernel (ELF32): 2387968@0x80100000 done Loading ramdisk at 0x803b0000...2252049 bytes loaded ...
The installation itself should be pretty standard and you can follow the installation
manual. The only thing you have to keep in mind is that you need a
specific partition setup for your BCM91250A. SiByl has several limitations
we have to work with. First, SiByl is bigger than the space dedicated for
the boot sector on a disk and by writing SiByl to your disk you effectively
overwrite your first partition if you don't take care! You can work around
this by starting the first partition not directly at the beginning of the
hard drive or by having a dummy partition at the beginning which SiByl can
overwrite without causing any harm. To make the latter easily possible in
Debian's installer, we have introduced a sibyl
partition type called
SiByl boot partition
(which will really create a partition of type FAT16
so SiByl won't try to look at it when loading its configuration file). You
have to create a partition of type sibyl
as your first primary
partition with a size of about 1 MB.
The second restriction of SiByl is that it can only find its configuration
file and kernels if they are directly located in the root of a filesystem
(i.e. not in a sub-directory). Therefore, you have to make /boot
a
separate partition before creating a partition for your root filesystem.
If you keep both of these requirements in mind when creating your partition
layout, you will be fine and the installation will proceed smoothly.
The best solution is not to worry about making the partitions yourself but use debian-installer's guided partitioning option. It knows about the BCM91250A evaluation board and will create a proper boot partition for you.
When the installation is done, it will reboot. You'll be dropped into CFE again and now you can start Debian from disk:
CFE> boot ide0.0:
Loader:raw Filesys:raw Dev:ide0.0 File: Options:(null)
Loading: ........... 126976 bytes read
Entry at 0x0000000020000000
Closing network.
Starting program at 0x0000000020000000
SiByte Loader, version 2.4.2
Built on Jul 28 2004
Getting configuration file ext2:ide0.0:*:sibyl.conf...
Config file retrieved.
Available configurations:
debian
Boot which configuration [debian]:
Loading kernel (ELF32):
2387968@0x80100000
...
You will then be able to finish the installation, create user accounts and install more packages. After that, you are done. From now on, you can boot into your Debian system easily by the command above which will load SiByl from disk and then load the kernel and start Debian.
With some versions of CFE, you can also specify an environment variable which allows your machine to boot from disk automatically. Simply type the following on the CFE command prompt once and your machine will automatically boot Debian if you have the right version of CFE:
CFE> setenv -p STARTUP "boot ide0.0:"