How to build a Smoothwall Gateway the hard way (Dual Core/Dual Gigabit/Mini-ITX)
Since I’ve just upgraded the NAS I’ve ended up with a spare Mini-ITX Atom board. Perfect timing to replace the old Smoothwall gateway and finally eradicate the last 32bit machine I’ve got running
I’ve been using Smoothwall since 2007 now, my first box was based on a P3 1Ghz but quickly replaced by a VIA 800 Mini-ITX board, and I can’t recommend it enough. Apart from the fact that I don’t really trust the security of a consumer grade DSL router browsing also feels a lot faster even compared to letting the Linksys X3000 do the routing. Not surprising if one considers the jump in processing power between the pathetic little SoC in the X3000 and a fully blown Atom 330 board
2. Let’s put it together:
I think the only part that I could mount without modifications was the main board, everything else involved modifications. In other words, lot’s of fun
- Intel Desktop Board D945GCLF2, 1.6GHz Atom 330 (533Mhz, 64bit, Dual Core), 8W TDP, 945GC + ICH7, GMA950, RTL111C Gigabit NIC
- Kingston 2GB DDR2 667MHZ-PC5300 240PIN (KVR667D2N5/2G)
- USRobotics PCI Gigabit NIC (Model: USR7902A, Chipset: RTL8169S-32)
- picoPSU 120W
- 4pin P4 power connector
- Seagate Momentus 80GB 5400 RPM 2.5″ SATA HDD
- Mini-ITX case of unknown origin (ancient… hell knows which Chinese factory spat that one out…)
- 12V case fan with adjustable speed (compuman, PL 80B 12HH, DC 12V 0.23A )
- CPU fan (AVC Model: C4010T12H DC 12V 0.1A)
- Smoothwall Express 3.0 SP2 64bit (+update9 through web interface)
- Green: LAN feed
- Reg: Linksys X3000 Annex A in Bridged only mode (ADSL2 line, www.zen.co.uk)
2.1 The Case Fan:
The old case once came with a non standard PSU which blow up years ago. Once removed I found ample space for a nice 12V case fan. I’ve used one that comes with a little nob to adjust the fan speed and I’ve turned it all the way down so it’s pretty much noise-less. The board won’t be working too hard so this will provide more than enough airflow for this setup
2.2 The CPU fan:
The original CPU fan on this board was a royal pain and I think that was documented well all over the web. It was noisy and hardly ever lasted through the warranty period. I think my original fan ran for about 10min until I ripped it off the CPU cooler and threw it into the bin so I could not be tempted to use this instrument of ear torture ever again. I’ve fitted a nice little fan, think it came from Maplin for a few £, which I can’t even hear through the case.
2.3 The HDD:
Back in the days when this case was made it wasn’t common practise to fit 2.5″ HDDs or portable type optical drives into a desktop case so the mounting frames are meant for a 3.5″ HDD and a desktop size optical drive. I’ve connected the Seagate laptop HDD I’m using to one of the metal side rails that would normally hold the 3’5″ hdd and squeezed a bit of soft rubber underneath which works very well.
2.3 The picoPSU:
This is a very nice little thing and has been running all my Mini-ITX Smoothwalls for years. It’s the older 120W 20pin model and get’s fed from a 90W charger, if the board ever swallows more than that it’s ready for the bin I guess
Only downside is that the picoPSU comes from an era where neither 24pin power sockets, 4pin P4 sockets or indeed SATA power adapters were being sold. The 20pin ATX power plug works just as well as a 24pin one on this board but I had to cheat for the 4pin P4 plug and SATA power connector. I’ve simply harvested a 4pin Molex -> 2xSATA adapter and cut off the black and yellow cable off the second SATA power plug (I only need one anyway). I then connected the two cables to a P4 4pin plug I’ve harvested from an old ATX power supply and this finally got the system to boot
The picoPSU should be powerful enough to fire up a laptop size optical drive for the initial install but I didn’t want to leave an optical drive inside the system as it would only be used once every few years when this machine get’s reinstalled/upgraded. So I used a desktop size optical drive and fed power to it from a separate desktop ATX PSU (ATX green+black still works, old tricks are always the best ones .
2.4 The power connector:
Since the picoPSU is fed from a laptop charger it obviously has a little socket that allows for charger to be plugged in. Again not something that the old case would have been prepared for so me and the case took a trip out to the garage to meet Mr bench drill and his friend the size 10 HSS drill. I fitted the socket to the rear left hand side of the case.
2.5 The network card:
The old VIA 800Mhz board was quite happy with a PCI riser and a PCI NIC fitted to that but the moody D945GCLF2 obviously didn’t want any of that. I remember trying to fit and additional PCI->2xSATA controller to this in my old NAS case through a riser and it was intermittent at best. Same here, the NIC initially worked but the system froze up every few minutes. Tried about a dozen cards and three PCI risers including a very nice one with buffer caps, no change. Once I got angry enough to throw the ****ing board out the window I unscrewed it and decided to try it without the riser card, just for fun. Suddenly every card worked, even the RTL gigabit ones that previously weren’t even detected by smoothwalls setup routine. Not like I care much how I get stuff to work these days so me and the case took another trip out to the garage to meet Mr angle grinder. The resulting hole next to the opening at the back for the board to stick out it’s ports is just a bit bigger than the second NIC port. I’ve bent the surplus metal inside and it now sits exactly behind the NIC ports metal casing.
Physical setup – done
3. Let’s install Smoothwall Express 3.0:
I though this would be pain free, oh boy was I wrong… Since part of my goal was to get rid of my last 32bit machine (the last Smoothwall ran off a 32bit Sony laptop as a temporary replacement for the old VIA 800MHz board which only worked with Smoothwall 2.0) I downloaded the latest Smoothwall 64bit version aka SP3 which includes all updates to update8. Since I’m careful and knew I would loose the interweb once I unplugged the old machine I also got the 32bit version and a random collection of Linux live CDs for troubleshooting. Discs burned I pulled the plugs and started to install…
The initial SP3 install worked well and I was pleasantly surprised by the new installer which formats ones drive in minutes rather than hours. Unfortunately all I got after the mandatory reboot which follows the initial setup routine was a “no operating system found” type error. Hmmm, tried the 32bit CD, tried two more laptop SATA HDDs, tried an IDE laptop HDD, tried a desktop SATA HDD, tried a WD 15000 RPM Raptor: no change – no boot – uncontrolled swearing.
So I setup the iPhone as a wifi hotspot and started to investigate. Didn’t take long to find out that the changes in update8 were major and included a move to grub as well as a new Kernel. So I got the previous Smoothwall Express 3.0 SP2 64bit setup iso, burned that and finally got a booting system! The missing updates then came through the web interface and including update8 installed ok.
Once I got the interweb back I had a closer look at what could be causing the SP3 incompatibility and quickly found the culprit to be the mainboard’s BIOS which has a bug which in reality means that booting from GUID partition tables is broken for these boards. How that sort of thing get’s through Intel’s testing regime is beyond me…
More on the GPT debacle can be found in my previous rant post on the topic
4. Final thoughts:
All in all I’m very happy with the new Smoothwall box. I can’t hear it, it doesn’t swallow a lot of power and it’s fast hence should last for a few more years. Now all I need is a bit more time to upgrade to fibre broadband and remove the need for an ADSL modem (<- what I actually want is 20meg+ downstream but power savings are soooo much better for justifying investments and patience until the price of a 32GB SSD drops below £30 so I can swap out the old Seagate 2.5″ HDD.