Shuttle SB51G mini-ITX PC system built for FreeBSD

A machine building review by Bobulous.

Understand

The Shuttle XPC series is a range of PCs that use the mini-ITX form factor, i.e. use very compact motherboards, in a relatively small case.

photo: The Shuttle SB51G sat on Bob's desk.

The Shuttle XPC SB51G barebones system uses an Intel 845GE motherboard, and supports Intel Celeron and Pentium 4 processors, DDR266 or DDR333 RAM, has room for one optical drive, one floppy drive, and a hard drive, and offers USB 2.0 ports, IEEE 1394 ports (for camcorders, iPods, etc.), SPDIF input and output ports, onboard graphics, and onboard six-channel sound. The term barebones means that you only get the case, which has built-in power supply, and the motherboard. You have to choose and purchase other components separately. Also of interest to right-brain people might be the fact that you can actually buy different case shells and face covers for the Shuttle XPC series. That's right, you can change the bloody colour of the thing. I have actually seen someone reject a PC because they didn't like the colour of the case, so Shuttle are perhaps shrewd in offering this option. No sense of the importance of function, some people. Don't they realise that a human can survive even after losing the entire right-side of the brain. (Tut tut, etc.)

I bought an Intel Celeron 2.0 GHz processor, 256Mb of Crucial PC2100 (DDR266) RAM, and a Seagate Barracuda 7200Rpm 80Gb ATA-100 hard drive to go in the barebones system. The optical drive I chose was the Samsung SC-152. I bought a rounded ATA-133 data cable, because I thought it would save space in the small volume of the Shuttle XPC compared to the standard ribbon format which is very wide and could block the airflow through the case. I decided not to buy a floppy drive for the system. It is my opinion that floppy drives should have been successfully obsoleted and scrapped many years ago.

The reason for building this system is to setup a FreeBSD server. FreeBSD is an open-source, UNIX operating system based on the Berkeley Software Distribution. It costs absoulutely nothing. Its shell-based (like MS-DOS, but powerful and not a total waste of your time), but it supports graphical window interfaces. It can run Linux software, if necessary, and is very serious about security and stability. To find out more, visit the FreeBSD website. Remember to select a local mirror version of the site, e.g. UK mirror number 1-6, or Austria, or wherever is closest. This avoids the problem of overloading any one version of the site.

Because I already have a monitor, keyboard and mouse for my main system (which I intend to keep running Windows XP on), I also bought a Belkin 2-port KVM Switch. This device allows two different computer boxes to use the same monitor, keyboard and mouse without changing cables all the time. A button on the switcher lets you select whether to be seeing/typing/moving for PC 1 or 2.

A server is no use without it being part of a network, so a network cable was needed to unite it with the network router. All my network cables are Belkin CAT-6 cables with snagless RJ-45 connectors, but I have never seen any reviews of network cables, so I cannot justify this choice other than to say I trust Belkin products at the moment, and for the small cost of a cable I thought I may as well get the highest category of cable on sale.

Purchase

All the items for the Shuttle PC (barebones system, processor, RAM, hard drive, CD-ROM drive, rounded data-cable) from the Overclockers UK online store.

At time of purchase, prices were:

The Belkin 2-port KVM Switch was bought from Dabs.com for £29.37, delivery costing another £4.11.

The Belkin CAT-6 network cable, five metre length, cost £4.70, delivery adding another £2.29, from Watford Electronics (now known as Savastore.com).

All-in, the new box cost £407.71 including VAT (which is Britain's sales tax at 17.5 percent).

The book I recommend to anyone interested in becoming a FreeBSD master is FreeBSD Unleashed, Second Edition. [This book is pretty old now, so it might be better to look for a newer tome.]

Build

photo: The back of the Shuttle SB51G.

I was not overly impressed with the package supplied with the Shuttle XPC. As is always the way, the full-colour box cheerfully shows off all the features built-into the system. Unfortunately the same cannot be said about the documentation. A printed manual is supplied, but it refers to the FB51 mainboard, with no mention of the special features of the SB51G. On the plus side, it does at least mention the features of the FB51 in English. The colour printed installation instructions for the SB51G were supplied in only one language — French. Now, having been required to sit through many years of French lessons, I can 'do' French well enough to read and make out the general sense of it. Well, so long as a French-English dictionary is at hand. But any other language and I'd have been screwed. And I'm not sure that most people would be pleased to only receive instructions in French. This is pretty unforgivable. Worse still, the Shuttle website seems to offer no installation instructions at all. Could you make sense of «Débranchez l'alimentation du ventilateur puis retirez le Heat-Pipe.» or one that I failed to make total sense of even with a colour picture and a dictionary: «Veillez à ce que la marque soit assez proche de la façade.»?

Total lack of expected documentation aside, the build process didn't take particularly long, but I have built a couple of machines before. Someone new to the task may find it daunting (or send it back because they don't feel confident trying to follow foreign-language steps) and take somewhat longer. I have learnt that if you're too careful, you may not always be applying enough force to get components in. But being careful usually won't hurt, so it's worth the extra time.

