I build a Home Theater PC

I never got a chance to finish the Media PC project page until today. I actually received the Enlight cases from Directron four days later (2007.06.18) and moved the parts over to the new case. With fingers crossed, I plugged the unit into my stereo and fired it up. I was happy to find that all of my interference issues are now gone. The Knoppmyth distribution works great and the VIA C3 board has worked flawlessly. I can now close this project out.

After fighting A/C line noise generated by the media PC for the past five months, I finally had a revelation and decided to pull the VIA motherboard out of the case and hook it up to a generic ATX power supply. To my surprise and relief, the line noise was completely gone. So I started my search on the web for a replacement case for my VIA Epia board. After a couple of hours of searching various mini-ITX vendors without much luck, I decided to try one of my old standby sites, Directron. Sure enough, they had a nice assortment of ITX compatible cases. Since I had invested a good chunk of change on a slim DVD writer, I needed a case that would utilize it, be able to house a 3.5in SATA drive, and also have a shielded power supply.

Off of the bat I found that Directron was closing out of their stock of Enlight Slim/Low Profile Desktop Case. This case came with the a 180 watt power supply and 2 external USB ports. With a close out price of $14.99 a piece (was $62.99), I was a little skeptical, but after some research, I ended up purchasing two of the cases, one for the media PC and the other just to have a spare power supply on hand (or maybe a future firewall/router project). Heck at 14.99 ea, I still came out ahead of the next cheapest case. I had them shipped UPS ground, so hopefully I will see them early next week.

The Leviton Plug-In Noise Filter made very little difference in the A/C line noise that I seen on the TVs tuned to channel 3. I have tried isolating the noise for the past couple of days in my spare time with no luck. This is an open issue and I am still working on a solution. A couple of other issues that I ran into during my day to day use:

* Since I am using the VESA Xorg driver in my config, I needed to change mplayers settings from "-vo xv" to "-vo x11" in order to play videos stored on the media player.

* The music module seems to have issues with ID3v1 tags, so I needed to add v2 tags to all of my MP3s. Since my MP3s are stored on my FreeBSD file server, I installed the id3v2 port and made a little script that uses the id3convert utility included in the package. I basically started the script and went out to run some errands. By the time I got back, the process was done. Don't forget to scan for new music to rebuild your database.

* The weather module is configured for a dial-up type connection by default, resulting in fewer updates. Changing the priority to a lower number fixed the problem with the weather updates.

Happy New Year! I hooked up the media PC Christmas day and immediately ran into some potential show stoppers. The primary problem was a very noticeable ground hum when the PC was playing. I juggled outlets and could not seem to find a clean path. I searched the internet to find a solution and after a couple of days I found that Radio Shack carries a home/automotive ground-loop isolator part #270-054. None of the local stores carried the part, but I was able to get it online and shipped to me. A couple of days later, I received the part (I ordered two) and hooked it up. Nice bonus with the Radio Shack isolator is that it comes with a 1/8" to stereo RCA adapter, perfect for the media PC. My ground hum problem was solved.

