First, before you go out an buy a Raspberry Pi for this purpose, keep in mind that it does not have any type of digital audio output (such as a TOSLINK connector), other than the HDMI output – see discussion here. This may or may not be an issue in your installation, but you should be aware of that going into the project.
While you could use NOOBS to set up OpenELEC, you may not get the latest version. You are better off using these installation instructions and downloading the latest build.
OpenELEC is very fast but much of the file system is read only, and even if you SSH in as root you cannot edit many of the configuration files as you could on a normal Linux system. Sometimes there are ways around that. For example, Samba by default is controlled by the file /etc/samba/smb.conf. But you can’t edit that file. However, if you navigate to the /storage/.config directory you will find a file called samba.conf.sample. If you copy or rename that file to samba.conf in the same directory, then that becomes the file that controls Samba, and you can edit that file. For example, you can change the share name by editing the line server string = OpenELEC and changing OpenELEC to something else, and then find the line netbios name = %h and change the %h to the same thing you used as the value for the server string.
Also if you don’t want your Raspberry Pi acting as a Master Browser for your local network, you can comment out the following lines in samba.conf, as shown here:
# domain master = yes
# local master = yes
# preferred master = yes
When you are in XBMC you may notice that the CPU usage seems high. This is apparently because of two things. First, the act of measuring the usage in XBMC and drawing the usage bar on the GUI actually consumes significant CPU power. You can confirm this by using SSH and then the top command to view actual actual usage. When you are on screens that are completely static, with nothing being continually redrawn, the CPU usage will be lower. But also, if you go into XBMC’s settings (System | Appearance | Skins) and turn off the RSS feed, your CPU usage will drop considerably. Note that actually playing video content actually causes CPU usage to decrease since the work of drawing the screen is transferred to the GPU. On the other hand, leaving the XBMC GUI parked on certain pages may cause CPU usage to increase – for example, we found that if we went to a page that displayed large size thumbnails and fanart, the CPU usage shot up considerably.
To get a PVR plugin to work, you must first enable Live TV. Only then will you be given the option to pick a PVR frontend, But note that even if you set it up properly, you might get audio only and no video. As best I can determine, the reason is that neither the Raspberry Pi nor OpenELEC contains a license to play MPEG2 video. The Raspberry Pi folks will be happy to sell you a license, but we didn’t bite so have no idea if it works or not, and we have read where others have had mixed results. Keep in mind that MythTV, and probably other PVR backends, have the ability to transcode recorded programs to another format that does not require a license, so if all you want to do is watch previously recorded content and not actual live TV, you could just set up the backend to transcode everything to a format that the Raspberry Pi will play after it is recorded.
OpenELEC and the Raspberry Pi will output 1080p, however it appears that on some TV’s you need to go into XBMC’s setting and explicitly specify playback at 1080p, otherwise it will default to 720p. This happened for us on one TV set but not on another.
One question remains, some older TV’s need a “CVT reduced blank” signal before they will offer a Dot-by-Dot mode that has no overscan issues. In normal systems you can change this by using specific software, or in Linux, a specific ModeLine in the xorg.conf file. But it appears that OpenELEC has no support for this. This might make OpenELEC a poor choice for those users. Fortunately, you can also try other distributions for the Pi, such as Raspbmc, XBian, or GeeXboX.