HOWTO: Setup A Dedicated Boxee Box

Pick Out The Parts
You could always re-use parts, but you have to be careful here. In trying an old single-core AMD Athlon 64 3000+ running at 1.8GHz with on-board GeForce 6150, 720p video runs noticeably but not annoyingly at lowered frame rates. But you don’t have to go to the other extreme and get an AMD Phenom or Intel Core i7 processor with the latest nVidia GeForce GTX285. With the average home broadband connection at 2mb/s down and 720p video consuming 2.5mb/s, 720p is more of a niche offering offering right now and 1080p is out of the question. For 720p, an Intel Atom, Core 2 Duo, or recent AMD Athlon 64 II X2/X4 and GeForce 8xxx series card will do.
Not to completely dis ATI fans here, but AMD is still thawing the relationship of ATI’s past with Linux, and releasing XvBA for only the two most recent line of video cards (the Radeon 4800 series and up) doesn’t help much. The last three years (and five lines) of nVidia cards will run VDPAU, while XvBA doesn’t even have half of that.
Motherboard – Any MicroATX or ITX motherboard will do, as long as it supports your CPU. Bonus points for onboard graphics, but not necessary.
CPU – For 720p, an Intel Atom, Intel Core 2 Duo, or recent AMD Athlon 64 X2 CPU, preferably 45-65 Watts.
GPU – GeForce 8xxx series, can be on-board. Be sure you have an interface that your HDTV will accept (VGA, DVI, HMDI) or a converter handy.
RAM – 512MB, any more is just going to be wasted.
Storage – Just over 1gb (as the drive manufacturers define gigabyte).
Case – Anything, really. But if you want this to hang around your TV, it’s best to get something slim or small. If you’re going to use a standard desktop CPU with an ITX motherboard and case, be aware that most ITX cases are designed with ultra low-powered Intel Atoms and VIA C7 CPUs in mind. You can always fit an ITX motherboard in a MicroATX case as ITX motherboards use 4 of the same screw positions as MicroATX motherboards.
Install a Minimum Ubuntu System
Grab the latest Ubuntu server ISO and burn it to a CD. Optionally, you can set up a USB Stick, which can be a bit more work. When you boot, you’ll want to hit F4 for Modes and select Install a Minimum System. This will select the ubuntu-server-minimal.seed file and only give us the absolute minimum we need to get a command line.
Once you get your system installed, it’s time to make sure we have the latest updates. Issue the command sudo apt-get update and then sudo apt-get upgrade to update the system. Once done, issue the command sudo apt-get upgrade again to see if there are package being held back. (You’ll something along the lines of The following packages have been held back: followed by a list if so.) If there are any packages listed there, you’ll have to tell apt-get to install them manually using sudo apt-get install [space-separated-package-list].
Install Boxee And Required Software
Now that you have security and bugs out of the way, you’ll want run sudo nano /etc/apt/sources.list so you can add the line deb http://apt.boxee.tv [ hardy | intrepid | jaunty | karmic | lucid ] main at the end. Use sudo apt-get update to refresh the package list database.
Now we can get Boxee and some needed apps by runnging sudo apt-get install alsa-utils boxee linux-headers-server xorg. Alsa-utils gives us sound, linux-headers-server gives us the header files we need to compile binary drivers for nVidia cards, and xorg gives us an X server to work with. A couple of notes I’ve found out along the way:
- Boxee only depends on an X server framework. If you don’t specify xorg, you’ll get errors about not being able to find an X server.
- The dependencies are a bit wonky for the nvidia binary drivers. If you don’t install the header files, the nvidia drivers will point to the meta package linux-headers which by default point to linux-headers-generic, resulting in a failed compile when using server kernels. By specifying linux-headers-server, the meta package linux-headers will be installed and will point to linux-headers-server.
Next up we need to get sound working. Run usermod -a -G audio,video [username] to add a user to the audio and video groups. Log out and then back in to have the changes take place. Then issue the command alsmamixer to manage audio volume. By default, everything in Alsa is muted. Use the M key to toggle mute/open for Master, PCM, Headphones, and Front and up/down to increase/decrease volume. Use the command sudo alsactl store 0 to store these settings between reboots.
Now we’re ready to install the binary drivers. Run sudo apt-get install nvidia-glx-185. This one will spew a few dependencies and take a little longer because the drivers use DKMS or Dynamic Kernel Module Support. If you’ve ever compiled your own kernel modules (drivers, etc.) you know of the hell that can arise when a kernel update comes down because everything that didn’t come out-of-the-box gets broken. DKMS automatically re-compiles modules that are not a part of the standard set of modules your distribution supports.
Now we need to configure the X server’s resolution, and this can get tricky real quick. Linux has changed quite a bit over the years, and most notably is the lack of an xorg.conf file. This is because Xorg tries to auto-detect what resolutions your monitor supports and pick the best (highest) one. However, if your monitor isn’t giving out the proper EDID info, this fouls things up fast.
Run sudo nvidia-settings. If your monitor is giving out the right EDID information, you’ll see the appropriate resolution in the drop-down box under X Server Display Configuration. If not, you’ll have to craft an xorg.conf file by hand. You can start by picking a resolution other than Auto, hitting Apply to test, and then hitting Save to X Configuration File. This will give you most of what you need.
The only thing left to do is force X to use a specific setting. Open the file using sudo nano /etc/X11/xorg.conf.
Find the Monitor section. Only keep the Indentifier, HorizSync, VertRefresh, and Option lines. Construct your own Mode line using either gtf [horizontal] [vertical] [refresh] or ctv [horizontal] [vertical] [refresh].
Section "Monitor" Identifier "Monitor0" HorizSync 28.0 - 33.0 VertRefresh 43.0 - 72.0 Modeline "1280x720@60" 74.48 1280 1336 1472 1664 720 721 724 746 -HSync +Vsync Option "DPMS" EndSection
Next find the Device section. Keep only the Identifier and Driver lines. Add the options found below.
Section "Device" Identifier "Device0" Driver "nvidia" Option "UseEDID" "False" Option "ModeValidation" "NoEdidModes, NoMaxPClkCheck, NoVertRefreshCheck, NoHorizSyncCheck, NoEdidMaxPClkCheck" Option "NoLogo" "True" EndSection
Lastly, find the Screen section. Keep the Indetifier, Device, Monitor, and DefaultDepth lines. Get rid of everything else. Add a Subsection like in the example below so that there is only one resolution to use.
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1280x720@60"
EndSubSection
EndSection
At this point, you should have a proper setup for running Boxee. However, we can tweak things a bit further by forcing login and using startup scripts to automatically launch Boxee.
To make your box log in automatically, edit /etc/event.d/tty1 and change exec /sbin/getty 38400 tty1 to exec /bin/login -f boxee /dev/tty1 2>&1.
To start X automatically when you log in, create/edit ~/.bash_profile and add these lines:
case "`tty`" in /dev/tty1) clear && startx &>/dev/null;; esac
Lastly, to start Boxee when X starts, create/edit ~/.xsession and add the line exec /opt/boxee/run-boxee-desktop.


