- 1 My Benchmark System Attempt
- 1.1 Hybrid Box
- 1.1.1 Criteria
- 1.1.2 Bill of Materials
- 1.1.3 Assembly
- 1.1.4 Hardware Testing
- 1.1.5 BIOS Tweaks
- 1.1.6 LinuxMCE Install
- 1.1.7 Optional Installation Steps
- 1.2 Networking
- 1.3 Orbiters
- 1.4 TV
- 1.5 Glue
- 1.1 Hybrid Box
My Benchmark System Attempt
Note that I am in Canada and all prices are as paid before tax in CAD.
In May 2008, I began building a LinuxMCE test system. I wanted to see if I could replicate at least part of what I saw in the Video. The test system system will hopefully become my main working home theatre system.
AV gear-wise, I started with a completely clean slate here as I had nothing: No TV, no speakers, no receiver, no remotes -- a blank canvas. Nice. This is gonna be fun.
My criteria for the design of this system is as follows:
- Wherever possible use known-compatible and mainstream components.
- Wherever possible follow recommendations from forums, reviews, Video and wiki.
- Use components in the price/performance sweet spot.
- Aesthetics should be living-room friendly.
- Keep it simple, but still test the broad capabilities of LinuxMCE.
I intend to document the design and results from this system as completely as I can. That way, it can hopefully serve as a benchmark for others to replicate or at least learn from.
I am starting with a core/hybrid topology to keep my costs down. If all goes well, this hybrid box will become my core server that lives in a closet, and I will go to a smaller dedicated media director in my living room.
In addition to the criteria I already mentioned, the design of my hybrid was also guided by the following:
- Only components available through ncix.com, preferably in stock.
- Tend toward components that lend themselves to eventual use as a dedicated core serving 2 or 3 media directors.
I opted to put two HDD in the system to allow for easy software upgrading and re-installation without losing media. I have read that installing LinuxMCE on a partitioned HDD is not well supported. Having a separate system HDD should allow me to install LinuxMCE from bare metal without losing media or spending time tranferring it.
Bill of Materials
|Motherboard||ASUS M2NPV-VM||$94.01||used in Video, now out of production|
|breakout||ASUS SPDIF-OUT/OPT||$9.02||SPDIF breakout board|
|breakout||ASUS 9PIN Serial Port Header||$6.60||two of these to breakout COM ports|
|CPU||AMD Athlon 64 X2 4600+ EE Dual Core Processor AM2 Windsor 2.4GHZ 512KBX2 65W 90NM||$80.92||Video used 4400+, 4600+ is cheaper and maybe faster|
|heatsink||Scythe Mini Ninja Heatpipe Fanless Heatsink AM2||$38.98||should be good enough to cool w/o CPU fan|
|RAM||Kingston PC2-5300 512MB DDR2-667 CL5 240PIN DIMM||$16.70||2 sticks|
|second ethernet adapter||ENCORE ENL832-TX-RENT||$8.68||based on Realtek_8139|
|TV Tuner||Hauppauge WinTV-PVR-150 MCE||$79.78||comes with a remote that looks like a Windows MCE Remote|
|HDD 1||Hitachi Deskstar P7K500 500GB SATA2 7200RPM 16MB 3.5IN||$87.20||media drive|
|HDD 2||Seagate Barracuda 7200.10 80GB SATA2 2MB 11MS 7200RPM Hard Drive||$42.64||system drive|
|SATA Cable||nGear Serial ATA SATA Right Angle Cable 18IN 7PIN||$2.69||2 come with mobo, straight cable would be fine too, right angle was cheapest|
|optical drive||Pioneer DVR-212D Black 18X6X18 DVD+RW 18X8X18 DL 10X SATA 2MB||$32.19|
|CD Audio Cable||$3.00||to connect optical drive audio out to mobo onboard audio|
|case||Silverstone Lascala LC17B||$129.99||HTPC form factor, big enough to accomodate conversion to core|
|power supply||OCZ StealthXStream OCZ500SXS 500W||$61.99||cheap, works, fairly quiet|
With all of the parts in hand except for the SPDIF-OUT/OPT I tackled the build. Assembly took about 3 1/2 hours. It probably would have been quicker, but those hours were around midnight. There was enough room for all the ports on the backpanel -- I'm using 7 of 8 slots in the case, and both PCI slots on the motherboard (2nd ethernet, tv tuner). I was surprised at how good the optical drive looks in the case. The finished look is achieved by a piece of aluminum extrusion that is brushed and anodized to match the front panel that is double-face-taped to the drive tray. I was expecting a struggle to get the door to align with the case well enough to look good, but it looks pretty nice on the first try. Maybe I just got lucky. Regardless, I'm happy with the front panel.
There were only two things that I didn't like about this kit:
- The Scythe Mini Ninja Heatsink is so big that it obstructs access to much of the motherboard (put this guy in last). The real problem is that one of the clips that hold the heat sink in place is adjacent the side of the case and underneath the heatsink. This makes it a bit of a challenge to get the heat sink clipped in place. The clips themselves don't provide nearly as positive retention as the stock AMD heatsink. It does seem to be providing adequate cooling although I haven't stress tested this setup yet.
- The ATX12V 4-pin socket is on the corner of the motherboard furthest from the power supply. The power supply is barely long enough to reach, which eliminates the possibility of doing a nice routing job with that cable.
The Lascala case is very nice. I'm sure there are even nicer-looking cases out there, but I picked mine up for only $130 so I am very happy with it.
With the case open the case and power supply fans are definitely noticeable. On the other hand, at about 4 feet they were quieter than my refrigerator at 20 feet. I don't suspect this will be an issue, but the fans were louder than I was expecting from the various case and power supply reviews I had read.
The other thing I liked was that the Silverstone Lascala case and M2NPV-VN motherboard seemed to be made for one another. All of the frontpanel ports had a place to plug into on the motherboard, and there were just enough slots in the case to accomodate all of the breakout boards. The CPU socket located perfectly so that the two quiet 80mm case fans draw air directly over the heat sink.
I was happy to see room for 6 hard drives in the Lascala case.
Once the kit was assembled, I connected a mouse, keyboard, and an old Dell CRT via a VGA cable and pressed the power button. Nothing happened. I narrowed it down in a few minutes to the power button on the case. I swapped the power and reset cables and it fired up when I pressed the reset button. I'll investigate the DOA power button later.
The system hung during POST complaining of a failed CPU fan. I have no CPU fan, so it took a quick trip into the BIOS to disable that warning.
I ran the Memtest 86+ tool on the stresslinux boot disk for 7 hours with no errors. The "stress" option would not boot, so I haven't performed a processor stress test yet. I also ran the Hitachi Drive Fitness Test from its own boot disk. It also produced no errors. So far so good.
I made the following adjustments to the BIOS:
- set Power->HardWare Monitor->CPU Fan Speed Warning to disabled (otherwise the system will hang at boot complaining that the CPU fan isn't spinning)
- set Advanced->Chipset->frame buffer size 128MB RAM (otherwise the system will bog down when using UI2 with overlay)
At the start of setup, the setup was according to the system diagram with the following exceptions:
- I also had an old CRT monitor connected to the VGA connector. With this setup, some parts of the overall installation are shown on the TV while others were shown on the monitor.
- I temporarily used Input 5 on the TV instead of Input 6 shown in the diagram.
- I unplugged the null modem cable between the hybrid/core and the TV.
I downloaded a torrent of the Linux MCE 0710RC1 AMD64 DVD .iso and burned it to a DVD. I plugged a cable from the Realtek network card into my router and unplugged the power supply for about a minute to reset all the chips in the system -- the Realtek-based network card seems to get in a bad state sometimes. I also rebooted my router to make sure it was able to provide a good connection to the internet. Then I booted from install DVD and let the OS install. This took about 25 minutes. During that time it only prompted me to select the default password and the disk to install to, then near the end to remove the install DVD.
There were a few moments during install where I thought I had encountered a problem:
- There seems to be an install-time screensaver. It basically just blanks the screen which cause my heart to sink as I thought something had gone wrong. The mouse did nothing to bring it back, but pressing the shift key worked fine. Whew.
- There was a point in the install where the system displayed "Probing System for BIOS drives, this may take a while." A while in this case was about 10 minutes, then install progress continued.
- Shortly after the "Probing System..." step completes, the screen went blank except for a flashing cursor for about 2 minutes. Then, it showed some aliases for www.google.com and continued.
- Sometimes I found that during the install the system hangs indefinitely at the flashing cursor. Everytime this happened, I found that there was some problem with the network connection to the internet.
At the AV Wizard, I made the following selections:
- Resolution Settings: DVI/HDMI, 1080p (16:9), 60 Hz (after clicking OK, the wizard display switched to the TV and was no longer shown on the monitor)
- Graphical Aspect: OpenGL with overlay (medium) (don't forget the Frame Buffer Bios Tweak for alpha blending to work) Note: Selecting OpenGL with alpha blending (high-end) causes tearing on video playback.
- Adjust Image Size: No adjustments
- Audio Settings: -TBD once my receiver arrives-
Note: After selecting the resolution, there is no longer any output from the VGA port. At this point, I put the CRT monitor back in the closet.
The next step was the setup wizard. This is the one from the Video with video clips of Sarah prompting you to do various things. I simply followed the prompts with the following important exception: After connecting the RS232 cable for TV control and letting it autodetect, I selected "No, this is not the correct TV" and manually selected the Sharp Acquos LCxxD6U/LCxxD7u. This seems to disable the auto-detection for the port that the TV is connected to. If it is not disabled, the TV is re-detected and the Setup Wizard interrupts whatever you are doing.
After the wizard and a few minutes of letting the system set itself up, the progress bar reached 100% and the LinuxMCE showed the on-screen orbiter with pictures as the background. It is worth noting that the pictures at this point are a good sign that the internet connection is working.
Note: Once I added the USBUIRT to the system and did a fresh install, the system froze the first time the Setup Wizard was displayed. I hard rebooted (by pressing and holding the power button) and everything seemed to proceed fine.
Install dvd css, Rip a DVD
DVD CSS is required to rip DVDs but isn't installed by default.
From the on-screen orbiter I selected Advanced->Advanced->Add Software. This shows the Add Software screen from the wizard. I chose to install DVD CSS even though it showed as being install already. I later noticed that once all the downloading and installing took place, a big green checkbox appeared beside DVD CSS.
After I was pretty sure that the dvdcss downloads had completed and were installed, I popped the "Finding Nemo" DVD into the optical drive. LinuxMCE showed a message about a disc being detected, then the screen went blank for a worrying amount of time and eventually the movie started playing, no warnings, previews or anything. Nice.
Ok, I wanted to rip Nemo to disk, so I exited the playing DVD and selected Manage Drives which showed the DVD. I clicked on the Rip icon and the ripping commenced. After about 10 minutes, a message appeared saying the rip was complete.
Now to play the ripped copy. I removed the DVD from the drive just to make sure that it wasn't going to be played. I clicked media->video and there was Nemo. A few more clicks and the movie started. Sweet success.
Media Drive Setup
I opted to use a built-in (sata connected) secondary media storage drive. This scheme has two qualities:
- The media drive can be formatted XFS so that LinuxMCE "listen" for new media files that are copied to the drive. Other filesystems don't allow for this.
- Fresh installations of LinuxMCE can be put on the primary drive without losing media. If you have only a single drive, this is not possible without going through a less-supported multi-partition installation.
Folder Structure and Media (Pre-Installation)
Before installing LinuxMCE, I formatted my secondary media drive to the XFS filesystem using the gparted LiveCD. Then I created the standard LinuxMCE media drive folder structure on that drive. The structure looks like this:
|-data |-videos |-music |-pictures
Also before installation, I moved all of my media to the appropriate folder on the media drive.
Once LinuxMCE is installed, there are steps that I performed to prepare the media drive: Create a symlink to the drive and set appropriate permissions to it.
I wanted the drive to be accessible as /media/bi (bi short for built-in). I created a symlink accordingly using this command:
ln -s /mnt/device/XX /media/bi
Where XX is a number that seems to change each time I install LinuxMCE.
I wanted the default user, linuxmce to be able to do things at will on that drive, so I made that user the owner:
sudo chown -R linuxmce /media/bi
Everyone should be able to delete, rename, and copy stuff to the public folder, so I changed the permissions accordingly:
chmod a+w -R /media/bi/public
These permissions pass through on the samba shares, which means that I can put stuff on the media drive folders from a Windows computer by browsing to \\mce\public and logging in as my user.
Other Necessary Setup Steps
- LinuxMCE did not detect the Hauppauge WinTV-PVR-150 MCE automatically. I followed the manual configuration directions.
- Interlacing is disabled by default. I turned it on by setting Admin Page->Wizard->Devices->Media Directors->Deinterlace Quality to high. The page lists multiple media directers, so make sure you are setting Deinterlace Quality for the right one.
- The key codes for the Hauppauge remote that came packaged with my WinTV-PVR-150 MCE are not the same as a Windows MCE Remote, even though it looks very much like one. I had to add support for it manually by following the add support for new remote controls instructions. I attmepted to share my IR codes for this remote. The device template is called "PVR-150 remote (USBUIRT)". Hopefully it will be included in the next LinuxMCE release.
Miscellaneous Setup Notes
According to the end of this thread the infrared receiver that comes with the WinTV-PVR-150 MCE is now plug and play but requires a few setup steps, however, I was not able to get it working.
Optional Installation Steps
uTorrent w/ WebUI
I do have uTorrent working with a WebUI using wine, however, getting uTorrent to startup and shutdown properly without user interaction proved to be problematic. (You can find some info about this setup on this version of my user page.)
Essentially what I'm looking for is a bittorrent client that runs as a UI-less daemon. Trying to get uTorrent/wine to approximate such a thing is a square-peg-in-a-round-hole situation.
Version 0.6 of deluge is slated to support a UI-less daemon. If I get that up and running I will fully document it as I think it is the best way to download torrents to a linuxmce core.
While I do have uTorrent/wine working and happily downloading stuff straight to my hybrid/core, I'm not going to invest any time in documenting that setup as it is way too haywire to be a long-term solution.
My internet connection is DSL provided by Telus. That connection is protected by a hardware router/firewall. The "EXTERNAL" network card in the LinuxMCE Core/Hybrid is plugged into that router/firewall. Other media directors will be connected to the "INTERNAL" network.
I am using a Linksys WRT54GL wireless router v1.1 running OpenWrt/X-WRT.
User Friendly URL to Core
To give the core a static IP (in this case 192.168.1.103), I added the following line to the WRT54GL's dnsmasq.conf file:
To make the core's IP address map to some user-friendlier names, I added the following line to the WRT54GL's hosts file:
192.168.1.103 mc mediacenter mce linuxmce dcerouter
With these entries, you can enter http://mce into the address bar of a browser and end up at the admin page. No IP address entry necessary.
Bittorrent Port Forwarding
Under Network->Firewall, create a port forwarding entry that looks like this:
Match Target Port Destination Ports: 60000 192.168.1.103 60000
Core/Hybrid "EXTERNAL" Network Card
Some orbiters (eg. my laptop) connect to the core using the wifi connection provided by the WRT54GL. This connection is on the "EXTERNAL" network card which has a firewall that is turned on by default. Since the core is behind the OpenWrt firewall, I disabled the core's firewall by checking the firewall disabled box at web admin page->Advanced->Network->Firewall Rules.
Windows XP Laptop Orbiter
My main computer is a laptop with a wifi connection that connects to my router/firewall which is on the same subnet as the core/hybrid's "EXTERNAL" network card. I followed the setup instructions here to setup my laptop as an orbiter. Note that I disabled the firewall on the core to get this to work. See the networking section for details.
A 42" wall-mounted LCD seemed like the right thing for my condominium's living room. The Video showed a Sharp Aquos LC-26D6U in the bedroom. Sharp seems to have good RS-232 control support -- as long as the control port is actually there.
I settled on the Sharp Aquos LCD LC42D64U because it met the following criteria:
- Has RS-232 control.
- Very close to the TV used in the Video.
- Countless positive reviews, only a few reported issues.
- Got it for a decent price ($1499) and in my neighborhood. No shipping, brokerage, or duty.
I use a modified Acquos LCxxD6U/LCxxD7u device template to control the Aquos LC42D64U. There are three things I had to do to get control working:
- Add inputs that are missing from the Acquos LCxxD6U/LCxxD7u device template.
- Set the TV itself to respond to power-on signals over RS232.
- Perform some black art on the Admin Page and some Setup Wizardry.
Adding Missing Inputs 6 and 7
The Acquos LCxxD6U/LCxxD7u device template doesn't list inputs 6 or 7 which my TV has. I added them by doing the following:
- In Admin Page=>Advanced=>Configuration=>Device Templates select "Sharp" from the Manufacturer list and "TVs/Plasmas/LCD's/Projectors" from the Device Category list. Then click Apply Filter and select "Acquos LCxxD6U/LCxxD7u" from Device Template. This will open the Device Template in another window.
- In the Device Template window, click Edit Audio/Video Properties. This will open another window.
- In the new window find the line starting with Inputs and click change/explain. This will bring you to the "What inputs?" screen.
- Click the checkbox beside "Input 6" and "Input 7". Click Save. This will bring you back to the previous screen.
- On that screen find the "Inputs" section. Copy the string in the text box to the right of where it says "Input 1".
- At the top of the "Inputs" section click the hyperlink Input 6. This will open a new window.
- Paste the string you copied two steps ago into the text box. Change the 1 in the string to 6 and click Save.
- Perform the last 2 steps for input 7. At the part where you change the number in the string, change it to 7.
- Click Update, and you are done adding the two missing inputs.
After adding the two inputs, restart the Setup Wizard and go to the TV section. Select input 6, and, once the TV has switched to input 6, replug the HDMI cable into that input. Note that you may need reboot or reload router for input 6 to be selected.
Setting TV to Respond to Power On Commands
Page 61 of the manual for the LC42D64U TV lists the RS232 codes that the TV responds to. Included in this list is are two sections: POWER ON COMMAND SETTING and POWER SETTING. For clarity, here is a table that explains what each of the commands in this section do:
|Section||Command||What it Does|
|POWER ON COMMAND SETTING||RSPW0||Tells the TV not to respond to POWR1 commands when the TV is turned off.|
|POWER ON COMMAND SETTING||RSPW1||Tells the TV to responding POWR1 commands when the TV is turned off.|
|POWER SETTING||POWR0||Turns the TV off.|
|POWER SETTING||POWR1||Turns the TV on if and only if the TV has received the RSPW1 command and has not received a RSPW0 command since.|
Out-of-the-box the TV does not respond to the POWR1 power-on command. In order to get the TV to respond to the power-on command, I did the following:
- Connected a null modem cable between the TV and a computer running a terminal program. (I used my Windows XP laptop running Tera Term.)
- Set the terminal to 9600 baud, 8-N-1 and turned on local echo so that I could see what I was typing.
- Turned the TV on using the remote.
- In the terminal windows, I typed "RSPW1 " followed by enter. Note that all letters are capitalized and "RSPW1" is followed by three spaces. This command tells the TV that it should respond to the power-on command. After pressing enter, you should see the TV respond with OK in the terminal window.
- Typed "POWR0 ", enter to turn the TV off.
- Then I waited about 30 seconds for the TV to completely shut down and typed "POWR1 ", enter. The TV turned on!
From then on, the TV responded to power-on commands from the core/hybrid.
Admin Page Black Art and Setup Wizardry
Once the missing inputs are added and the TV is set to respond to power-on commands, I deleted the Acquos LCxxD6U/LCxxD7u from the device tree on the Admin Page and let the system redetect it. It seems the outcome of doing this depends on factors I don't understand. I do have some guidelines for getting the TV to work:
- Start by unplugging the null modem cable from the computer.
- Delete the Acquos LCxxD6U/LCxxD7u from the device tree and reload router.
- Plug the null modem cable back into the COM port noting which port it is connected to. The system should run plug and play scripts now.
- Once the system re-detects the TV, it normally displays one of two screens:
- Dark Blue with buttons arranged in a horizontal row -- in this case select "Yes, this is my TV"
- Light Blue with buttons arranged in more square like -- in this case select "No, this is not my TV"
- Manually select the Sharp Acquos LCxxD6U/LCxxD7u when prompted.
- When prompted for the COM port, if the correct port is not displayed, it didn't work. Get out of the Setup Wizard and start at the first bullet again.
- If the correct COM port is displayed, odds are that the setup worked. Select the correct port and complete the wizard.
If everything did work, you should be able to mute and adjust the volume of the TV using an orbiter when playing videos. The system should also be able to turn the TV off and on.
There were a variety of miscellaneous items I ended up needing to put this system together.
|Wall Mount for Sharp LC42D64U||Ergotron WM Low Profile Wall Mount P/N 60-578-003||$89.00||costco.ca Item # 115242|
|Null Modem Cable||Generic Null Modem Cable DB9 Female to DB9 Female 6FT||$4.50||2 of these to control the TV and receiver|
|HDMI-DVD cable||Generic HDMI-DVI/D M/M HDMI to DVI-D (Dual Link) 10FT Cable - M/M (19 Pins) / (24 PINS+1)||$30.00||to connect the TV|
|infrared transceiver||USB UIRT||$50 + $8 S&H||to use IR remotes and control AV gear|