I got my BeagleBoard B.4 a week ago and today finished getting Koen's
awesome Ångström demo working. I thought it might be useful to list
some of the bits of lore I picked up from various postings in this
group and elsewhere to help others.
First, my primary development platform is Windows 2000 rather than
Linux, and for various reasons I'd like to keep it that way. I think
Cygwin provides the Linux tools I need for development. Windows
presented some interesting challenges.
1. The Beagle Hardware Reference B.4 is excellent. It's probably the
best hardware description I've ever seen and contains a wealth of
2. You need a good +5V supply. Beware of cheap unregulated bricks in
your collection of surplus parts as they could fry your board. The
voltage regulators on the BeagleBoard are rated for maximum +5.5V
inputs and could burn out with a bad supply.
3. Ångström needs to use the USB OTG port in host mode with an
external USB hub for keyboard, mouse, and any other USB peripherals.
This requires the BeagleBoard to be powered from the +5V power jack.
You'll probably also need external power for the USB hub as well,
because according to the Hardware Reference the BeagleBoard OTG port
only sources 100 mA. I found this out the hard way. Ångström worked
great with just a keyboard, or with just a hub and a mouse, but
plugging in all three caused Ångström to generate a lot of strange
error messages as it continuously unlinked and relinked the keyboard.
Externally powering the hub fixed this nicely.
4. The Linux kernel needs to know you want to use the OTG port in host
mode. I believe OTG ports are supposed to figure this out for
themselves, but for now the Linux kernel needs some help.
Specifically, Pin 4 (ID) of the OTG connector needs to be shorted to
Pin 5 (GND), either in the cable (preferred) or on the board (if you
never want to use the port in device mode). For the present, I short
the two pins together with a probe while Linux boots. Once the boot
is complete, I can remove the probe. [Thanks, Nathanan! This would
have been very hard to find on my own.]
5. Preparing the two-partition SD card was interesting. Since my
development system is Windows 2000, there was no way to produce an
ext3 partition for Linux and transfer the files over. I first tried
to see if I could untar the file system as FAT32 and change the
bootargs, but either I don't have the bootargs right or it's simply
impossible. What I ended up doing was getting a couple of free Ubuntu
CD ROMs at Linux World which allow me to boot Ubuntu or Kubuntu
directly from the CD ROM without changing Windows. It's slow, but it
was a safe way to run Linux. [Thank you, Bill, for suggesting this.]
I had problems with Ubuntu 8.04.1 LTS Desktop Edition. While I could
run fdisk without any problems (they called the SD card /dev/sdb on my
PC), they didn't seem to have a driver for the second partition so I
couldn't untar the root file system.
Kubuntu 8.04 was successful. I was able to copy MLO, uBoot, and
uImage into Partition 1 (/dev/sdb1) and untar the root file system
into partition 2 (/dev/sdb2).
6. Almost there! Alas, the BeagleBoard could not find MLO in
Partition 1, even though it was quite nicely there at the beginning
when I listed the files. I even tried deleting all three files (MLO,
uBoot, and uImage) and recopying them. BeagleBoard still could not
Here's what finally worked: I reformatted Partition 1 under Windows
and then copied MLO, uBoot, and uImage. I believe the problem was
that MLO must be in the first sector of the partition. If you don't
reformat, the FAT file system may put the file anywhere. If I cared,
I'd investigate further how FAT works but for now it's no big deal to
reformat before copying. Just make sure you reformat the SD card and
not your hard drive.
Happy beagling, everyone.