Installing OpenWRT on a Firebox X550e

I recently came into possession of a Firebox X550e Core that was thrown out due to a bad power supply. Turns out OpenWRT (or almost any OS for that matter) is pretty easy to install on this thing. Read on for some photos and a how-to.

First issue: The dead power supply. Turns out it uses a standard 20-pin ATX power connector and a 4-pin CPU power connector, so almost any PC power supply can run it.

Second issue: Installing an OS.

Requirements:

Linux box with a serial port

Null-modem serial cable

CF card reader

A partition management program (such as Gparted)

A program for communicating over a serial port (such as Screen)

The process is fairly simple. Hell, the default firmware even uses GRUB and it has it’s own partition, so I didn’t even have to install a bootloader.

The CF card has 6 partitions by default. We only need a boot partition and a root partition. Open up Gparted or another partition editor and delete everything except the first partition, since it’s where the GRUB is installed. Then, make an EXT4 partition over the rest of the drive (I created it within the extended partition that was already on the card):

Then head over to the appropriate OpenWRT downloads directory and grab “openwrt-x86-generic-rootfs.tar.gz” and “openwrt-x86-generic-vmlinuz”. Extract the rootfs onto your data partition on the CF card, and place the kernel on the boot partition. Next, fire up an editor and edit the /grub/menu.lst on the boot partition. It should end up something like this:

Replace the “5” in “sda5” with whatever partition number your data partition has. However, keep it as “sda” since it will be the first storage device on the firebox. Now, go to the x86 packages directory and download the kmod-skge package, which provides support for the onboard ethernet. Stick this package somewhere on the data partition.

Now, connect a serial cable to the Firebox and your PC. Use “screen /dev/ttyS0 115200” to communicate over the port (press ^A k y to end the session, or ^A d to detach so you can later reattach by using “screen -r”). Unmount, sync, and eject the CF card. Slide it back into the Firebox’s CF slot and power it on. After a while, you should see GRUB come up over the serial console. Let the system continue to boot. It will hang a couple times for up to 30 seconds a couple times during boot (I suspect this is due to a slow card since the drive activity light is solid during these hangs) (this is solved by adding a kernel option to the bootloader, I have edited the post to reflect this) but eventually it will tell you to press enter to activate the console (pay attention, as you may miss it due to other messages appearing after it). Note that this is not the same as the message about pressing f to enter failsafe mode. The normal OpenWRT console should come up.

First, you should probably set a password using “passwd”. Then, use “opkg install <file>” to install the kmod-skge package you downloaded earlier. Once this is installed, ethernet should start working. However, it is likely not configured correctly. If you know what configuration you’d like to use, go ahead and configure it. The below /etc/config/network allows it to act as a simple node on a 192.168/16 network with a static IP:

You should also configure /etc/config/dhcp so that the “lan” section looks like this so that it doesn’t start trying to answer DHCP requests:

config dhcp 'lan'
option interface 'lan'
option ignore '1'

Lastly, you will most like want to “rm /etc/resolv.conf” and then “ln -s /tmp/resolv.conf.auto /etc/resolv.conf”. This causes the system to directly use the DNS servers provided by your network config (or by DHCP if you’re using it), rather than trying to do everything through it’s own DNS server. Issue a “/etc/init.d/networking restart” after you’ve done your network configuration. Try pinging things to verify your connectivity. If everything works, you can start configuring it over the network rather than over the serial cable, and start using it as a normal OpenWRT device.

The firebox has 2 DDR2 slots, but I can’t get it to see anything over 1GB of RAM. As for ports, it has a keyboard and mouse ports (one of them seems to be a PS/2 port, not sure what the other is). It has a port labeled “CN V A1” which I have no idea about. It has solder pads for a mini-PCI slot, a PATA port, 2 USB ports, and another serial port. There appears to be some kind of PATA connector on the motherboard although it doesn’t look like any of the normal IDE connectors. Its has a CF slot, a PCIe x4, and a PCIe x8. There’s also a JTAG connector, a clear CMOS jumper, and a couple blocks of DIP switches.

Hi,
I suspect that the “CN V A1” is for VGA (“connector video analog 1”), but it’d need an oscilloscope to verify that and check the pinout.
If you take the front panel off, a USB port will reveal itself! (after a little case mod it could be used for a LTE modem, additional storage, printer etc.).
X550e was the lowest model on these series, the higher-end X750e and X1250e had more parts installed, but the motherboard seems the same.
See the thing on http://www.lnx.ro/2015/01/09/pfsense-on-a-watchguard-firebox/

The PCI-e x8 was used for an additional 4x1000BASE-T NIC in X750e and X1250e. PCIEx4 was meant for some kind of an expansion card (not standard PCIe) inserted into the upper slot on the back panel.

The small IDE connector accepted 2.5″ HDDs with an adapter (you can sometimes see that on old laptops) slid into the lower slot on X1250e and maybe even X750e.
I wonder if both IDE sockets are connected in parallel, so you could use a hot-air station to solder a normal IDE in and drop an old HDD into the box.

I’ve just finished verifying this with a cut in half VGA cable and an adaptor from the front case cabling from an old computer case (2x USB (10 wires) + LED wiring (8 wires)) that had a perfect fit plastic end.