The ICE heat-pipe cooling system built-into the Shuttle case is a good idea, and is fairly simple to remove (to insert the CPU) and replace. The ICE heat-pipe system in the SB51G removes the need for a separate heatsink-and-fan. So you may want to buy an OEM processor, i.e. a processor by itself. The 'boxed retail' processor I bought comes with a heatsink-and-fan unit included, but it's not needed because the heat-pipe performs that role. The OEM version may be slightly cheaper.

The Shuttle XPC is deliberately a small system, so it's very cramped. I bought the Akasa rounded ATA cable because ribbon cables can block air-flow through a case, making the system hotter. However, Shuttle provide a tied ATA cable for the optical drive, and to save further space the frame contains metal cramps to keep the cable tightly into the frame and out of the way. A little too tightly — the cable really didn't want to squeeze behind the metal tab, but went in with some persuasion. The cable for the hard drive is still a ribbon cable because it tucks neatly into a plastic clip under the drive cage.

The memory chips went in with the usual amount of controlled force. The hard disk and CD-ROM drive fit into the drive cage easily enough, but then the drive cage would not fit easily back into the case. Quite a lot of force was needed to get the cage to line up with the screw-holes again, and this is not ideal. Heavy-handling unfinished steel is not soft on the skin.

Motherboard headers are already connected, such as case lights, power switch, USB ports, etc. This is handy, because one of the most irritating steps of building a system is trying to find all the header descriptions in the motherboard manual and match them up to the cables coming from the case. (I still have not been able to get the front USB cables to work on a CooleMaster case I built a year-or-so ago.)

photo: The Belkin 2-port switch, cables spreading out in all directions.

With the Shuttle working (eventually, see next section...), plugging everything into the Belkin 2-port KVM switch is very straightforward. Cables are colour-coded and the sockets are clearly labelled.

Boot

Ah, my least favourite bit. Everything plugged in, it's time to hit the power-on switch and see what happens.

This time, nothing happened. A huge amount of noise coming from the ICE fan, but nothing appeared on the monitor face.

Check everything over for a third or fourth time. Make sure cables are snugly inserted. Check that everything that should be inserted, is. Check VGA cable is tight. Emit torrent of red language. Try again. Try again. Still noise and little more. Exhausted, I went to bed.

Another waking day, another battle with technical callousness. Fairly sure I was left with an expensive chunk of dead electronics, I was not expecting much to happen after simply shifting some cables around within the case. I don't mean unplugging or switching any cables around, I just mean giving them a nudge. I also tried to install a spare AGP card I had lying around from an old machine. The card, an Elsa Gladiac 511-TV Out, would not go into the AGP slot. I don't mean there was anything wrong with the AGP slot, I mean the case was so cramped that I could not physically find any way of getting the card to slot in. It seems absolutely impossible to insert an AGP card into the Shuttle SB51G, but it surely must be possible [see the Update below]. Perhaps it is necessary to take the entire motherboard out of the case then insert the card, then put the whole thing back into the case, but I decided that would be a last resort. So I gave up on the spare AGP card. The only other thing I did was swap from using a power cable coming out of my APC uninterrupted power supply, to the supplied power cable and plug. And, as if by magic, pressing the power-on button caused the same old roar of fan noise from the Shuttle, but then the roar became a dim hum, and the BIOS appeared on the monitor. The machine had begun the boot process. Why nudging the internal cables, and swapping external power cable had any effect at all, I cannot imagine. My main machine is quite happy with the power supplied by the APC UPS. I was fairly sure that this appearance by the BIOS was a one-off fluke. But, no — the Shuttle has booted every time since. As the wise man sayeth: bloody machines.