wouter 1:32 am on June 13, 2010 Permalink |
I recommand an atom platform with nvidea ION graphics. It can easy play 1080p and it’s cheap and uses only ultra low power.
For example, the acer revo r3600 or r 3610
BrainwreckedTech 2:34 am on June 13, 2010 Permalink |
I’d stop just at the NVIDIA ION recommendation. As of right now, it seems the only platform to get the love right now is the Intel Atom. There was talk of ION for the Via Nano back in Feb 2009, but apparently that fell through. A shame, as the Nano trounced the Atom at the time of its release. If you feel like building your own, Newegg sells ITX boards with embedded dual-core Atoms and IONs for as little as $160.
wouter 3:38 am on June 13, 2010 Permalink |
atom = ion
in other words,
cpu = atom n270 n330 d510 etc…
+
gpu = nvidia ion (geforce 8900)
this gpu can decode x264 1080p without a problem.
atom without this ion gpu can’t decode 1080p
neweggs also sells the acer r3610 (atom + ion)
BrainwreckedTech 4:41 am on June 13, 2010 Permalink |
Atom = CPU, ION = motherboard chipset, similar to nForce. Google “via nano” “nvidia ion” and you’ll get links to articles about the plan. But that’s all they ever were, or else there’d be links to products in the results. And the reason for the plan is because the Via Nano trounces the Atom. There’s even dual-core Nanos out there, but they aren’t price-competitive with the Atom-based solutions (add about $40) and aren’t ION-based.
Jimmers 6:26 pm on July 24, 2010 Permalink |
Has anyone had success getting boxee to launch on Lucid Lynx? I used the setup listed in this post for Jaunty, but after upgrading I can get it working.
Icesnake 10:46 am on September 17, 2010 Permalink |
Checking to make sure I am on Lucid (I upgraded yesterday, so I think I am) but this is what I did: http://forums.boxee.tv/archive/index.php/t-10492.html