What you need, if you want the HTPC(Home Theater PC) for free:
- A TV with VGA or HDMI input(Possibly audio input jack or speaker system).
- A wireless router.
- An old PC(Possibly laptop, if you’re wiling to plug it in every time you want to watch stuff).
- A smartphone(Only necessary for easily portable remote control).
- A USB with about 1 GB free space or a writable DVD.
- Willingness to “just fucking Google it”.
Before doing anything, please make sure that no computer, other than the ones in your own network, has direct access to your HTPC, i.e. you should not be making this setup on a public connection.
Ubuntu
Ubuntu is a free Linux distribution with a newbie friendly interface:
It’s really worth trying. You can boot it from a USB stick, so you don’t even need to install it to try it on your machine! It’s amazingly fast to use and it also boots fast. Also, Firefox on Ubuntu might be the fastest browser I’ve ever tried. It’s weird, because Firefox on Windows kind of sucks, but for some reason it’s waaaay faster on Ubuntu. I’m not saying it mistakingly because I haven’t cleaned my cache in Firefox on Windows in ages, because I haven’t done so in Ubuntu either, it really just is faster.
You can get Ubuntu here and you can use this tool to put it on a USB stick from Windows. If you have a Mac, I suggest selling it and getting a cheaper superior PC. Make sure your USB is prioritized higher than your hard drive when booting or your PC won’t even try to boot from the USB and you’ll need to burn Ubuntu to a DVD.
Once you’ve connected your USB stick and rebooted your PC, you can try out Ubuntu from the USB or install it.
Static IP
For this setup to work, your HTPC needs a static IP. Normally your router gives your computer a random IP each time it boots, this IP is only valid in your home. The router is like a middleman between your computer and the Internet at large; on the router your devices have local IPs and can talk with each other, but they will be mapped to global ports when sending or receiving messages from the Interwebz. We want your HTPC to have the same IP always, such that other devices in your home always know which IP to connect to. Setting up a static IP is usually done in your router settings. You can find the router settings by connecting to your router IP, which is usually 192.168.1.1, simply write it in your browser address bar and press enter. If it’s not 192.168.1.1, Google how to find it. If you have any trouble with this step the click here.
On my router I set it up like this:
Note the mac-address, you will need your own HTPC’s mac-address later.
XBMC
XBMC is a media center thingamajig. It plays your movies(with subtitles) and your music, it has a picture gallery and various apps, like a Youtube app and an app for notifying you of new mail. You can get it directly from the Software Center in Ubuntu. The Software Center is right there on the left menu bar, it looks like an orange bag with stuff coming out of it, just click it, search for XBMC and install it.
There’s an app for android phones(And possibly iPhones, can’t check because you need fucking iTunes), with which you can remote control XBMC, as long as your phone is connected to the same router. It works really well, there’s no delay and you can use a bar to search in a movie in real time. It has an option for pausing a movie when your phone rings and showing on screen when you receive a message on your phone, pretty neat! I haven’t personally tested those features though.
You need to enable remote control in the settings of XBMC, make sure to enable the “Allow control” items, set a port and username you can remember, note it along with the HTPC’s IP from the last step and write in the app on your phone when you’re first setting it up.
Another neat thing that my girlfriend noticed, is that when the HTPC is turned on and your android phone is connected to the WiFi, android will automatically add a button to send your pictures or music to the HTPC(highlighted by the red rectangle):
Wake On LAN
Wake On LAN is something that’s integrated in most modern LAN cards, it enables you to turn on a computer from another network device on the network. Like turning on your HTPC from your smartphone! This only works if your PC is connected to your router with a LAN cable.
Turn on your HTPC, download this application(Near bottom of page). Scan your network until your HTPC pops up, note its mac-address. Download this for your android phone, add your HTPC with the mac-address and you can now turn on your HTPC with your phone! If it doesn’t work, your LAN card may not have the Wake On LAN functionality.
FTP
You can easily install an FTP server on Ubuntu. An FTP server simply allows clients to connect and upload and download files. The client can be your computer or your phone. You can connect to an FTP server directly from your browser by using the ftp protocol, i.e. ftp://yourdomain.com. If you have a website, you’ve probably dealt with FTP servers before when you have had to upload files to your website. I’ve used this guide to install an FTP server on my HTPC. Basically I did this:
Press ctrl+alt+T in Ubuntu to bring up the terminal. Type:
sudo apt-get install vsftpd
It will install the server, you will be asked for your user password. Next type:
sudo gedit /etc/vsftpd.conf
Write the following lines somewhere in the file you just opened(If I remember correctly, they are already there, you just need to out-comment them, i.e. remove any leading // or #):
local_enable=YES write_enable=YES
Now restart the FTP server by writing:
sudo /etc/init.d/vsftpd restart
And you’re done. Now go on some other computer, download FileZilla, and connect to your HTPC’s IP, using the username and password you have for your HTPC. You can now upload and download files from any computer in your home to your HTPC, even from your smartphone!
Netflix
I used to have a Netflix account, then I wanted an HTPC with Linux on it and found out that for some reason Netflix believes I will pirate all their shit if I use Linux. I therefore no longer have a Netflix account. If you want to watch Netflix on your HTPC, try Windows. It will cost you, but you can use the same setup with XBMC.
I will be writing more in the future about how companies like to screw their legitimate customers by waging war on pirates, who ironically don’t have to give a shit.
DVI versus audio output
My HTPC only has DVI output, so I can’t get audio from the HDMI connection in my TV when I use a DVI->HDMI cable. Luckily my TV supports using an audio input jack along with HDMI to get audio, sadly GeForce doesn’t allow this in Ubuntu(by default).
If you run in to this problem, here’s what you do:
Look at this post. Specifically, the following lines need to be included under a “screen” section in your /etc/X11/xorg.conf file:
Option "UseEdid" "FALSE" Option "ModeValidation" "NoXServerModes, NoVesaModes, NoMaxPClkCheck, NoEdidMaxPClkCheck, NoMaxSizeCheck, NoHorizSyncCheck, NoVertRefreshCheck, NoWidthAlignmentCheck, NoDFPNativeResolutionCheck, NoEdidDFPMaxSizeCheck"
Upgrading the PC
Personally I’ve been looking at these Zotac ZBOX(Can’t believe I’m not getting paid for this). I have no experience using them, so I don’t know how well they function, but they’re small, cheap and silent, perfect as HTPCs.
Final Notes
For the final touch, to make sure you don’t need anything plugged in to your PC, you’d want XBMC to start up automatically when you log in(Also, make sure you’re user is set to log in automatically). To do this, you add XBMC to the list of start up applications(guide here). The XBMC executable is located in /usr/bin/.