The boot process did not get far, however. The BIOS could not see my CD-ROM drive. No tweaking in the BIOS allowed it to detect the optical drive, so it was back into the case, checking everything was snugly connected, making sure nothing was where it shouldn't be. But nothing. More furious language did not help the situation, so I took another break.

Eventually I decided to swap the ATA cable that Shuttle supplied for the optical drive, with the Akasa rounded ATA cable, to see if the problem was the data cable. As soon as I swapped the Akasa cable in, the BIOS could see the CD-ROM drive. So, either the cable that came with the XPC was a dud all along, or it was damaged by the tight metal cramps that are supposed to keep the cable neatly against the frame. Looking at the cable, the places that were forced behind the metal cramps do like slightly sliced. Whether this actually crippled the cable, I don't know, but the cable was definitely the reason the CD-ROM was not appearing. Shuttle designers should look at this issue. Slicing data cables while trying to tuck them away is something that should not be happening.

BIOS happy, I put my Windows XP Professional CD into the drive and installed WinXP Pro just to make sure all the hardware was appearing and behaving as required. The hard drive and CD-ROM were detected by Windows; the USB ports were found; there were no hardware problems in device manager; the network controller was operating fine; everything seemed fine. So it was time to see if FreeBSD would install. In short, it wouldn't. The CD booted into sysinstall, but FreeBSD could not see the CD-ROM drive. Because Windows was happy with the drive, I knew it was very probably no longer a hardware installation problem.

Some searching for solutions provided an unwelcome find. A forum message posted by someone who had the exact same CD-ROM drive, and could not get FreeBSD to see the drive. I had chosen the Samsung SC-152 drive for arbitrary reasons, and apparently it was the only CD-ROM drive (or as good as) that FreeBSD could not detect. The forum posting said that Linux was happy with the drive, and I know that Windows XP was happy with the drive, but FreeBSD was not.

So the drive had to come out of the new machine. Overclockers UK said I could ship the drive back to them if it was in the condition I received it in, but I would have to pay shipping, and as there is nothing wrong with the hardware of the drive, I would have to forfeit a 15% re-stocking fee. These terms were not satisfactory, especially given the small cost of the drive, so I kept it. It may always be a useful backup in any future projects.

Someone, who had bought a new machine recently, donated their old CD-RW drive to me, an LG GCE-8160B (16×10×40×). FreeBSD 5.0 sees this drive without problem. Finally I could run sysinstall from the CD-ROM drive and install FreeBSD quickly enough to see whether it would run correctly. Some problems at first with my drive geometry were solved by telling the BIOS to address the drive using LBA mode and reading the geometry (cylinders, heads, sectors) from there. Then FreeBSD did not like the custom FreeBSD partitions that I had set up. Even though FreeBSD 5.0 is supposed to be able to have a separate /boot partition, I could not get this to work. This is very probably my ignorance on the subject, not a bug with the installer. Assigning just a / partition solved the problem, and FreeBSD 5.0 booted successfully for the first time.

Finally, the new system was ready to run.

Run

For anyone used to Windows, UNIX systems such as FreeBSD (and to some extent GNU/Linux which, as the name declares, is Not UNIX) are wildly different. The command line is everything, at least at first. My interest in FreeBSD was created by an book review in Linux Format. The book was FreeBSD Unleashed (Second Edition) by Michael Urban and Brian Tiemann (ISBN: 0-672-32456-3), and Linux Format gave the book 10 out of 10. I decided that UNIX would be a good skillset to build, so I bought the book. The book is absolutely invaluable for anyone new to FreeBSD, and covers everything you need to know to attain a very large set of administrator skills.

There's no way I can imagine someone getting started in FreeBSD without a book like this to refer to. I don't doubt that the information is all on the Internet somewhere, but I do doubt it will be all located in one place and conveniently indexed and cross-referenced. For the twenty-five quid a book like this costs, it's got to be worth it for the time and effort saved. And I am very happy with FreeBSD Unleashed (Second Edition). Apart from a few typos and possibly not enough hand-holding with setting up and running the X11 window system, it is an excellent resource. Having read fourteen chapters, I already feel like an experienced user, and there are thirty-five chapters in total.

screenshot: WindowMaker, showing several applications in use.

