Crochet-BSD is a github project which supports building FreeBSD disk images for various platforms such a RaspberryPi, BeagleBoard and others. I had a Soekris 4501 laying around, so I decided to extend Crochet to build images for it.
So, firstly, I needed a kernel. Building the kernel config for Soekris is explained pretty well here. Essentially:
- Add support for AMD Geode
- Remove everything that isn't needed, for example SCSI support
- Add in various useful network goodies, such as pf and ALTQ.
The resulting kernel configuration is here.
The basic configuration for a new Crochet board is very well explained here. I simply copied that and made modifications as necessary. My Github fork of Crochet is here. The end result is a handful of changes which ended up merged into Crochet-BSD.
The boot log is here. If you want to try the image on your Soekris box, it's here.
It turns out that building the kernel for Soekris is quite easy. There are, however, some gotchas in building a working image:
- /boot/loader.conf needs to specify that the console device for loader is serial.
- /boot.config needs to pass "-h" to tell the boot loader to use the serial console
- /etc/ttys needs to be configured so that FreeBSD will use the Soekris RS-232 port as the system console.
October 28, 2013 - 12:53 am
[…] Building FreeBSD-9.2 for Soekris using Crochet-BSD Crochet-BSD is a github project which supports building FreeBSD disk images for various platforms such a RaspberryPi, BeagleBoard and others [blog.khubla.com] […]