I was placed into a position of trying to help a family member create a home theater system using an Acer Aspire Revo computer. The reason for using this particular computer is that it is very small, very Green (low power consumption), and a lot more capable than some of the standalone devices that are starting to come out. That said, it’s NOT a full power PC. Anyway, I only had the computer for a few days, and it’s no longer in my possession. Nevertheless, I’d like to share a few things I learned that may help others. This article may be fleshed out as time goes by, particularly if I remember any more details.
The genesis of this installation was an article at the Lifehacker site entitled Build a Silent, Standalone XBMC Media Center On the Cheap. You should read that first, then come back here.
The first thing you need to know is that there are several different models of the Acer Aspire Revo out there. I think that when the article was written, the model AR1600-U910 was pretty much at the top of the heap, but there are actually models with much better specs out there – faster CPU, more memory, larger hard drive. Do yourself a favor and do an eBay search for “Acer Aspire Revo” and note the varying specs (for example, look for the model AR3610-U9012 if you don’t immediately see it). You want the highest powered model you can get, and the most memory and highest number of processors. Even the high-end one is very reasonable if you shop around. Note that you CAN buy an Acer Aspire Revo with some version of Windows installed, but it will cost you more and (especially in the higher end models) there aren’t that many places that sell them (Newegg used to, but discontinued that model for some odd reason).
You’ll need a wireless or USB keyboard and mouse during the setup phase. Some sellers include a wireless keyboard and mouse, while others don’t, so just be aware of that when ordering. Read specifications VERY carefully and know what you are buying!
Also, the Lifehacker article wants you to install the operating system from a thumb drive. If you have an external CD or DVD drive (that connects using a USB port) do yourself a favor and use that (just install from the distribution CD).
The other important thing in that article is the BIOS tweaks. If you take my advice and get the higher end unit, set the iGPU Frame Buffer Size to 512MB, not the 256MB that the article suggests for the low-end units.
Now, they want you to install XBMC Live. If you have time to play around a bit, go ahead and do it and get a feel of how things work. The reason I suggest this is because you might actually prefer it. It’s a very quick install and it works just as your expect, smooth as silk in my experience. Don’t invest a lot of time in it (because if you’re like us you’ll wipe it out and start over) but it can give you a feel of how XBMC is supposed to work, so you’ll know if it’s not working right when you finish the install. The particular thing to note is that you almost never see “jerkiness”, nor strange flashes on the screen, in a video you are playing.
The reason I say you’ll probably want to wipe that out and start over is because of one thing: Boxee. The newest beta of Boxee just blows away XBMC (in everything but resource usage, and that’s not something to overlook). And, you might also want to try to run Hulu Desktop, but if you do I hope you have better luck than we did (more on that in a second).
So we decided to install a standard Linux distribution and then install BOTH XBMC and Boxee, so that the user could switch between the two. So the next thing was, which distribution to install? And this is where we burned a LOT of time. Ultimately we settled on the 64-bit version of Linux Mint – don’t run away because we said the “L” word! Seriously, if your previous experiences with Linux were an exercise in frustration, you owe it to yourself to at least give Linux Mint a try. It could not possibly be simpler to install. The hardest question they ask during the install is how you want to partition the drive, and you just tell it to use the entire drive (erasing any previous operating system). Yes, you will lose anything you have saved (unless you copy it to another drive or network share first), which is why I said not to invest much time in XBMC live. We chose Linux Mint because the interface just looks really nice, we liked the desktop layout better, and (most important) it seemed a little “snappier” than Ubuntu 9.10 (Linux Mint is based on Ubuntu, but adds a lot of nice extras). Did I mention that we used the 64 bit version?
Edit (January 16): After further attempts to install this on another Revo, we finally came to the conclusion that sometimes, installing the 32 bit version of Ubuntu might be better. The problem arises when you try to install the latest beta version of Adobe Flash – it seems to coexist best in the 32 bit version of Ubuntu, although even there it’s not entirely without issues. And Mint stores files in slightly different places than Ubuntu, which means that when you try to follow software installation directions from another site (which are almost always written for Ubuntu), there’s a chance they just won’t work under Mint. We used the Ubuntu Minimal CD Image for the install, to save time downloading a huge CD image that is mostly replaced during the software update process. If you go that route, be sure to read the instructions on that page carefully, or you’ll be scratching your head wondering why it’s not working!
Note: Although I normally welcome comments, I will not allow anyone trying to fan the flames over a particular distribution. Fights over Linux distributions can become like religious wars, and if you want to start one, do it on some other site. If you want to say you like some other distribution better that’s okay, but NO derogatory comments about anyone’s choice of distribution. Also, note that from here on my notes are a bit sketchy – I assume you’ve at least dabbled with Ubuntu or Linux Mint at some point and know how to use a few basic tools, like a terminal window and the Synaptic file manager (not that it should take anyone long to figure these out).
After installing Linux Mint and running the software updater from the Control Center (or whatever they call it, I don’t member offhand) the next task is to install the NVidia drivers. The system will offer to install some (or you can go to Hardware Drivers in the control panel) but at this writing they are older ones that don’t work as well as they should. So open a terminal window and do this:
sudo add-apt-repository ppa:nvidia-vdpau/ppa
Then open the Synaptic file manager, let it update its sources, then search on nvidia, install nvidia-glx-195 and dependencies (do this first as a separate action), then look for any other nvidia 195 package still not installed except the one with -dev in its name and install it (195 was current at this writing; if you see a higher number you may want to try that instead). You don’t need the -dev package, and it had a conflict with some other package when we tried to install it. After you do this, go to the Hardware Drivers panel and activate the NVidia driver.
While you are in Synaptic, install mc (Midnight Commander) if you wish – I wouldn’t have a Linux box without it, but that’s just me.
If you want to be able to access your HTPC from other computers on your local network using SSH, while in Synaptic install openssh and (optionally) sshguard. Then edit edit /etc/ssh/sshd_config and change the PermitRootLogin value from “yes” to “no” (for the sake of system security).
You will want to install Adobe Flash. Do this BEFORE you try to run a flash enabled site any web browser, otherwise it will prompt you to install a Flash plugin and (unless you are reading this months after I wrote it) it will probably install an old, inefficient one that doesn’t work well with the Ion processor. So, do this first:
If you are using a 32-bit version of Ubuntu Karmic, see How-To: Install Flash Player 10.1 Beta 2 in Ubuntu 9.10 Karmic Koala. One thing to note: There may be additional copies of the libflashplayer.so file hidden on the system, that can be written back over your fresh install! So look in the ~/.mozilla/plugins and /usr/lib/flashplugin-installer/ directories and make sure that if libflashplayer.so exists in those places, it is the new one from the beta install. Check this again after each software install (especially Hulu Desktop), BEFORE you run the software for the first time. We found that Hulu Desktop in particular may install the older Flash Player over your new installation if you are not careful, and if it does you’ll get a lot more flicker/jitter in your video playback.
If you are using Linux Mint 64-bit, open Firefox (it comes with Linux Mint) and browse to http://labs.adobe.com/downloads/
Download the Adobe Flash Player 10 for 64-bit Linux prerelease
The archive will contain a libflashplayer.so file which you copy to /opt/mint-flashplugin-x64/ – there is already a file there with the same name so rename that one first (add a .bu extension or something, but keep it in the same directory), then copy the new one in, then fix the permissions and ownership to match the original file (I use Midnight Commander’s “Advanced Chown” feature from the “File” menu to examine and change permissions on a file – I just like GUI’s!).
If you have any problems with installing Flash you might try posting a message in this forum.
Now, here is how you install XBMC from the terminal window (for some reason Synaptic wouldn’t find the xbmc program for us, but the following worked):
sudo add-apt-repository ppa:team-xbmc
sudo apt-get update
sudo apt-get install xbmc
sudo apt-get update
If you want to TRY Hulu Desktop (it was waaay too jerky to be watchable for us), go to the web page for the Hulu desktop install and click the Ubuntu 64-bit or 32-bit download link, depending on your version of Linux. Firefox will offer to open it with the GDebi installer, so let it do that. Remember to check to see if it brought in its own version of libflashplayer.so and if it did, kill that sucker and replace it with the one from the beta before you run the software!
As for the Boxee beta, follow the instructions in your invitation e-mail or just go to Boxee’s web site and be sure you get the correct version (I had better notes on this but I think Apple’s Mail program ate the note I had made to myself on this. Maybe I will be able to better fill this in after the public release of the beta). Note the current Boxee beta seems VERY stable, so don’t let the fact that it’s a beta scare you. When you see it for the first time, it’s a bit jaw-dropping in its awesomeness, however I wish it were a bit lighter on system resources. What we’ve discovered is that when both XBMC and Boxee coexist, XBMC seems to play certain video streams a bit smother (no missed frames or jumpiness) whereas Boxee may, in some cases, give the exact same stream a “jerkier” feel – you might have to pay close attention to notice (and I’m sure that with some streams you won’t notice a difference) but there really is a difference. On the flip side , Boxee will play a Hulu stream (that it knows about) MUCH smoother than the awful Hulu Desktop software. and fremember, this version of Boxee IS still a beta!
If you have an infrared remote control and infrared receiver (these generally come together as part of a package; check the XBMC and/or Boxee forums to see which are recommended), open Synaptic and install the lirc and irexec packages (irexec might be already installed). Note: I suggest you do not install lirc until you have run XBMC at least once – I think it creates a configuration file for a remote that makes it work in a logical manner, but it won’t overwrite an existing one (this is pure speculation on my part, based on observation). So if you run XBMC at least once before you install lirc, you get the “good” remote configuration. Anyway, that’s my theory and I’m sticking to it!
You will likely want to be able to launch either Boxee or XBMC using the remote. As a PRELIMINARY way to accomplish this, we opened or created (can’t recall which) a file called .lircrc (note the leading dot character) in the user home directory and put the following lines in:
begin
prog = irexec
button = red
config = /opt/boxee/run-boxee-desktop
repeat = 0
end
begin
prog = irexec
button = blue
config = xbmc
repeat = 0
end
This starts Boxee if you push the red button on the remote, or XBMC if you push the blue button. Note that this is just to get you started – properly it should check first to see if the other program is running and close it (or at least refuse to run the selected program if the other is still opened). But by this point we were really up against the wall for time, so we just told the user not to open one program while the other is still running.
By the way, the irexec program must be running for the above to work, so you can use the Ununtu/Mint startup manager (or whatever they call it – this is hard to document when I don’t have it to look at anymore) to make it run at startup. You should run it with the -d option, e.g. irexec -d in order to make it run as a background process.
EDIT: One added note: If you are trying to use the HDMI output for sound, and you are having no luck getting it to work, try this: From a terminal window enter:
alsamixer
Then use the tab key to tab over to
iec958 1
and make sure it is unmuted. Press the “M” key to change the muting status, if necessary, then hit the Esc key to quit. You might want to call up alsamixer one more time to make sure that the change has “stuck.” An alternate method that is supposed to work is to enter the following from a terminal window command prompt:
amixer -c 1 sset 'IEC958' unmute
Whichever method you use, you should now be able to select HDMI audio output. Also, make sure the volume is turned up and not muted in XBMC and Boxee!
Things I would have liked to have done, but didn’t have time:
Either make a better .lircrc file or find a GUI application launcher that’s IR-remote aware (I couldn’t find one, and we looked – I really wanted to put one of these on).
Find a way to shutdown the computer (or put it to sleep) using the remote (strangely, you CAN do this in XBMC Live – don’t know what they do differently. If you do try XBMC Live, I’d love to see how they are doing their remote button definitions, but I wasn’t about to install it again to find out!)
Find (if such a thing exists) an on-screen keyboard that is controlled by the IR remote, that could be used to enter keystrokes into a program in a pinch (both Boxee and XBMC have such a thing, so it’s no big deal within those applications, but I’d like one that works with all applications).
Find out why VNC screen sharing doesn’t seem to work (when you try to get into the system using VNC, you get an initial screen that may display some or all of what’s actually on the desktop – that is, not all open windows may be shown – and the display never changes after that, although moving the mouse works. It’s still semi-useful if you can watch the main screen while using the mouse and keyboard on another computer in the room, but I was hoping to use VNC to work around the overscan problem, and for that it’s not so usable since the display never changes on the “remote” machine. EDIT: Found the answer to this one – first you have to check the box to allow sharing in Remote Desktop Preferences, then go to System | Preferences | Appearance, and in the Appearance Preferences panel, “Visual effects” tab, select None. Apparently, the use of any visual effects screws up VNC.
A couple other things I have forgotten right now, but will probably remember sooner or later.
Also, I discovered that Linux Mint seems to have a bug where the Applications menu disappears for no reason. Here’s how to fix that if it happens to you:
- Right click on Menu button and click on “Reload plugins”
- If that doesn’t help, open a Terminal window and proceed to step 3
- Right click on Menu button and click on “Remove from Panel”
- In the Terminal window enter: mintmenu clean
- Right click on a blank space on the bottom bar, select “Add to Panel”
- Right click on the new Menu icon, select Move, and move it to the correct location.
One other issue you may encounter when using a HDTV as the output device is something called “overscan” – that means the desktop is actually larger than the area shown by the HDTV display, meaning you can’t actually see your bottom menu bar, etc. While both Boxee and XBMC have ways to correct for overscan within their respective applications, I have not figured out how to do it in Linux Mint itself. This tends to happen AFTER you install the NVidia drivers, but if you don’t install the drivers you will quickly lean that things just don’t work right (mouse cursor moves at snail’s pace in some applications, etc.). True Linux geeks probably know how to fix this but I don’t. We were testing this on a Sharp LC-42SB45U TV so if anyone ever figures out the fix for this, I’d love to hear it (since we wasted a lot of time trying to fix this, and all for nothing). In the meantime you may want to use this little workaround to make the overscan less annoying.
It would probably also be a good idea to follow the instructions in this post: HOW-TO setup XBMC and Linux with correct resolution (xorg.conf) — in that article they tell you to modify /etc/X11/xorg.conf and add a couple of lines. I’d suggest a couple of additional modification there — under Section “Device” add one or both of these lines
Option "HWCursor" "false"
Option "DynamicTwinView" "false"
The first of those lines is a “blinking cursor fix” and should probably only be used if you are running XBMC Live – it’s supposed to help if you find an unwanted blinking cursor you can’t get rid of (I haven’t encountered that particular problem yet). The second line enables 1080p 24Hz mode for smoother playback of certain videos (probably most of them, actually). That line can actually go in either “Device” or “Screen” section – I added it to both just to be safe, but that’s probably overkill. Also, at the bottom of the xorg.conf file, add this:
Section "Extensions"
Option "Composite" "Disable"
EndSection
That’s supposed to provide better H264 acceleration.
If you added the “DynamicTwinView” “false” option as shown above, and you know for a fact that your monitor supports 1920 x 1080 @ 60 Hz (you should be able to determine that if you followed the instructions in the aforementioned post) then that mode should become available in XBMC — in the XBMC GUI, go to Settings | System | Video Output to select your desired output mode, and see if that mode is available. If, for some reason it is still not available, you might be able to force the issue – in order to do that, open a terminal window and do this:
cd /etc/X11/Xsession.d
sudo touch 45custom_xrandr-settings
sudo nano 45custom_xrandr-settings
Paste into this file the following lines, but take the parameters for the first line from the Modeline you created in the previous step, except use “1920×1080_60.00″ instead of “1920×1080″. The first line below is an example (do not copy it verbatim, use the settings from your Modeline) but the second and third can be copied and used as is:
xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
xrandr --addmode default 1920x1080_60.00
xrandr --output default --mode 1920x1080_60.00
If you have installed the Boxee beta and find you cannot access “mature” Hulu content, see HOW TO: Access mature Hulu content on Boxee Beta (Mac+Windows+Linux) (or this summary on the Lifehacker site).
If you have installed just the XBMC Live package and want to install Firefox, see HOW-TO Install Firefox in an XBMC Live setup — also, in XBMC Live, there’s no GUI that allows you to set up “shared” folders, in part because a Samba server is not installed by default. So if you need to set up a shared folder that’s visible to anyone over your local network, you can do this: Exit to a command prompt or ssh in from another system on your local network and do this:
sudo apt-get update
sudo apt-get install samba
(…follow the prompts to intall Samba, then…)
sudo nano /etc/samba/smb.conf
Scroll down to the end of the smb.conf file and add sections like this – don’t just copy these verbatim; make sure they make sense for your installation, and don’t include the comments (the semicolons and whatever follows). Substitute your user name in place of “myusername” (if you didn’t set one, it may be “xbmc”):
[global]
netbios name = my xbmc server ;whatever server name you want to appear
;on the network, 15 characters or less
[home]
comment = Primary User Home Share
path = /home/myusername
force user = myusername
inherit permissions = yes
read only = No
guest ok = Yes
allow hosts = 192.168.0. ;use first three octets of your local network address
[xbmc system]
comment = XBMC System Share
path = /home/myusername/.xbmc
force user = myusername
inherit permissions = yes
read only = No
guest ok = Yes
allow hosts = 192.168.0. ;use first three octets of your local network address
After you have made these changes and have saved the file and exited nano, you can then do this to restart the Samba server, in order to make your changes take effect:
sudo service samba restart
Note the only security here it to restrict access to hosts on your local network. There are ways to make Samba more secure, and if there are other users on your network that you don’t fully trust to not mess up your system, then you may want to implement additional security, but that’s beyond the scope of this document (suggestions are welcome in the comments). Also note, if you don’t plan to attach a printer, you may want to comment out the lines in smb.conf having to do with printers – they caused problems for me, but may not for you. And note that you should only do the above if you are using XBMC Live – if you have installed a full Ubuntu desktop then use the networking support built into it, and don’t manually edit smb.conf (which may not work anyway).
Another, perhaps easier way to configure Samba (once you have installed it) is to install Webmin (which you might want to do anyway, especially if running XBMC Live) — see these installation instructions for Webmin.
If you need to (re)format a hard drive to use with your system, and you don’t want any wasted space on the drive, be sure to read this: Free Disk Space by Reducing Reserved Blocks
If you hate typing in a password each time you ssh into your Revo, see Stop entering passwords: How to set up ssh public/private key authentication for connections to a remote server — but note that in a couple of cases that article instructs you to do a command of the form ssh username@remote ‘some commands’ and for whatever reason, the version of Ubuntu used in XBMC Live doesn’t seem to want to accept these. So I had to actually ssh into the Revo (using a password) and enter the required commands (the part between the single quotes) direct from the command prompt (the commands that create the .ssh directory, change its permissions, etc.).
If you do a system upgrade (for example, on XBMC Live you do a sudo apt-get update followed by a sudo apt-get upgrade), you may find that the next time you reboot XBMC won’t come up, but instead displays a message that stats with the words, “XBMC needs hardware accelerated OpenGL rendering.” Don’t panic, just follow andyblac’s advice in this thread:
Quit the box on the screen and make sure you don’t have any other instances of X running (if you ssh in from another box on your network, that normally does not start an instance of X, unless you specifically add options to do that, so you can do the following from another box using ssh if you prefer, but you must first quit the box that appears on-screen that displays the error message – that is running under an instance of X).
Login as xbmc (or whatever user name you used when you set up the system) and enter your password. Then, at the Linux command prompt type:
sudo nvidia-installer –update
Enter your password again, then answer yes to all the questions. The latest driver will be redownloaded and rebuilt for you. If you have modified your x.org configuration file, check to see if it was overwritten — if so, it should have been backed up, so you should be able to merge the two files (add any important missing lines to the new file). When I did this it didn’t touch my x.org, but that may be because I’d previously generated a new one prior to making modifications.
A similar document to this one, that may also prove helpful although intended for a different Ion-based system than the Acer Aspire Revo (so be careful) is this: XBMC Live + Asrock Ion 330 Setup Guide. There’s also a message thread on the XBMC site for those that want something like XBMC Live, but perhaps a bit more configurable: [LINUX] XBMC Setup Script – Automatic installation of XBMC for Linux.
I hope this helps someone. And don’t get me wrong – once you have both Boxee and XBMC installed, this is a VERY nice little system. But as I say, the new Boxee beta seems to blow the mind of everyone who has seen it (however, for actual usability, XBMC still has a slight edge, IMHO. Glitz isn’t everything!).
As for the standalone Hulu Desktop software – I give the current version a five turd rating.
In my opinion, the video is so jerky as to be unwatchable (unless you like watching your programs as a fast slide show) and the IR remote control isn’t recognized. I hope they will get an Acer Aspire Revo (or other device that uses the Ion processor) and install Linux (either Linux Mint or Ubuntu) and make it work. Of course, there are other sources for the programs that are on Hulu, but Hulu doesn’t make money from the commercials when you go around them like that, so we are supposed to pretend those don’t exist. The comment I’ve read in many forums is along the lines of “we’d be happy to watch the commercials if only they’d give us a watchable picture.” Anyway, there is PLENTY to watch in Boxee and XBMC!
The brother of the family member that bought this unit was so impressed that he ordered one for himself, so I may be helping build another of these soon (although, he’s more computer-savvy, so he may do it himself). So if anyone has any hints or fixes for any of the issues I have mentioned here, please leave a comment (just no Linux distro bashing, PLEASE!).
http://michigantelephone.wordpress.com/2008/12/27/stop-entering-passwords-how-to-set-up-ssh-publicprivate-key-authentication-for-connections-to-a-remote-server/