Media Center PC
Components
- NMEDIAPC HTPC5000B
[Great looks and tons of ports] - ZOTAC GF9300-A-E
[On board HDMI and SPDIF!] - Intel Core 2 Quad 2.33 GHz
[4 cores instead of 2 for better multi-tasking] - Western Digitial WD7500AACS 750GB Hard Drive
[Super Quiet!] - 4GB DDR2 800 RAM
- ROSEWELL RG430-2 Power Supply
[Quiet and 80%+ efficency] - ENCORE ENLWI-G(2) Wireless PCI Adapter
[Cheap and "mostly" Linux compatible] - ASUS DVD-E818A3T DVD-ROM
Software
- Ubuntu Jaunty 9.04
- Boxee (deb http://apt.boxee.tv jaunty main)
- XMBC (deb http://ppa.launchpad.net/team-xbmc/jaunty-ppa/ubuntu jaunty main)
- Medibuntu (deb http://packages.medibuntu.org/ jaunty free non-free)
- Remuco (deb http://ppa.launchpad.net/remuco-team/ppa/ubuntu jaunty main)
Tips and Tricks
Getting access to 4GB of RAM
The default Ubuntu 32-bit kernel cannot access 4GB of ram. To get the full 4GB you need the kernel PAE extensions. The easiest way to get this is to install the server kernel.
sudo apt-get install linux-server linux-headers-server
NVIDIA Acceleration and HDMI output
Typically, Ubuntu will autodetect the presence of NVidia cards and provide the option to install the NVidia drivers (via System->Administration->Hardware Drivers). For some reason this auto-detection did not occur so I had to install the drivers manually: sudo apt-get install nvidia-glx-180
I found that when Compiz was enabled the HDMI output only filled the upper-left corner of the screen. Once Compiz was disabled (Right Click the Desktopg>Change Desktop Backgroun>Visual Effects>None) the HDMI output was actually slightly too big to fit on the TV. I had to add the "ExactModeTimingsDVI" and "ModeValidation" options to get everything to look right. Here is my entire xorg.conf file.
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "Files"
EndSection
Section "Module"
Load "dbe"
Load "extmod"
Load "type1"
Load "freetype"
Load "glx"
EndSection
Section "ServerFlags"
Option "Xinerama" "0"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "VIZ VW32L HDTV40A"
HorizSync 31.0 - 70.0
VertRefresh 50.0 - 77.0
#ModeLine "1920x1080" 148.50 1826 1982 2004 2201 1028 1058 1063 1125 +hsync +vsync
Option "ExactModeTimingsDVI" "TRUE"
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "Unknown"
ModelName "VIZ VW32L HDTV40A"
HorizSync 31.0 - 70.0
VertRefresh 50.0 - 77.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 9300 / nForce 730i"
BusID "PCI:3:0:0"
Screen 0
Option "ModeValidation" "NoEdidModes"
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 9300 / nForce 730i"
BusID "PCI:3:0:0"
Screen 1
EndSection
Section "Screen"
# Removed Option "metamodes" "CRT: nvidia-auto-select +0+0"
# Removed Option "metamodes" "CRT: 1366x768 +0+0"
# Removed Option "metamodes" "DFP: 1920x1080_60 +0+0; DFP: 1920x1080 +0+0"
# Removed Option "metamodes" "DFP: 1920x1080_50 +0+0; DFP: 1920x1080_60 +0+0; DFP: 1920x1080 +0+0"
# Removed Option "metamodes" "DFP: 1920x1080_60 +0+0; DFP: 1920x1080_50 +0+0; DFP: 1920x1080 +0+0; DFP: nvidia-auto-select +0+0"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "0"
Option "metamodes" "DFP: 1920x1080_50 +0+0; DFP: 1920x1080_60 +0+0; DFP: 1920x1080 +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
# Removed Option "metamodes" "DFP: 1920x1080 +0+0"
# Removed Option "metamodes" "DFP: 1920x1080_60_0 +0+0; DFP: 1920x1080 +0+0"
# Removed Option "metamodes" "DFP: 1920x1080 +0+0"
# Removed Option "metamodes" "DFP: nvidia-auto-select +0+0"
# Removed Option "metamodes" "DFP: 1920x1080 +0+0"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
Option "TwinView" "0"
Option "TwinViewXineramaInfoOrder" "CRT-0"
Option "metamodes" "CRT: 1366x768_60 +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Get Simultaneous HDMI Audio Output and Analog Output
The first thing I wanted to get working was the HDMI audio output from the Gnome Desktop. To do this, open the Volume Control and the select Preferences. In that checklist select IEC958, IEC958 Default OCM, and IEC958 2. Close the Preferences windows and then go to the switches tab. In here select all of the checkboxes.
I wanted the ability to use both the HDMI and the analog outputs so that I could listen to music with the TV turned off (using remuco to control Rhythmbox).
DIRECTIONS FOR UBUNTU LUCID
In Ubuntu Lucid, Pulse Audio is used to configure sound. By default in the Sound Preferences application you can only select one profile to use for output (either Digital Output (HDMI) or Analog Stereo Output). To enable simultaneous output edit /usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf and add the following text to the bottom:
[Profile output:analog-stereo+output:hdmi-stereo+input:analog-stereo]
description = Digital Stereo (HDMI) Output + Analog Stereo Output + Analog Stereo Input
output-mappings = analog-stereo hdmi-stereo
input-mappings = analog-stereo
The from the command line execute
sudo apt-get install paprefs
After installing paprefs you should be able to launch System > Preferences > Pulse Audio Preferences. In this application navigate to the "Simultaneous Output" tab and select "Add virtual output...".
Now reboot the machine. After the reboot launch System > Preferences > Sound. In the "Hardware" tab select the Profile named "Digital Stereo (HDMI) Output + Analog Stereo Output + Analog Stereo Input"
. Then select the "Output" tab and chooes the device labeled "Simultaneous output to Internal Audio Digital Stereo (HDMI), Internal Audio Analog Stereo".
OLD DIRECTIONS FOR UBUNTU JAUNTY
On Jaunty I had to create a custom asound.rc file I was able to accomplish this. Make sure your Gnome sound preferences are for the analog device while your movie players (mplayer, XBMC, Boxee, etc.) use the HDMI device.
# Use aplay -l to figure out the correct settings here
pcm.analog_hw {
type hw
card 0 # <----- Put your card number here
device 0 # <----- Put your device number here
}
pcm.hdmi_hw {
type hw
card 0 # <----- Put your card number here
device 3 # <----- Put your device number here
}
# Control device (mixer, etc.) for the card
ctl.analog_hw {
type hw
card 0
}
pcm.dmix_analog {
type dmix
ipc_key 1234
slave {
pcm "analog_hw"
period_time 0
period_size 1024
buffer_size 8192
rate 48000
channels 6
}
}
ctl.dmix_analog {
type hw
card 0
}
pcm.analog_formatted {
type plug
route_policy duplicate
slave {
pcm dmix_analog
rate 48000
channels 6
}
}
pcm.hdmi_formatted {
type plug
slave {
pcm hdmi_hw
rate 48000
channels 2
}
}
pcm.hdmi_complete {
type softvol
slave.pcm hdmi_formatted
control.name hdmi_volume
control.card 0
}
# Send the audio to the analog output by default
pcm.!default analog_formatted
Network Manager prompts for password on login
On auto-login I continued to get prompted to unlock the keyring so the Network Manager could connect to the wireless network. At first this seemed like it was going to be challenging to fix because of all the solutions that I initially found through Google. In the end it was actually quite simple.
- Right Click on the Network Manager and select Edit Connections.
- Select the Wireless tab.
- Select the network you want to auto-connect to and then click Edit
- Check the box "Available to all users"
Low Wireless Signal Strength Reported in System Tray
The wireless adapter reported very low signal strength (i.e. 17%) even though my laptop would consistently report over 60%. Despite this low signal strength, the connection appeared to work well. To resolve this I disabled the built in rtl8180 driver and installed the ndiswrapper and WindowsXP driver.
Run the following command:
gksudo gedit /etc/modprobe.d/blacklist
Then add:
blacklist rtl8180
Then download and install the driver via ndiswrappers.