/ About

Upgrading FreeBSD home router

Background

Just over a week ago my venerable home Internet router, a Dell GX260 slim (Pentium 4 2Ghz, 512Mb RAM, 80Gb IDE drive) running FreeBSD 8.4, finally gave up the ghost. It would randomly lock up, and on reboot required a manual filesystem check. As it's running headless in a crawlspace this is not good, especially if it locked up when I wasn't home to fix it.

Given that I got this box used about 8 years ago I figure it's lived out it's useful life for me, and decided replace it with something smaller and more efficient.

Interim Solution

Unfortunately I didn't have anything smaller and more efficient, and I needed an immediate interim fix. I grabbed a 1U server left over from my hosting days (which means it's also at least 7 years old) and installed FreeBSD 10.0.

Copying over the config was extremely easy, especially considering it was an upgrade of two major versions of FreeBSD. The only gotcha in the upgrade was the change of IPv6 interface configuration lines in /etc/rc.conf between 8.x and later versions, but it's documented in the handbook.

I'd already switched to pkg and freebsd-update instead of compiling everything all the time (nice to have if you need it, but...), so was able to quickly update and upgrade.

Everything worked great, I did all this work while the family was asleep, but even so there was surprisingly little downtime on the Internet connection. The only problem was that the 1U server fans are REALLY LOUD, and the crawlspace is right under the front part of our house with no sound barrier in the floor. The noise was persistent and annoying (if you've ever worked in a data centre you know what I mean). So I started shopping for a proper solution.

Proper Solution - Shopping

I wanted a very small and quiet PC with two Ethernet ports and it had to be cheap. You'd think these days finding something like that would be simple, there'd be a lot to choose from, but surprisingly the two network ports requirement ruled out almost every small and quiet PC I found under $400.

However, eventually I found one on Newegg.ca, and ordered these bits:

If you're a bright and well-educated person, you'll realize the solid state drive (the last item) is not correct -- the M.2 indicates that it's using a new SATA interface standard designed for tiny devices like tablets, not a standard desktop SATA interface. Unfortunately I didn't realize this until after the drive had already shipped, from California. I did some reasearch, and while I can still get it to work with a normal SATA connection with an adapter that would take more time/money. And the 1U server is REALLY LOUD.

So I ordered another solid state drive from Canada Computers a couple of days ago, which is what I should've done in the first place for the RAM and drive.

Proper Solution - Build

The case and RAM arrived last week, and I made sure they worked but couldn't really do much so stuck them on a shelf. Today I finally got both solid state drives and put the thing together.

Only challenge: the SATA power cable in the case doesn't actually reach to the drive when it's mounted in the bracket provided in the case. This is a pure and simple design flaw, or maybe a manufacturing error. I thought maybe I had another cable, or an extender (it uses the old-style 4pin D-connector on the motherboard), but couldn't find anything in my box-o-cables.

Solution: duct tape (the proper metal stuff) the drive to the the case lid near the front, well within reach of the cable. Doesn't affect airflow any more than the mounting bracket did (which is now removed), and it's very secure. And even if it does happen to move a bit, it's a SSD so who cares.

Once that was sorted out everything was pretty simple. Booted FreeBSD 10 off a USB key, installed onto the drive, updated and installed needed packages, rebooted, and copied over configs from the interim router. A quick swap of machines and the house is now much quieter.

Stack of routers

Bryan Fullerton

Bryan Fullerton

Just a middle-aged dude doing his best to survive. Geeky Internet things from remote professionally.

Read More