Following the guidance of the book, I have now got as far as running the X window system with the WindowMaker window manager, and the Shuttle XPC has proved that it can run FreeBSD graphically. More reading has now allowed me to set up Samba so that my Windows XP machine can see my FreeBSD box as though it were part of a Windows workgroup. The FreeBSD machine now appears in my Network Places folder.

screenshot: The GNOME desktop, showing GNOME's graphical file browser.

The Belkin 2-port KVM switch has also proved its worth. Without the switcher, I'd have to buy a new monitor, keyboard and mouse, or swap the ones I've got between the Windows XP box and the FreeBSD box every time I wanted to use one or the other. With the KVM (keyboard, video, mouse, in case you were wondering) switch I just press the little grey button on the switch itself and the monitor, keyboard and mouse are then connected to the other system. Alternatively, I can press the scroll lock button twice and then the up-arrow key.

Very occasionally the switch will lose a keyboard, and hitting keys does nothing. This has, so far, always been solved by just pressing the grey button on the switch, using the keyboard on the other system, then changing back to the first system. However, if this did fail, and you could not get the keyboard to register on one of the systems, you could be in a lot of trouble, so I would avoid switching devices if it is very important that your system does not get stranded. As I said, though, this has not occurred for me yet.

The image quality through the switch is seemingly very good for Windows XP in 1280×1024 @ 85Hz, but in the FreeBSD window system in 1024×768 @ 85Hz, the picture looks as though it is suffering from convergence problems. The edges of black text on white backgrounds look somewhat blurry. [See Update section, below.] This might be solved by using different resolutions, but if the problem remains it may be enough to put fussy people off of using a switch. Fussy people such as photographers who need pixel-perfect displays for retouching their images, and people who watch DVDs on their PC. I am in this category normally, but right now, in system administrator mode, the convenience of being able to run both systems at once, on one set of input/output devices, is worth the cost. The problem with image degradation is one that ought to be solved by using digital video outputs, as TFT monitors and expensive new CRT monitors use, but I only have analogue output, and this version of Belkin's switch is only compatible with analogue video output. But I believe Belkin do sell a KVM switch for digital monitor users.

screenshot: WindowMaker, with the Mozilla Suite browser running.

The small user manual supplied with the KVM switch (more impressive than all the documentation that Shuttle included) claims that the KVM switch will function with the Microsoft Intellimouse, but only supports two mouse buttons. This is strange, because the middle scroll-wheel on my mouse still works fine in Windows XP and in the X11 window system. Which is great, but very confusing.

The Seagate hard drive is very quiet in operation. In fact, the whole noise output of the Shuttle is pretty inoffensive. Not quite quiet enough to leave running in a room in which you want to sleep, but perhaps keeping the Shuttle in a ventilated cupboard (if such a thing is feasible) would dull the sound to acceptable levels of serenity. It's certainly much quieter than my CoolerMaster box, which has so many fans to cool the Pentium 4 2.4 and Radeon 9700 Pro that it sounds like a vacuum cleaner. So, my theory that smaller would be quieter seems to have been a reasonable one. A good server is one that remains on at all times, serving files and remaining connected to the network. I haven't been able to test the Shuttle in this role yet for the reason of noise — I do like to sleep occasionally. If I find a way to contain the noise, and to measure the temperature of the system in FreeBSD, I will try leaving the machine running and add an update to this page.

Evaluate

The Shuttle caused a lot of swearing and cursing at first. The problem with the optical drive data cable was one that I feel shouldn't have occurred, and trying to force the drive cage back into place was another struggle that should have been found and refined by the designers. I was also very unhappy with the documentation supplied being non-specific, and in the wrong language. As to why the system would not find the BIOS the first day I tried to run it, I may never know what was wrong.

screenshot: The KDE desktop, running the KWord word processor.

Being unable to insert an AGP was fairly irritating, but I'm sure I've read a review of the SB51G that mentioned inserting an AGP card. This may require taking out the entire motherboard, but that seems like a lot of hassle just because the case hasn't got accommodation for card-swapping.

The Samsung SC-152 CD-ROM was just bad luck. I did check the FreeBSD hardware lists before ordering the drive, but the list claims that any ATAPI-compatible CD-ROM drive should work. Why Samsung's drive is invisible to FreeBSD despite being ATAPI is another mystery, but the fact other people have reported the same problem means that the problem is probably a general one rather than a fault on my drive. The LG GCE-8160B works fine as a replacement.

