Saturday, August 25, 2007

Yaifo Updates for CF (and SSH fix)

OpenBSDAs seen in the comments from a previous post, recent ssh changes caused Yaifo's sshd server to stop working. The fix was very simple: include an /etc/login.conf in the Yaifo image file.

I just bought a Soekris Net5501. I was hoping that Yaifo would provide a convenient method for installing OpenBSD on the CompactFlash card I'll be using in my new Soekris firewall. After a few tweaks, it does!

It seemed reasonable that I should be able to plug my CF card into a CF reader and connect it to my OpenBSD laptop and copy the yaifo.fs image to the CF using dd if=yaifo.fs of=/dev/rsd0c. So, that was exactly what I did. Then I popped the CF card into my Soekris and it wouldn't boot. I dug around and found a serial cable (actually, I already had one ready for this, but you might not have one) and saw that the boot process really doesn't get passed loading the kernel.

After some trial and error, I modified Yaifo to include an /etc/boot.conf file in the yaifo.fs (and yaifo.rd) image. The default boot.conf file only contains comments and does not change the way Yaifo works. You can modify this file to redirect boot messages to your serial console (set tty com0) and modify the speed of the connection (stty com0 19200 for my Soekris).

This, in my opinion, makes installing OpenBSD on a CF card (especially in a Soekris) very easy:

  1. Buy an OpenBSD CD to support the cause.

  2. Buy a device that uses CF for storage (like a Soekris Net5501).

  3. Buy a CompactFlash storage device.

  4. Pop the CF card into another OpenBSD system where you've built your yaifo.fs image with proper network settings and appropriate boot.conf settings. Copy the yaifo.fs image to your CF: dd if=yaifo.fs of=/dev/rsd0c

  5. Pop the CF card into your Soekris and power it up.

  6. When your Soekris responds to pings, SSH to it and set it up to fit your needs.

I plan to put up more detailed Soekris + Yaifo instructions either here or on The OpenBSD Journal.