Brett's mythbox. This info has been sitting on my hard drive for nearly a year. This basically chronicles building my MythTV Box from Jan-Feb 2005.
Intel 3.4GHz Pentium 4 $250.00 friend Intel Motherboard (incl w/ chip) DB915PBL $0.00 friend eVGA NVidia G-Force 5350 PCI-X DIT Computers Wintec 256 DDR2 RAM $46.95 NewEgg Maxtor 120GB SATA Hard Drive Best Buy Coolermaster Cavalier 4 HTPC Case CAVT04UKA $94.00 CompSource TrendNet PCI Wireless Card $29.98 NewEgg NEC 16X DVD $0.00 pr3pwn3d Hauppauge WINTV PVR-150 $86.36 DELL Hauppauge WINTV PVR-150 $98.99 Circuit City
Later added a 300Gb Seagate Serial ATA drive which is now my live tv buffer disk to prevent skipping.
Well... the parts flew together in no time. Be careful when installing the cpu fan, a lot of pressure is needed to make the clamps/pins lock down – and be sure that the clips spread out below the motherboard fully.
The motherboard connectors for the rear USB & Firewire ports got in the way of one PCI slot, but all in all the case worked out pretty well.
I decided to go with Gentoo as my Linux distro because it's most familiar to me, and they've got a lot of great wiki HOWTO's to help with common device & software configuration.
The O/S install went pretty well... although make sure you know what hardware you have before you choose all of your kernel options to save you from rebuilding the kernel too many times.
In previous installs I usually tended to compile in (*) support for every device I needed, but since building this box I now realize how important using external modules is for newer hardware. So, definitely add in support for removing modules... also there are a few options that you need to take care to watch. Preempt, 4k Stacks, etc. Read the developers lists for your video capture card and see what options need to be enabled/disabled for your card.
The kernel I chose was 2.6.10-gentoo-r6, from the dev-sources. It was the latest available, and 2.6.10 was rumored to be one of the most stable.
After gentoo's bootstrapping, emerge system, and kernel configuration, I moved on to getting my hardware devices working.
One of the primary devices to get working was the Wireless Network card. My HTPC sits in my living room, with unfortunately no wired Internet access (without some attractive surface mount wiring). So I decided to get a wireless card to hook it up to my network. One thing I didn't know about wireless networking in Linux was actually how easy it was to set up. Some genius decided, 'why build custom drivers for Linux, when we can emulate Windows' network call subsystem and use their drivers?' Which evidently led to the project called ndiswrapper, which allows you to run the windows drivers on linux. It is somewhat important to know what chipset your card uses (use lspci), but basically if you have the Windows driver (.inf) file, then you're set.
lspci Network controller: Texas Instruments ACX 111 54Mbps Wireless Interface
I followed the gentoo wireless howto wiki to get mine working: http://gentoo-wiki.com/HOWTO_Wireless_Configuration_and_Startup
One problem I still have though is, on reboot sometimes my card won't pick up my router (the joys of living in an apartment complex). iwlist wlan0 scan can help you find out what channel to set your access point, to avoid conflicts with your neighbors' routers. I had to change mine 2 or three times until I found a channel that wasn't used. The wireless connection still falls out every once in a while, which made me write a little script to run as a cron job to reconnect to the correct wireless AP.
#!/bin/sh rm /var/run/dhcpcd-wlan0.pid iwconfig wlan0 essid BeagleNet ifconfig wlan0 up dhcpcd wlan0
With the wireless connection working, I then moved the box into my living room for the rest of the configuration.
I followed the Gentoo Hardware HOWTO for most of the software installation process. http://gentoo-wiki.com/HOWTO_Setup_MythTV
The soundcard configuration took some extra work to enable. The motherboard has integrated Intel High Definition Audio, with 7.1 channel output which was appealing to me. Unfortunately though, this device took some research to find out what it was.
lspci Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 03)
Emerge alsa-driver didn't work initially for me. The drivers/card type used are snd-azx. Check the ALSA soundcard matrix for your card to determine support: http://www.alsa-project.org/alsa-doc/
After searching around, I realized that by using the unstable alsa-driver, I could get support for the device.
Next challenge was tv-out on my video card. Finding a PCI-Express video card was bit of a challenge, especially since Best Buy doesn't keep up their inventory on video cards very well. I chose a moderately new video card, but nothing too fancy. e-GeForce PCX 5300 by eVGA 128MB I went with nVidia because I had heard they had a stronger commitment to Linux support than ATI, and judging by my current experience with my ATI Radeon 9800 in Linux – the change was welcome. The only place in town that had an nVidia PCI-Express video card was DIT – and while I could have saved some money buying online, I wanted to buy it locally so I had a place I could return it and get a replacement with a minimal amount of downtime if necessary.
lspci VGA compatible controller: nVidia Corporation NV37GL [Quadro FX 330/GeForce PCX 5300] (rev a2) (prog-if 00 [VGA])
emerge nvidia-kernel nvidia-glx was enough to get it working for me, in addition to adding the nvidia module to my /etc/modules.autoload.d/kernel-2.6
While the card worked instantly, the tv-out was a new experience for me, as I had never written any X11 configuration files. Here's the relevant sections in my xorg.conf:
Section "Monitor" Identifier "TV" HorizSync 30-50 VertRefresh 60.3 EndSection Section "Device" Option "ConnectedMonitor" "TV" Option "TVOverScan" "0.7" Identifier "Card0" Driver "nvidia" VendorName "nVidia Corporation" BoardName "Unknown Board" BusID "PCI:1:0:0" EndSection Section "Screen" Identifier "TVScreen" Device "Card0" Monitor "TV" DefaultDepth 24 DefaultColorDepth 24 Option "TVStandard" "NTSC-M" Option "TVOutFormat" "SVIDEO" SubSection "Display" Viewport 0 0 Depth 24 Modes "640x480" #Modes "800x600" EndSubSection EndSection
By default, my picture was way too small for my tv, leaving a lot of empty black space around the picture. By using the overscan option for the Device in xorg.conf I was able to fill the entire screen.
The capture card became the most difficult portion of my build. I bought what was then (200501) a new capture card, the PVR 150. With this came a lot of new experience at kernel modules etc... I had a mythtv box that had Video but no audo for a week or two, then audio but no video. Finally Chris Kennedy and Hans hacked together a working version of the PVR150 Hauppauge drivers for Linux and my MythTV box got off the ground.