The next problem I ran into was interference with one of my RF modulators. A little background... I have two modulators, a simple single device and a three device modulator. The stereo's video out goes to the channel 3 modulator and then the satellite, DVD, and Laserdisc are hooked up to both the stereo and three device modulator (channels 65,67, and 69). When the PC is powered up, I see a lot of A/C line noise on the TV's that are tuned to channel 3, but the other channels are clean. After searching the web and talking to a couple of friends, I tracked down the Leviton Plug-In Noise Filter (smarthome.com part#4845). The part is currently on order, so when I get it, I'll report if/how well it works.

Other than those two problems, everything else seems to work pretty good. One other minor problem is getting the weather module to show current reports. The currently displayed report is for the last three days.

Made the mistake of taking the media PC home with me this past weekend. It was quickly discovered by my wife who grabbed it in my absence and wrapped it up to sit under the Christmas tree. Needless to say, I wont be making any updates until after Christmas. All in all, I can't complain too much, as this was my Christmas present...

Attempted to load MythDora a couple of times (autoinstall, manual install, etc), but after the files are installed and the system reboots, the Grub boot loader just hangs. Frustrated, I decide to go back the KnoppMyth. Once again install goes smoothly, system reboots, and I once again have my Myth powered media center. Everything works, that is, except the TV output. Knoppmyth's /etc/X11 directory has several sample configurations, including XFree86-4.epia-tvout.sample. I copy the config to XFree86-4 and reboot, but no change.

XFree86 has the driver "via" configured and the driver has several TV output options. After several tweaks, I still have no luck. Even more frustrating, the XFree86.0.log indicates the TV out is working, but it appears that it cannot find an appropriate resolution. A couple of google searches later, I find out that for TV output, the "vesa" driver is the easiest driver to use. Sure enough, I set the driver from "via" to "vesa" and reboot. TV output is now working properly.

The only thing to do is to add the NFS mount for my music library to the media PC's /etc/fstab. To get KnoppMyth to mount my MP3 collection from my FreeBSD file server, I add the following line to /etc/fstab: /myth/music nfs ro 0 0

After tweaking KnoppMyth to my liking the past couple of days, I decided to test the finished unit on the TV here in the shop. To my dismay, I got the dreaded "Unusable signal". I started looking into the XF86Config file (yes, KnoppMyth uses XFree86), trying various settings, but no go. Interesting enough, Slashdot had a post about the release of MythDora-3.1. This is basically a Myth linux distribution built on Fedora Core. Nice thing about this release is that it comes with later software versions than the KnoppMyth.

Still researching the USB wireless keyboard problem and still no response from the FreeBSD USB mailing list. Earlier this week, I decided to scrub the drive and reload it with KnoppMyth. Like the name implies, this is a ready to roll MythTV install based on the Knoppix Linux distribution. I initially tried the "Auto Install" option, but this gave me a disk write error. I had better success with the manual install, which after about 40 minutes booted up to the initial MythTV setup. The nice thing is that I had done the entire install from initial boot to config with the wireless keyboard/joystick combo. I hope at some point, I am able to reload this box with FreeBSD.

Posted my USB wireless keyboard woes to the freebsd-usb mailing list. While waiting for a response, I decided to try to rig up a new USB cable for the front of the case. This past weekend I stopped at Microcenter to try to find a USB header->header cable, but no luck. I ended up getting an internal USB 2.0 Quad plate and some heat shrink from Microcenter. The quad USB plate provides four USB ports that go to two motherboard headers. I cut the cables from the external USB connectors and splice them together making a single USB cable. I then use a voltmeter to ohm out the ends. Everything checks out, so I plug the cable in and test the front USB connectors with an external USB drive. The drive is detected and I am now able to mount the drive. Here are some pictures to give you an idea of whats happening. The quad port pictured is not the actual one I cut up, but is identical to the one that I used. Then finally, the finished cable.

Got back to work this morning and fired up mythsetup in X. Everything seems to work without a hitch. I shut down the system and proceeded to hook it up to a TV. I power the box up and just get a screen message saying unusable/no signal. Hmmm, moved the mediapc back to a standard monitor and found that in the BIOS, the display was set to CRT. I change the setting to CRT and TV and set the TV mode to composite and rebooted. Moved the media pc back to the TV again. This time, the system displays properly on the TV. I change root's .xinitrc so that it loads mythfrontend on startup and started X. Myth fires up in all of its TV glory.

After my experience with the MAME cabinet, I really thought that the hard part was going to be getting the TV-OUT to work, but alas, the hard part is getting the wireless keyboard/mouse combo to work. I remove the PS/2 mouse and keyboard, then plug in the USB receiver. FreeBSD starts up and I notice that sysmouse has started up (good sign). Mouse control in console is now working, but I quickly find out that the keyboard is not. Looking at dmesg, I see the following entry:

ukbd0: Itron Presenter, rev 2.00/1.00, addr 2, iclass 3/1
ukbd: set protocol failed
device_attach: ukbd0 attach returned 6

I searched the web for some ideas, but nothing. For grins, I stuck in a Knoppix Live CD and rebooted the system. The keyboard and mouse work just fine under Knoppix. A little investigating reveals that the keyboard/mouse combo under Knoppix is detected as a human interface device instead of a USB keyboard and mouse. I reboot back to FreeBSD and recompile the kernel without ukbd (USB keyboard) and ums (USB mouse) devices, leaving the uhid device in place. Still no luck. I try various tweaks to usbd.conf, play with the usbhidctl, and try multiple kernel configurations, but still no keyboard control. At this point, I am at a brick wall...

I kept the box at work, but was able to secure shell into it from home. I was looking for a nice frontend for xmms2 and came across a music plugin for MythTV called MythMusic. As of this time, I had no plans to put a video capture card (I am very content with my TIVO), but the idea of using a TV friendly front end for a MP3 player sounded interesting. In addition, if I ever wanted to put a video capture card in (the EPIA EN12000EG does have a single PCI slot), the font end would needed to be only slightly reconfigured.

Sadly, there is no native port for FreeBSD, but a quick google for "FreeBSD mythtv" showed me a Wiki link called MythTV on FreeBSD. On that site, are port files for MythTV, as well as a couple of the plugins (including MythMusic). I downloaded both MythTV and MythMusic gzipped tar files and extracted them to the ports directory. Change directory to "/usr/ports/multimedia/mythmusic" and then make all install. I ran into the following issues when compiling the port,

* The MythTV and music ports require specific major numbers for a couple of shared libraries (ie, port needs libFLAC.so.5, but I had libFLAC.so.7). There are a couple ways of handling this. The correct way is to modify the port to look at the correct major number, this way you won't run into problems in the future. Or you could do it the wrong way, which is creating an additional symlink ( ln -s libFLAC.so.7 libFLAC.so.5). I'll be honest and tell you that I opted for the wrong way (slap to the hand). If things work correctly, I will make an effort to reload the box and compile the port correctly.

* As with the MAME cabinet, I ran into an issue with SDL when the MythTV port couldnt find sdl11-config. A simple "ln -s /usr/local/bin/sdl-config /usr/local/bin/sdl11-config" fixed this problem.

* Could not compile AAC/MP4 support for MythMusic due to a missing mp4ff.h header file. I could not track down any source for the mp4ff.h file. Unselecting the AAC/MP4 in the make config menu bypasses this problem (I am only concerned with mp3 support at this time).

I started loading FreeBSD on the box. I am installing 6.2-RC1, which as of this time, is the latest stable build. After the load was completed, I cvsup'd to the latest code and ports and commenced to build world. I will continue the load xmms2 and nyello frontend over the weekend.

Received all of the parts from Logic Supply and NewEgg. For the most part, assembly went pretty smooth, although I did run into a couple of problems. First problem that I ran into was the front panel USB cable was not long enough to reach the header on the motherboard. This is mostly due to the large heat-sink over the processor and northbridge. This is not a huge problem, but it would be nice to be able to hook up a USB jumpdrive to the front of the box. At this point, not a show stopper. The other problem that I ran into, see picture below, is with the IDE connector for the Panasonic slimdrive DVD writer. This drive is basically built for laptops and has a special connector. The Morex 2699 case happens to come with an IDE to slimdrive adapter. In order to plug in the IDE cable and the floppy style molex connector to the adapter, I needed to bend the pins downward away from the IDE connector to make room for the IDE cable. Again, not a show stopper, but you may run into a similar problem. Things are pretty tight, but in the end, this unit is about the size of a component DVD player.

While waiting for my Logic Supply order to be sent, I went to NewEgg to get the needed 1gb Corsair RAM and a Western Digital 80gb SATA drive. I know that 80gb sounds small, but remember that all of the MP3s will be stored on another box.

In order to reduce heat and noise, not too mention a small form factory, I opted for a VIA EPIA board. Ever since I saw one of these boards a couple of years ago, I have wanted to build an EPIA system. After a bit of searching, I can across Logic Supply, which in addition to a complete stock of small form factor PC's and embedded systems, they have an excellent rating at ResellerRatings.com. I ended up going with the VIA EN12000EG board that comes with: VIA 1.2 GHz C7 Eden fanless CPU, 1 PCI slot, 2 SATA, 2 channel IDE, USB, firewire, sound, gigabyte ethernet, vga, s-video out, and rca out. Also from Logic Supply, I ended up getting a Morex 2699 mini-itx case (upgraded from 60w to 80w power supply), a Panasonic Slimline slot loading DVD writer, and just thing thing I had been looking for... a Scorpius P-20 2.4ghz wireless joystick keyboard. Below are pictures of the VIA EN12000EG board (ripped from logicsupply.com):

I started prototyping a simple MP3 jukebox with a spare PC that I had around. The PC is an Athlon 1400+, 1gb RAM, and a 20gb harddrive. The box was loaded FreeBSD 6.2-Beta3 and XMMS2. I chose XMMS2 because this one of the few media players for unix that is client/server based. I am not storing any of the MP3s on the computer directly, they will be shared from a different server via NFS. I installed XMMS2 from FreeBSD's ports collections and tried a couple of the console based frontends. One that I found pretty nice was called nyello. To control the jukebox, I use my laptop with a wireless link to the network and secure shell into the jukebox. A couple of issues that I will need to address:

* The combination of the Athlon 2100+ and 500 watt power supply generate a lot more heat and noise that I want in my stereo closet. Also the amount of electric consumption is a concern.
* Using secure shell and a laptop just is not practical for controlling the jukebox. I think some kind of LCD or on-screen display and controller will work. Have not decided on a remote control or possibly a wireless keyboard/mouse.
* Using a 1/8th phono jack to stereo RCA works pretty good, but adding the PC to my stereo rack has introduced ground hum. I will need to find a way to isolate the ground hum.

©2004-2019 Paul Boehmer