Adventures in ultra low cost system building, and getting my feet wet with fedora

I tend to maintain two types of systems – high-mid range gaming PCs, like my lovely core i7, and low powered home servers. My old atom server is getting noisy, and I wanted to get a new toy. Ended up looking around and picking up a gigabyte brix – specifically a N2807

Unlike the systems based on a more mainstream processor, the celeron based brix (and possibly its NUC cousins) lack a msata port. It has a single, non standard port on the board that breaks out sata data and sata power for a single 2.5 inch hard drive. It also has a single slot for DDR3L ram (which I populated with a single 4gb stick), unlike the two slots the more capable core i3 based NUC class systems do. In short, this is a small box with the heart of a tablet, the IO options of a laptop, and a need to stay firmly teathered to a wall. Its passively cooled, so you *cannot* get any quieter. Its an awesome, simple HTPC.

I went with fedora on this system, since I’ve been toying with moving off ubuntu, and fedora has all the shiny toys. I’m using BTRFS for the system.

The system comes with a single band, single channel wifi card, which also does bluetooth 4.0. Not played with this much yet, though locking and unlocking it with a phone sounds fun. You also have a gig-e capable nic.

Output wise, I have the standard HDMI and VGA ports, 2 USB 2 and one USB 3 port and a single combo out. Sound quality is decent, since it uses one of those practically ubiquitious realtek audio codecs.

I also wanted a decent, cheap display. Rather than going for a regular display, I ended up buying a 10.1 inch display off DX. Its actually a rather odd unit, the display seems to be wrapped in electrical tape at the edges, the backlight has a translucent screen (which is annoyingly desirable, since it gives me bias lighting. Any logical way I can think of mounting it involves covering up the back). Its insanely sharp, and lovely when its the right resolution. Which it often isn’t(it defaults to 1024×768 on the computer). I ended up creating a script that fixed that.

Total cost so far, about 500 dollars – 90 dollars for the hard drive, 250 for the brix and ram, and another 90 for the screen. I could have gone cheaper (I had a 40gb hard drive I spent a tenner on), or gotten a cheaper hard drive, and in a HTPC setting, you could probably forget about the screen.

Now here comes the fun part. Plug this little thing into a TV, install steamos or steam on linux, and its basically an awesome little streaming console. While steam streaming does seem to open up (and gets wierd when you move) a game on the ‘server’, so it dosen’t *quite* let you use the server for other things while you’re at it. I
t might make a ton of sense if you do a lan party house style setup (or even run a central server with more than one video card running KVM. Oh, the ideas.

The NUC class systems also seem to be decent for virtualisation. While ESXi is a finicky, grouchy thing, – There’s reports the core i3 and better versions do ESXi fine, but the realtek NIC on this isn’t supported, and a driver modded boot disk fails horribly on my celeron. KVM runs gloriously however, and was trivial to install on fedora (install virtmanager and its dependancies, and… well, that’s about it.)

One thing I had issues with with fedora was font rendering – I installed freetype-freeworld from rpmfusion, turned sub-aliasing and sub pixel rendering in the ‘fonts’
control panel, and set sub pixel rendering to RGB and hinting style to medium. I also installed corefonts and set most of the fonts in firefox to the same defaults as firefox on windows. This was also helpful since steam apparently needs some of those fonts.

One final annoyance is that selinux basically makes it a pain in the rear to install samba. You need the semanage command. This is installed through policycoreutils-python. Do not bother with the gui – edit your samba.conf file, and make sure your selinux permissions are set correctly. You need to run

 semanage fcontext -a -t samba_share_t '/<shared path>(/.*)?'

then

 restorecon -R /<shared path>

.

Still, this is a fun, low cost system with reasonable performance and great usability. Its no raspi, but try running windows, or steam on one. 😉