Friday, September 30, 2011

OpenELEC XBMC for shuttle xs35gt v2

OpenELEC stands for Embedded Linux Entertainment Center. According to the developer, it was made from scratch and designed to do one thing only: run XBMC. So this distro is not for everyone. If you want to do anything other than run XBMC, don't use OpenELEC. If you want to run a lot of add-ons (that are designed for Ubuntu etc.), don't use OpenELEC.

I've been running OpenELEC for a few months now and really like it because it meets my very simple requirements: 1) fast boot, 2) play my media and DVDs, and 3) fully remote controllable from an Android handset (except for WoL due to hardware limitations of the xs35gt).

It worked pretty much out of the box. I didn't have to do any additional configuration for my SSD (unlike the XBMC 10.1 Live CD) or adjust too many settings. It is practically instant on. If I turn on my TV and my media center at the same time, XBMC is started by the time the TV fully powers on and I can switch the input to HDMI. Startup would be even faster, except there is no bios option for fast booting. I think it sits on the bios screen for longer than it takes to both boot and start XBMC. Shutting down takes not even half a second.

Similar to Android and other embedded systems, OpenELEC is a stripped down linux distribution that relies on BusyBox to provide some of the standard UNIX commands, though many commands and utilities are simply missing, like the shutdown command, as well as a disk partitioning utility. The system directory is mounted from a compressed image at boot and is read only. For example, no files in /etc can be edited, and the root password can't even been changed (unless you compile from source), so this means this server can never be safely placed on a public network.


Version: 0.99.5 (latest release candidate)
Root password:openelec (can't be changed)
Required filesystem storage disks: ext4 (FAT32 is OK for external media but is inefficient and has a 4GB file size limit
Very basic setup: OpenELEC settings add-on for networking etc.
Normal admin/maintenance: Remote access from second computer.
Remote access protocols: Samba or SSH (No NFS server but can access NFS network shares for storing media, etc.)
Configuration files location: Samba share called "config files"

General Files Structure and Usage

You will only need to be concerned with two directories, /Storage and /Media. All locally stored files are in /Storage, which contains standard subfolders such as "music", etc. USB sticks and external drives automatically mount in /Media and do not require the creation of mount points (volume label is used). External media can be easily ejected from the XBMC GUI, usually by hitting the "title" button on your remote control and then eject.

Openelec has an XBMC add-on that resides in "programs" that is used to configure OS options like networking, sound, etc. You'll need another computer to do advanced editing, either through SSH or by file sharing with Samba. It should show up on your network. By default Samba shares the following folders. Samba should be enabled by default. if not it can be easily turned on from within openELEC settings add-on. All the config files you will ever need to edit are in the Config Files share, so you don't even need to SSH in to make changes, but be sure to use a text editor not a word processor if you make changes.

Download and Installation

There are several different versions, each optimized for particular hardware. Because the my server has an ION chipset 64 bit Atom processor, I installed the ION x64 version. Installation was a bit of a pain because there are no ISOs that can be burned to disk. instead, you have to make a USB stick installer. This can be only done with a windows PC or a linux PC, which at the time, I had neither. (Good thing Nicholas has both). If your USB stick doesn't boot, check the boot order in the BIOS. After booted from the USB stick, installation is straight forward.


1. Fix the splash screen. (I can't recall what was wrong with it. Perhaps it didn't display at all.)

SSH into the your server and do the following.

mount -o remount,rw /flash
nano /flash/extlinux.conf

Add this "vga=792" to the following line:
APPEND boot=LABEL=System disk=LABEL=Storage quiet

So that it becomes like this.
APPEND boot=LABEL=System disk=LABEL=Storage quiet vga=792

2. Configure HDMI Sound (follow the link for how to do it with the Samba share). I just used SSH and did the following:

cp ~/.config/asound.conf.sample/asound.conf_double-xs35gt.sample ~/.config/asound.conf

In the sound configuration settings in the openELEC settings add-on (located in "programs"), do the following:
  • Audio output = HDMI
  • Speaker configuration = 2 (appropriate for your system)
  • Audio output device = custom
  • Custom audio device = plughw:1,7
  • Passthrough output device = custom
  • Custom passthrough device = plughw:1,7

I then changed it back to the analog output and I get sound out from the HDMI at the same time. (Due to difference is latency, turn down the TV volume when using your stereo.

Adding Media

I keep some media on the internal SSD, copying to which is as simple as dragging and dropping. Samba shares such as "Music" and "Pictures" by default map to the corresponding directories in /Storage on the SSD.

Because of the small size of my internal SSD, I have a 500 GB USB drive where much of my media is stored. It is formatted ext4, which creates incompatibilities with my mac (MacFuse doesn't work). I can't directly mount this disk directly to the the mac with a USB cable, nor can I copy files to it using Samba (see "Issues"), so I add media to it from the command line using scp. I could live boot a linux CD on my Mac and plug in the disk, but that is a pain. Here is an example of adding a folder to the USB drive when it is mounted to the OpenELEC box, assuming the folder you want to copy is in your home folder and called "music folder", the openelec box's IP is x.x.x.x, and the destination is the folder "Music" on the external volume "USBdrive":

scp -r ~/music\ folder root@x.x.x.x:/Media/USBdrive/Music

(Unlike Windows, Unix-like OSs are case sensitive.)

  • Not much documentation, though there seems to be an active group of people on the forums answering questions
  • No NFS sharing as a sever; can connect as a client to other NFS shares. This means Samba is the only option for GUI file sharing, which is clunky with other unix-like OSs
  • wireless driver is missing from 0.99.5 (not sure about later nightly builds)
  • Samba shares that are mounted in /media are read/write but show as being full (zero kb available)
  • should work but login fails because it seems to have issues saving the password

1. Wireless

My wireless router has a theoretical maximum throughput of 150 Mbps but try as I may, I can only get abound 30. Both my Mac and the Shuttle have gigabit LAN, so I am using the wired ethernet. I haven't even bothered to try and install the wireless drives. In the BIOS, I set Wireless Power Control to enabled, which I think shuts down the wireless when not in use saving power.

2. Samba

The problem is that shares from any externally mounted media are displayed as being full, zero kb available, so it is not necessarily due to lack of write ability.

There are two samba.conf files. one is in /etc/samba, is not writable, and is overridden by the one in /storage/.config. The latter file can also be edited from the Samba share "config files". Here is how it is set by default:

  path = /media
  available = yes
  browsable = yes
  public = yes
  writable = yes
root preexec = mkdir -p /media

Notice it is writable. I tested it by deleting a file from /media while it was mounted as a Samba share.
  1. bypassing the symlink and specifying the real path
    path= /var/media
  2. creating a new symlink to /media that resided in /storage
    ln -s /var/media/ /storage/media
    and then setting the path as:
    path = /storage/media
  3. Tried all of the above in combination with deleting the last line all together (I don't think it is necessary since the directory exists)
I didn't think this would work, and it didn't permissions are fine, but since I can write that is not the issue. I have no idea why shares in /media appear to have no empty disk space.

1 comment:

  1. I think the admin of this website is in fact working hard for his web page,
    as here every information is quality based data.
    my web page > ship a car