The Shuttle SB51G barebones experience may have been a fair bit of work to begin with, but it now seems to be operating as a FreeBSD 5.0 system without problem. The small, custom-designed case and ICE cooler make the whole thing small and quiet. It seems to be a very promising FreeBSD platform.

Tips

I could not get the X-window system to work properly on the SB51G using the version of XFree86 that comes as standard with the FreeBSD 5.0 installation. Support for the Intel onboard graphics is offered in version 4.3.0 of XFree86. Once you have worked out how to get your system to XFree86-4.3.0, your XF86Config file needs to define the onboard graphics device driver as "i810". This is noted in the Intel section of supported hardware on the XFree86.org site. Once you have done this, the Shuttle's onboard graphics chip can run the X window system at 1280×1024 in 24-bit colour. Be very careful when specifying horizontal and vertical refresh rates for your monitor, though, or damage to your monitor may occur.

As for sound, FreeBSD 5 is able to get sound out of the Shuttle. Type `kldload snd_pcm` to load in a kernel module dynamically; or add the line "device pcm" to your kernel configuration file and then recompile and install the kernel (but make sure you know what you're doing if you edit the kernel file). However, the sound quality I've heard so far is awful. Every time the hard drive accesses, severe noise affects the audio (from the headphone socket, at least), and another person has complained of a similar experience with a Shuttle. Whether the same happens under a different operating system, I don't know, but I suspect it's a problem with the way the Shuttle is designed.

About the Belkin switcher: if you are using Windows as one of your operating systems, make sure the switch gives the Windows system control of the keyboard, mouse and monitor during the time that system is booting. Otherwise Windows will stupidly check once to see whether a mouse, keyboard or monitor are connected, decide that none are, and it will continue booting to the login screen thinking that you have components missing. If it doesn't detect the mouse, you won't be able to use the mouse, and you'll have to use the keyboard to manoeuvre to the shutdown option and start again; if Windows doesn't detect the keyboard, you'll just have to use the hard reset button on your machine to shutdown and start again; and if Windows doesn't detect the monitor, it'll just assume a generic monitor and set the refresh rate to 60Hz, which might bug your eyes. So, annoyingly, it's best to give full control to the Windows machine during boot.

Update

Testing the system directly, without using the Belkin switcher, still presents an XFree86 display that is pretty blurry. Black text on a white background looks especially smeared. Now that I know it's not the switch affecting the graphics, and I'm confident that I have configured my monitor and the XF86Config correctly, I suspect it is the on-board Intel graphics chip that may be letting the side down. While a convenient and cheap component, the Intel graphics are probably not designed to run a non-standard graphic server at 1280×1024. Lowering the resolution to 1024×768 does not alleviate the poor display, and X will not run at 800×600 on my setup. So I'm at a loss as to how to improve the situation, seeing as I'm incapable of cramming an AGP card into the tight space of the Shuttle.

...Wait! I finally worked it out. I now have my spare GeForce2 MX 400 in the AGP slot of the Shuttle. To get a card into the AGP slot, or the PCI slot, you have to open outward a little metal flap above the peripheral slots. This is only possible if both of the bracket screws are removed first. Once the metal flap is open, the graphics card's metal bracket will have room to manoeuvre into the AGP slot completely. So I look like an idjit now. In my defence, I've looked all through the FB51 manual, and the French installation instructions provided, and neither say a single thing about this strange mechanism. And it's not a thing I've ever seen before on PC hardware. So I'm surprised so many other people have written reviews about Shuttle machines without mentioning this little trick. I emailed some of the people whose reviews mention inserting an AGP card, but none replied in time.

Forgetting the trouble with getting it in, the AGP slot is now carrying a 'serious' graphics card. And I'm pleased to say that the display in XFree86 is now clean and sharp. Not a smeary blur in sight. The ELSA GLADIAC 511 TV-OUT nVIDIA GeForce2 MX 400 that I have installed works in XFree86 seemingly without problem (please note that to use the MX 400 with FreeBSD also requires the 4.3.0 version of XFree86 described above). The XF86Config file needs to have a new graphics device added to inform it that I'm not using the on-board graphics anymore. The Driver value for this card is "nv". Check the XFree86.org website for information on which cards are supported.

Redirect

If you want to use a non-standard keyboard layout in FreeBSD, such as the superior (in my humble opinion) Dvorak keyboard, then you might find my page on using the Dvorak keyboard (or other non-standard keymaps) in FreeBSD quite useful.