Shuttle XS35GT: Installing XBMC Dharma beta 2 Live

After you’ve bought your Shuttle XS35GT silent media center / HTPC, you’ll want to install some good software to make the system work well. Personally, I like the XBMC software, and here I’ll describe how to install it on the XS35GT.

In order to reduce costs, and make the system run faster, I have chosen to install Ubuntu Linux with XBMC, rather than use Microsoft Windows.

Also, as the XS35GT contains no DVD or CD reader, we will be using a USB memory stick as a replacement for a CD/DVD boot/install media, so ensure you have one handy. A 1GB or 2GB device should be sufficient. The XS35GT refused to boot off one of my USB memory sticks and so I had to try another one that it would boot from, so if you get this problem just try another stick and you will be OK.

This installation how-to assumes you have installed a memory module and have either an SSD or HDD installed in the XS35GT case. I installed 2GB RAM, and a 32GB SSD. If you will be using the XS35GT purely as a streaming client connected to a NAS, then a small capacity SSD/HDD like 30GB is sufficient.

Additionally, this guide assumes you have attached an MCE certified remote control unit, as this will work out of the box, with no extra work.

This guide also assumes you will be setting up wired networking. You can easily find instructions elsewhere if you need to get wireless networking working.

I would recommend plugging a USB keyboard into the XS35GT for the installation process, and also during the setup of XBMC.

I have compiled this guide from various notes and so if anything doesn’t work, just leave a comment, preferably with a description of what’s wrong and what it should be, so I can correct it.

The guide is split into the following sections:

  1. Install the latest BIOS
  2. Change BIOS settings
  3. Install XBMC Dharma beta 2 Live
  4. Fix the invisible terminal screen problem
  5. Make the wired network work
  6. Make the wireless network work
  7. Get the HDMI audio working
  8. Customise XBMC settings
  9. Tuning the SSD

Install the latest BIOS

Before installing any software, I recommend downloading and installing the latest BIOS: version 1.09. However, I just took a look now and I can’t see the 1.09 BIOS, so it’s possible Shuttle removed this new BIOS recently — perhaps they noticed a serious bug? If you cannot see BIOS 1.09 or later, then you can skip this whole section and move on to installing XBMC etc. However, in future when a new BIOS comes out you may find these instructions helpful.

Download the version 1.09 BIOS here.

The BIOS file seems to be called XS35_SHB.109.zip.

Update: Due to people asking for this deleted BIOS 1.09, I have made it available here.

After downloading, unzip the BIOS files into a directory — let’s call it ‘bios’.

We’ll use a USB memory stick to install from, and we need to install a bootable copy of DOS to a USB memory stick, and then copy the ‘bios’ directory into the DOS directory on the USB stick.

The program we will use to create a bootable DOS on the USB memory stick is called UNetBootin and it can be downloaded from here.

The UNetBootin image allows you to install various operating systems to USB memory stick and we will use a free version of DOS called FREEDOS. Follow these steps:

  1. Use UNetBootin to install FREEDOS 1.0 to the USB memory stick
  2. Copy the ‘bios’ directory onto the USB memory stick
  3. Boot the XS35GT with the FREEDOS usb stick
  4. Select FREEDOS Live (don’t accept the default which is to install to hard drive)
  5. From the DOS command line, type ‘C:’ and hit enter key, and then cd into the ‘bios’ directory where the BIOS files are (e.g. cd bios)
  6. Type ‘flash’ and hit enter
  7. Be sure to wait until the flashing of the BIOS has completed (don’t interrupt it or the XS35GT is probably toast)

Change BIOS settings

To enter the BIOS screens, turn the XS35GT on and hit the DEL key continuously on your USB keyboard until the BIOS screen is displayed.

If you managed to update to the new 1.09 BIOS, you will find a new item in the BIOS which allows you to enable the WLAN to be turned on permanently.

Also, whilst you’re in the BIOS turn on the AHCI mode for SATA, and on the Boot screen, change the boot order: make the first boot device the USB memory stick (must be plugged in whilst you’re in the BIOS), and make the second boot device the SSD or HDD that you will ultimately install Linux/XBMC onto.

Once all BIOS changes have been made, hit the F10 key to save your changes and reboot.

Install XBMC Dharma beta 2 Live

The next step is to download XBMC Dharma beta 2 Live from here.

Once you have downloaded the image file ‘xbmc-Dharma_beta2-live.iso’ it’s time to run the UNetBootin program again. In the UNetBootin screen, select the ‘Disk Image’ radiobutton, and then click the button at the end of the row to locate the ‘xbmc-Dharma_beta2-live.iso’ file.

Once you have located the ‘xbmc-Dharma_beta2-live.iso’ file from within your file system, the next step is to select the target device to ‘burn’ the image to. This is the time to select your USB memory stick.

Then click the ‘OK’ button and wait until the image has been written to the USB memory stick.

You now have a bootable USB memory stick ready to install XBMC Dharma beta 2 Live to your XS35GT’s SSD or HDD.

Now insert the USB memory stick into one of the XS35GT’s five USB ports and boot the XS35GT. Assuming you changed the BIOS settings so that it boots first from the USB memory stick, you should see a GRUB bootloader menu screen, which has ‘UNetBootin’ written at the top. Now select the option to install XBMC Live.

Once the installation starts, you will be asked for country, language etc, keyboard type etc.

Soon you will see a red screen which informs you that the installer was unable to detect any network. We will fix this later. Just select the ‘continue’ option for now.

Next you will see the setup screens for which drive/partition to install to. I just selected ‘use whole drive’. Select continue and wait for the installer to complete installation.

Next you will be asked for a user name to create. Use anything you like, for example ‘media’ or ‘xbmc’ etc. Remember this and the password, of course, as you will need it later.

When the installer completes the installation, it will tell you to remove any installation media like CD, DVD or in our case the USB memory stick. Do not remove the USB stick because we need to fix a problem which disables the terminal/command line functionality. So, leave the USB memory stick plugged in and reboot when the installer says installation is complete.

When you reboot the XS35GT after installation, when the UNetBootin GRUB bootloader screen appears, this time select the ‘XBMC Live (safe mode)’ (not INSTALL XBMC Live!) and move on to the next section.

Fix the invisible terminal screen problem

There is something wrong with the installation of XBMC Live and this results in CTRL-ALT-F1 giving a black terminal screen, but you cannot see what you are typing. This seems to be caused by some resolution incompatibility, but we will fix it by editing a configuration file.

To cut a long story short, we will edit a file which is normally generated, and so normally we should not edit this file directly. Let’s edit it anyway.

If you followed the previous instructions and booted from the USB memory stick and selected ‘XBMC Live’ from the UNetBootin GRUB bootloader menu, you will soon see the XBMC screen. Now hit CTRL-ALT-F1 to get a terminal session. Login with the username and password you specified during installation and continue with the steps below:

Mount the SSD/HDD where the installed code is:
$ sudo mkdir -p /mnt/ssd
$ sudo mount /dev/sda1 /mnt/ssd

Then I edited the file generated by update-grub, which is naughty but it worked:

$ sudo nano /mnt/ssd/boot/grub/grub.cfg

Then I searched for the lines containing “gfxmode=…” and deleted all the resolutions listed and changed the line to be “set gfxmode=800×600@16”. You might find another resolution works better for you.

Then I searched for the lines containing “set gfxpayload=…” and deleted all the resolutions listed and changed the line to be “set gfxpayload=800×600@16”. You might find another resolution works better for you.

Then save the file, remove the USB stick, and reboot the machine.

Make the wired network work

Now that you have a working terminal you can install the network driver.

I have the latest compiled 1.0.6.1 version of the wired ethernet driver available here.

Download it and unzip the file. This driver will work with the ubuntu kernel version 2.6.32-24 that XBMC Dharma beta 2 Live uses.

Now do the following:

copy the jme.ko driver file to the root directory of a USB memory stick and plug it into the XS35GT

$ sudo mkdir -p /mnt/usbstick
$ sudo mount /dev/sdb1 /mnt/usbstick
$ cd /lib/modules/2.6.32-24-generic/kernel/drivers/net/
$ sudo cp /mnt/usbstick/jme.ko /lib/modules/2.6.32-24-generic/kernel/drivers/net/
$ sudo chown root:root jme.ko
$ sudo chmod 644 jme.ko
$ sudo modprobe jme

Now that the driver is installed, you need to configure your network. For simplicity, I assume your router contains a DHCP server to provide IP addresses to requesting connected network devices.

$ sudo nano /etc/network/interfaces
# add these 2 lines:
auto eth0
iface eth0 inet dhcp

$ sudo /etc/init.d/networking restart

You should now have wired ethernet networking operational. Type the following to see your IP address:

$ sudo ifconfig -a

Under the ‘eth0’ section, look for the ‘inet addr:’ subsection and you should see a valid IP address there…

Make the wireless network work

If you intend to use the wireless networking (RTL8192SE), then update to BIOS 1.09 as it contains an option within the BIOS to keep the wireless networking on all the time. Once the BIOS is installed, using the method detailed above, enter the BIOS and select the option “wireless always on”.

Now it’s time to install the driver for wireless networking.

1. Download sources from here.

2. Compile:
$ cp -r /mnt/rtl8192se_linux_2.6.0017.0705.2010/ /usr/local/src/
$ cd /usr/local/src/rtl8192se_linux_2.6.0017.0705.2010/
$ make
# make install
# reboot

Maybe needed:
apt-get install build-essential subversion module-assistant
module-assistant prepare

3. Generate wpa-psk hex key
wpa_passphrase “wlan network name” “plaintext passphrase”

4. Edit /etc/network/interfaces and add the following:
auto wlan0
iface wlan0 inet dhcp
wpa-ssid “wlan network name”
wpa-psk “generated wpa key from step 3 or alternatively plaintext passphraase”

5. protect the network key
sudo chmod o=-r /etc/network/interfaces

Reboot and you should now have wireless networking.

Get the HDMI audio working

This is the most tricky part of the installation, and if you don’t perform this step you will have no HDMI audio working, as you need to ensure you have the latest ALSA library and that the mixer channels are unmuted.

However, before we get ALSA up-to-date and operational, first check that the audio settings on your HD TV are set to digital. The reason I mention this is that on my first install of ALSA, I still had no sound and I was wondering why. In the end, I discovered that my ALSA was working, but because of a default audio setting on my TV, where audio was set to ‘Auto’, I heard no sound from XBMC using the HDMI setting. To make it work correctly, I had to switch the audio output on my TV from its default ‘Auto’ setting to ‘Digital’, and then all was working well.

Another gotcha you may discover is that after rebooting your XS35GT after ALSA SPDIF channel unmuting, you will have no sound output. This is because it seems that the changes to unmute the mixer channels are lost after reboot, so ensure you have the following in your /etc/rc.local file, which will unmute the mixer channels after reboot for you:

$ sudo nano /etc/rc.local
# Add the following lines:
# Unmute ALSA mixer so we can hear HDMI audio
/usr/bin/amixer -q -c 1 sset ‘IEC958’,0 unmute &> /dev/null
/usr/bin/amixer -q -c 1 sset ‘IEC958’,1 unmute &> /dev/null
/usr/bin/amixer -q -c 1 sset ‘IEC958’,2 unmute &> /dev/null
/usr/bin/amixer -q -c 1 sset ‘IEC958’,3 unmute &> /dev/null

# Enable USB0 port so it has power to respond to MCE remote wakeup: USB0 is the port next to the
# capped VGA port
echo USB0 > /proc/acpi/wakeup

# To check which USB ports are enabled during suspend:
# cat /proc/acpi/wakeup

# USB ports layout for the xs35gt:
# EUSB = front
# USB0 = back usb port next to the capped vga
# USB1 = next to USB1
# USB2 = back usb port next to the vga
# UBS3 = back usb port next to the lan

# Changes in this block are SSD optimisations that are required if you perform the SSD
# optimisations listed at the end of this guide.
# 1. Force filesystem to use noop disk scheduler (good for SSDs as no moving parts)
echo noop > /sys/block/sda/queue/scheduler
# 2. Discourage swapping to the max
echo 1 > /proc/sys/vm/swappiness

The last line of /etc/rc.local should be ‘exit 0’.

The version of ALSA included in the install is version 1.0.20 and we will upgrade it to version 1.0.23 in the following steps.

Please note that these notes were taken from an older guide that worked with ALSA version 1.0.20 and unfortunately one or two file names have changed. You will obviously notice when a file name doesn’t exist: just look for a similar looking file name and this is most likely the right file to edit.

cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.20.

To avoid problems during the upgrade of Alsa-utils, we need to stop it with the following command :

sudo /etc/init.d/alsa-utils stop
sudo stop xbmc-live
sudo stop xbmc

We must then install the necessary tools to compile along with the kernel headers :

sudo apt-get -y install build-essential ncurses-dev gettext xmlto libasound2-dev
sudo apt-get -y install linux-headers-`uname -r` libncursesw5-dev

Then, we go in our personal home folder and download alsa-driver, alsa-lib and alsa-utils :

cd ~
rm -rf ~/alsa* ~/.pulse*
wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.23.tar.bz2
wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.23.tar.bz2
wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.23.tar.bz2

After that, we create a new folder for the compilation and installation of the 3 files. Then, we move the 3 tar files that we just downloaded in this folder :

sudo rm -rf /usr/src/alsa
sudo mkdir -p /usr/src/alsa
cd /usr/src/alsa
sudo cp ~/alsa* .

Unpack the 3 tar files :

sudo tar xjf alsa-driver*
sudo tar xjf alsa-lib*
sudo tar xjf alsa-utils*

We compile and install alsa-driver :

cd alsa-driver*
sudo ./configure
sudo make
sudo make install

We compile and install alsa-lib :

cd ../alsa-lib*
sudo ./configure
sudo make
sudo make install

We compile and install alsa-utils :

cd ../alsa-utils*
sudo ./configure
sudo make
sudo make install

Then, we remove the 3 tar files in our personal folder that are not anymore necessary :

rm -f ~/alsa-driver*
rm -f ~/alsa-lib*
rm -f ~/alsa-utils*

Then, just restart your computer and your ALSA version should be 1.0.23.

You can verify that you have now indeed have this version of ALSA:

cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.23.

Just to be sure everything is well configured, execute this command :

sudo alsaconf

then we’re gonna setup HDA Nvidia card in XS35GT

sudo nano /etc/modprobe.d/sound.conf

paste following line and save:

options snd-hda-intel enable_msi=0

reboot the computer, the next step is to unmute nvidia audio:

sudo alsamixer

press F6, select HDA Nvidia, unmute all SPDIF there (‘M’ key), and unmute each channel by using cursor left/right keys to navigate.

Now we have to find out card # and device # of Nvidia HDMI so we can set it in xbmc:

aplay -l

note your card # and device # we’re going to use them for test then set up in xbmc

for example:

card 1: NVidia [HDA NVidia], device 7: NVIDIA HDMI [NVIDIA HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0

based those # test your speakers with following command:

speaker-test -D plughw:1,7 -c2

If you don’t hear anything then don’t worry too much, just move on to the next section.

Customise XBMC settings

If you followed the guide through to here, you should have a working terminal, working wired network and working ALSA version 1.0.23.

Now there are some important XBMC settings to customise. Reboot your XS35GT and when you get to the XBMC screen, select the System menu, and perhaps System menu again.

Configure HDMI audio

Within the System->Audio menu ensure you have the following settings for HDMI audio to work:

Audio Output: HDMI
Audio Output Device: Custom
Custom Audio Device: plughw:1,7
Passthrough Audio Device: Custom
Custom Passthrough Device: plughw:1,7

Now you should have working HDMI audio.

Configure VDPAU

VDPAU=Video Decode and Presentation API for Unix. This gives hardware acceleration for video presentation.
Now to get VDPAU working, go into the System->System->Video->Playback menu and enable the button for the “Allow hardware acceleration (VDPAU)”.

Configure Video source

Now to test out your setup for working network, sound and video, set up a video source. Assuming you are streaming video from your NAS, select the Video menu from the XBMC main menu and then select the ‘Add source’ item. Then select browse and select the ‘Add network location…’ menu item. This will then enable you to enter the network protocol (SMB/CIFS), server name/IP address of the NAS, the name of the share (shared folder), and the user name and password to use during access to the share. Once that works you are ready to test XBMC by playing your first video.

You will also want to calibrate the video output to fit your TV screen size correctly, and this can be found in the System->System->Video menu, if I remember correctly.

There are many, many more settings you can tweak, but these are the most important ones to set correctly.

Tuning the SSD

Apparently, XBMC does not write heavily to the SSD, but if you use it in Library mode then XBMC will suck down lots of small image files, and so you might want to enable TRIM functionality, which has been backported and is available in the version of Ubuntu Linux installed.

If you decide to enable TRIM functionality then you might find this guide useful.

In addition to the mount option ‘discard’ to enable TRIM, I also:
* added the ‘noatime’ option to reduce writes to the SSD
* changed the default disk scheduler from [cfq] to [noop] as seek times are identical for all sectors on the SSD
* forced the ‘swappiness’ to 1 instead of the default value of 60 to reduce Linux’s aggressiveness for swapping to the minimum

That’s all folks!

I wrote this guide in a hurry, so I have undoubtedly made mistakes. Please report any errors or broken bits in the comments below.

If you get stuck, try reading this forum thread from around page 7 onwards. It’s where I helped get this machine configured with a few other people when the box appeared on the market in mid September.

Have fun!

Join the conversation

75 Comments

  1. Couldn’t use a USB thumb drive, had to install the OS from a CD. Now I am unable to login to safe mode. Username/Password I set do not work. What are the defaults?

  2. Hello

    Thanks for the guide.
    I can’t get download the network driver it says Error 404 – Not Found

    For the username/password try using xbmc and xbmc

  3. Hey simon i just wanna make you aware of

    $ sudo nano /etc/network/interface

    should be

    $ sudo nano /etc/network/interfaces

  4. For anyone who finds they can’t boot from a USB memory stick, if you have more than one device just try another one and you should find one of them will work. Plus don’t forget to make the USB memory stick bootable in the BIOS!

  5. Anyone else having some problems with stability after this guide? Sometimes the box will freeze if i Navigave quickly between screeens.

    Other than that, I must say it is a good guide, but demanding (for a noob like me). Hopefully the next release of XBMC/Ubuntu will include most of the drivers;)

    Any tips to a link where I can get the wireless driver to work?

    Thanks

  6. Hi Thomas, I added a wireless networking section now.

    I didn’t see the freezing problem so far on this machine. Are you using the vanilla XBMC Dharma Beta 2 Live install?

    Cheers,
    Simon

  7. hi

    me too, i have a problem with stability, but after the guide xmbc worked very well…
    not anymore,xmbc freeze in video-interface but the terminal is ok, and the another program too
    i thing that a up-adate has modfified de grub.cfg, it’s possible?
    my grub.cfg is (sudo nano /boot/grub/grub.cfg)

    #
    # DO NOT EDIT THIS FILE
    #
    # It is automatically generated by /usr/sbin/grub-mkconfig using templates
    # from /etc/grub.d and settings from /etc/default/grub
    #

    ### BEGIN /etc/grub.d/00_header ###
    if [ -s $prefix/grubenv ]; then
    load_env
    fi
    set default=”0″
    if [ ${prev_saved_entry} ]; then
    set saved_entry=${prev_saved_entry}
    save_env saved_entry
    set prev_saved_entry=
    save_env prev_saved_entry
    set boot_once=true
    fi

    thanks for your help

  8. I followed your guide with all of your links.. The freezing only occurs when I play a HD movie, and i suddenly start to navigate the XMBC menu without stopping the movie. I then have to restart “xbmclive restart”, and it comes back up.

    The crash log complains about something with the VDPAU i think. It is not a big problem. I just have to remember to press stop before I start navigating.

    I won’t be doing a lot more changes for now. The machine works great, and the next xbmc might appear in the near future.

    Thank you for the wireless part

  9. Gohy & Thomas,

    Try turning on the debug feature in XBMC. I think it’s somewhere in the System settings.
    Then after you experience something freezing, look at the debug info that has been logged.

    Cheers,
    Simon

  10. Just installed the Beta 3. the ION drivers are there without having to do anything!!:)

    The only thing I have to do is installing the network card, and the trim for SSD..

  11. Thanks Thomas. Hopefully the final XBMC Dharma release will have the network driver included!

    I considered installing beta 3, but with beta 2 I have everything I need so didn’t want to face the pain of installing + configuring XBMC all over again 🙂

  12. Hi Simon
    Thanks a lot for your instructions.
    i am using a minimal install of ubuntu 10.04. sound over hdmi works perfect in xbmc,
    but i am still trying to get the sound working in desktop ubuntu.
    did you ever install the desktop ubuntu and succeeded in getting the sound to work?

    cheers Rocket

  13. Hello,

    First of all thank you for creating this guide. It was very helpfull while installing xbmc dharma 4 on ubuntu.
    I was just wondering what kind of performance you are getting out of your setup.

    I have been unable to play 1080p content fluently over the wired network. Hardware acceleration is enabled
    and i have installed the latest nvidia drivers. But i still get choppy playback while playing 1080p mkv files.

    Before installing Ubuntu i used Windows 7 as my operating. The performance in Windows was better but still
    unacceptable. Are you also having problems streaming 1080p content?

    I have the same setup as described in this article. Except for the fact that i am using 1gb of ram at the moment.
    The system never seems to use more then 650 – 700mb at full load.

    Thank you for your time.

  14. Hello Simon,

    I have upgraded to 2GB’s of RAM (the 1GB module was a temporary solution). I saw a slight performance increase in XBMC but the videos still jitter every few seconds. For me this makes a 2,5 hour movie unwatchable.

    I have also switched back to windows 7 to see if the performance is any beter. The performance using Media Player Home Cinema is slightly better. But it is still impossible to play 1080p material fluently. I tried ffdshow, coreavc, divx and VLC but none of the codecs result in acceptable playback.
    Weirdly enough I am able to play 1080p flash video on youtube fullscreen without a problem (as long as there are no overlays).

    This makes me believe that the hardware itself is capable of playing 1080p content but that certain codecs just aren’t efficient enough (yet). For me this is a shame because thats where i bought the system for in the first place.

    Greetings,

    Richard

  15. Hi Richard,

    That’s a real pity. Did you downgrade the NVidia driver to version 256 from 260 as well as upgrading to 2GB RAM?

    I think you should get better performance using the Live version of XBMC that uses Linux.

    If you have the time, personally I would install the Live (Linux) version and ensure the NVidia driver is 256, or at least certainly not 260.

    If that doesn’t work then you could try asking the guys here:
    http://forum.xbmc.org/showthread.php?t=74974&page=40

    If you resolve the problem then it would be good to hear how. Personally I’ve watched HD 1080p content using XBMC Dharma Beta 2 Live on this hardware and not seen any jittery frames — seems pretty smooth to me.

    One question: where is the HD 1080p content that you are watching stored? Is it stored locally on the HTPC, or on a directly attached USB drive, or on a NAS? If the content is being streamed from a NAS across a network connection, are you using a wired or wireless network connection? If it is the latter, that could explain things.

    Cheers,
    Simon

  16. Hello Simon,

    The 1080p content is stored on a NAS which i access trough a 100Mbit network. I reach a constant speed of 90Mbit per second when copying a file over the network. Playing the same file locally results in the same playback issues.

    The reason i did not choose to install the live version of XBMC is because i want to use more then just XMBC. I will first try to downgrade the nvidia drivers, after that i will install the live version of XMBC.

    I will let you know how things workout.

    Greetings,

    Richard

  17. Hi Richard,

    OK, so it doesn’t seem like the network is the problem. Yes, I think when you downgrade to version 256 of the Nvidia driver this will hopefully improve things. Good luck.

    Cheers,
    Simon

  18. Hi,

    Thanks for this helpful guide.

    I am using Dharma b4 with the same kit as you, location of some of the files is slightly different, which made me think (a good thing).
    Any suggestions on Remotes that will work out of box that I can then program my harmony one with?

  19. Hi Woppyman,

    You’re welcome. I expect once the final Dharma release is available I will reinstall, so perhaps I will need to learn the new locations of files, although hopefully the final release will not require a lot of the work that Beta 2 here needed to make it work.

    I’m using this remote which is an MCE Remote so is fully compatible with XBMC and works ‘out of the box’: http://www.hauppauge.co.uk/site/products/data_mcremote.html

    The remote is fine and not too bad, so I would recommend it, in general. You can see bigger images of the remote here: http://breden.org.uk/2010/09/22/shuttle-xs35gt-the-ultimate-silent-media-center-htpc/

    One day, I think I too will get a Harmony remote to de-clutter and replace multiple remotes with one remote.

    Good luck.

    Simon

  20. Hi

    I’m thinking about buying an XS35 XV250D here in Taiwan (I dunno if that is the “GT” you guys have) which has a DVD-RW, a 500GB hard disk, and Atom510/ION 2. I’ve gone down the Linux road before many times, but never XBMC. I am excited that this unit has a 500GB disk, as I will use this as my (power sipping) torrent box, and will then output them directly to my 1080p 50″ plasma. I mostly watch 720p .mkv torrents. I am buying this to do an (massive) upgrade from my old Athalon XP3000 single core with an ATI 3450 AGP vidcard equipped shuttle (the old girl has prolly transferred 10TB over her life and I’ll miss her…but….).

    I’m not afraid of command line, but firmly believe “the click is mightier then the CLI”, so you guys seem to be having more than your share of serious problems to get this to work. I want a simple easy to use HTPC for my TV. I haven’t yet done my research on all the differing distros of XBMC, but am thinking you might be straying into the beta world a bit with what you are describing above. I prefer using Linux Mint over Ubuntu, but Ubuntu is OK.

    I’m hooked up here with the shuttle guys so they can BIOS me! The one I want will have a DVD so no USB shenanigans, and I will install direct to a HDD.

    So my questions are:

    Do I need to install Ubuntu first, then add XBMC?

    What version of Ubuntu if yes to the above?

    Is there any way to have a fully functioning setup that requires less initial tweaking (your long and extremely well done post above)?

    The $64,000 question: After going through this hellish process will it be a beautiful seamless stutter free experience to watch Pirated(TM) full BlueRay downloads (the mythical 20GB+ files I see available)…. while also downloading other stuff (on transmission/deluge), and maybe leaving firefox with 4-5 tabs open to adblock/flash blocked torrent sites?

    I’ve bee frustrated as heck with Asus as I really want their EB1501P (Atom 525/ION 2), but they’ve been dragging their pigu in getting it here to (their fracking HOME COUNTRY) Taiwan. I’m looking at the Acer R3700 which as the same specs as the Asus, but no ODD. I think this extra ooomph in the Atom 525 CPU should do what I want with no problems, but I really worry about the Shuttle’s 510. The shuttle guys (REAL company men) told me a few hours ago explicitly this unit WILL NOT run 1080p on my 50″ plasma(strangely, with the caveat: unless my TV is under 37″) smoothly. My Chinese isn’t good enough to ask them about full blueray vs 1080p blueray rips etc.

    You seem to be one of the few I can find who are actually living with one of these devices in the same manner as I will. The poster “Simon”‘s problems probably stem from his network streaming, but he has issues nonetheless. I’ve been suffering with my old rig for so long I’m willing to wait for Asus to get their bienbien together to get Taiwan the EB1501P ( http://www.asus.com/product.aspx?P_ID=TjrpGyB7Ohm367YS ) which seems to be my ideal unit. My old shuttle has done such a great job I’d be happy to do a new super low power fanless unit IF you think it is able to provide a stutter-free output for any clean HD source files I can throw at it, with those few other processes running that I mentioned.

    Thanks again for the effort getting this online in such a nice format.

  21. Hi,

    thanks for the instructions to enable usb wakeup, works perfectly!
    However, I have a question to all xs35gt owners: Do you see bios messages using hdmi only? My analogue vga port works just fine, but hdmi only woks when booting has finished, e.g. showing xbmc ui or the desktop. I wonder if something is wrong with my device since I cannot access bios settings while it is connected to my TV using hdmi only. Can anyone test this for me?

    Greetings,
    Jens

  22. Hello Simon,

    First of all, sorry for my late response. I finally have a setup which works for me. I’m using XBMC Dharma Beta 4 running on Ubuntu 10.10 (Maverick). Ubuntu 10.10 supports all hardware of the XS35GT out of the box. Some manual tweaks are needed though, these are explained in the following post on the XBMC forum:

    http://forum.xbmc.org/showpost.php?p=612322&postcount=203

    Downgrading the NVidia drivers did not seem to fix my problem. I noticed that a changelog on nvidia.com specified that they fixed the memory problem in there latest 260.x drivers. (I was unable to find the URL at this time).

    Thank your for your time and assistance.

    Greetings,

    Richard

    P.S:

    For users with an iPad i would recommend XBMC Commander (http://xbmc-commander.com/index.php). I just installed it today and it totally rocks :).

  23. Hi wekya,

    In answer to your questions:
    1. The ‘Live’ version of XBMC includes the Ubuntu Linux distro & the XBMC application and is available here: http://xbmc.org/download/
    2. From what I hear, the XBMC Dharma beta 4 version should be easier to install than the earlier beta 2 version that I installed. You can read more on this thread near the last pages: http://forum.xbmc.org/showthread.php?t=74974
    3. Regarding whether it will stutter, I can’t answer your question but it seems to be fine with my 32″ TV.

    I suggest you might want to create an XBMC account so you can ask users on the thread above if they see any video stutter problems with larger TV sizes like the one you have.

    Also, be careful to check whether the Asus EB1501P has a fan, as the product webpage fails to mention if it uses a fan, so it’s probably safe to assume that it does use a fan. Fans create noise and are best avoided for an HTPC where you want to hear the movie and not the fan.

    Cheers,
    Simon

  24. Hi Jens,

    Glad the USB wakeup stuff worked. Regarding not being able to see the BIOS messages when hooked up to your TV, it sounds like it could be a problem of screen resolution.

    Cheers,
    Simon

  25. Hi Richard,

    Glad that you had success using the latest fixed 260.x NVidia driver. Sounds like beta 4 is a lot less work than beta 2 was 🙂
    I thought I’d wait until the final Dharma release was available before going through the whole install drama again 🙂

    Cheers,
    Simon

  26. Hi Simon,

    Do you know if connecting to NFS shares on a NAS is supported out of the box? I’m looking at getting an XS350 soon so your post will be very helpful!

    Thanks,
    Adrian

  27. Hi Adrian,

    I can’t see a way within XBMC to specify an NFS share directly. The solution seems to be to mount the NFS share directly from the HTPC’s operating system (e.g. Linux), and then simply to reference the NFS share from within XBMC.

    Here’s a couple of links that may be of interest:
    http://forum.xbmc.org/showthread.php?t=69039&highlight=NFS
    http://forum.xbmc.org/showthread.php?t=81029&highlight=NFS
    http://dbzer0.com/the-penguin-migration/setup-a-home-media-fileshare-download-system/setting-up-nfs-shares

    Hope it helps.

    Cheers,
    Simon

  28. Hi!
    Thanks again, Simon, for your help.

    Simon, I’m worried about the disappeared BIOS version 1.09. Have you had any problem that you suspect could be caused by BIOS?

    The drivers “rtl8192se_linux_2.6.0017.0705.2010” for RTL8192SE now are not available, I just can find “2.6.0018.1025.2010” at realtek site. The new drivers compile but “make install” fails on default XBMC Live Beta 2, it complains about missing rules to make “kernel/bounds.c” .

    Maybe now that there are newer releases of XBMC it’s easier to install in someone like “XBMC DHARMA RC1”. Has anybody done it? Can you share a list of the configuration changes needed to make it work on RC1 nowadays?

  29. Sorry, Simon, forget last post pending of moderation. I obviously missed installing some packages for a correct compilation. I’ll post again with advances. Best regards,

  30. Hi Zoquero,

    So far, I’ve not noticed any BIOS-related problems with BIOS 1.09.
    It sounds like you managed to install the required missing packages now so I expect you have it working now.

    Cheers,
    Simon

  31. Hi Simon, thanks for your reply. I also tried using a standard PC DVI monitor with an HDMI-to-DVI adapter. The result was the same, I could see the desktop just as it should be, but the booting sequence itself including BIOS remained “black”, and was only visible by using the VGA connector.
    You don’t seem to have this problem though, if I understand you correctly. I suppose something is wrong with my device and I already sent it back to my dealer.
    Thanks for your help,
    Jens

  32. Hi again, Simon:
    I’m still following the steps but this problem (“no rule to make target kernel/bounds.c”) during “make install” was not a lack of packages itself (at least not only), it’s a problem about sudo’s environment. “sudo make install” didn’t worked , I did “sudo su” and then I ran on that root shell “make; make install”. I’ll post any advance, if it helps anybody.
    Best regards!

  33. I’m here again 😉
    after rebooting I have no “wlan0” interface (“iwconfig” and “ifconfig -a”). I tried inserting the module by hand but it doesn’t work :

    $ insmod /lib/modules/2.6.32-24-generic/kernel/drivers/net/wireless/r8192se_pci.ko
    insmod: error inserting ‘/lib/modules/2.6.32-24-generic/kernel/drivers/net/wireless/r8192se_pci.ko’: -1 Unknown symbol in module

    Some ideas:
    * Maybe “make install” fails without complaining and that “ko file” is not the right one,
    * or maybe the present version rtl8192se_linux_2.6.0018.1025.2010 of the drivers on
    http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=48&PFid=48&Level=5&Conn=4&DownTypeID=3&GetDown=false&Downloads=true for RTL8192SE doesn’t work fine
    * or maybe it’s not RTL8192SE (I don’t know how to see which is the version of the chip)

    Have you still got the driver’s source that you used? and maybe do you remember if you had to do any other change, like changing some modprobe file …

    Thanks in advance!

  34. Hi Angel,

    I assume you already downloaded and installed the 1.09 BIOS?

    It looks like the version you have of the RTL8192SE source is slightly newer than the one I listed above. I copied the wireless instructions from elsewhere, so I don’t have the wireless sources. I used the wired network driver.

    I suggest you join the XBMC forum and ask others using wireless here, as someone there complains of slightly similar problems with the wifi driver. Also, did you try becoming root user before issuing the ‘make install’ command?

    Cheers,
    Simon

  35. Hi, Simon:
    Yes, certainly I’d better go to that forum and ask about how to make this interface work.

    But before, it would be great to launch you a last question, just to know it all that’s related to BIOS is ok on my box: Yes, I have upgraded BIOS to 1.09 following your instructions. And following your chapter “Change BIOS settings” you explain: “…enable the WLAN to be turned on permanently…” . Once my BIOS is upgraded I just have one option on BIOS that reminds me to it, it’s on it’s 3rd tab “Advanced”, the option is called “Wireless Power Control”, it’s default value was “Switch by AP” and I changed it to “Always On”. Did you mean it? Or maybe I’m missing something. I can’t see any other property regarding wireless.

    Once my system is booted (well, now it’s not “XBMC Dharma beta 2”, I’m already testing with “XBMC Dharma RC1”) lspci shows like this:

    00:00.0 Host bridge: Intel Corporation N10 Family DMI Bridge (rev 02)
    00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 02)
    00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 02)
    00:1c.1 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 2 (rev 02)
    00:1c.3 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 4 (rev 02)
    00:1d.0 USB Controller: Intel Corporation N10/ICH7 Family USB UHCI Controller #1 (rev 02)
    00:1d.1 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 02)
    00:1d.2 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 (rev 02)
    00:1d.3 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 02)
    00:1d.7 USB Controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 02)
    00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
    00:1f.0 ISA bridge: Intel Corporation NM10 Family LPC Controller (rev 02)
    00:1f.2 SATA controller: Intel Corporation N10/ICH7 Family SATA AHCI Controller (rev 02)
    00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 02)
    01:00.0 VGA compatible controller: nVidia Corporation Device 0a6f (rev a2)
    01:00.1 Audio device: nVidia Corporation High Definition Audio Controller (rev a1)
    02:00.0 System peripheral: JMicron Technology Corp. SD/MMC Host Controller (rev 80)
    02:00.2 SD Host controller: JMicron Technology Corp. Standard SD Host Controller (rev 80)
    02:00.3 System peripheral: JMicron Technology Corp. MS Host Controller (rev 80)
    02:00.5 Ethernet controller: JMicron Technology Corp. JMC260 PCI Express Fast Ethernet Controller (rev 02)
    03:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device 8171 (rev 10)

    I suppose that the wired NIC and the wireless NIC are respectively that last two devices. Does it show like your lspci output more or less?

    Simon, thanks a lot, really. If I finaly make it work I will come back here and post it if it helps anybody else. I prefer asking my wife to be patient and tell her not to have fun with this HTPC for one week more better than surrending and installing a M$ Win 😉

  36. Hi Angel,

    That’s good news. So it seems it was fixed by a new BIOS? Which BIOS version is it – I presume 1.10 ?
    Hopefully Shuttle will make this new BIOS available to the public without need for emailing them.

    Cheers,
    Simon

  37. Hi,
    It’s “BIOS VERSION = XS3_SHB” and “EC VERSION = 1.02”. It still isn’t a new BIOS, but it enables the needed “Wireless Power Control”. For some reason the only BIOS that Shuttle publishes nowadays is the initial 1.08.

    I haven’t still finished setting up my box, few time, still trying to make HDMI work on XBMC Live RC2. I’m still reading mails on XBMC maillist about ALSA.

    Best regards,

  38. Hi Angel,

    Thanks for the info on the BIOS that Shuttle emailed you.

    It’s strange that the original ‘new’ BIOS 1.09 that Shuttle posted on its BIOS page a while back worked with XBMC Dharma beta 2 Live, but not with XBMC Dharma RC2 Live that you are using.

    ALSA was a pain for me to get working too. Basically the mixer audio channels are muted by default and so you need to unmute them, and for that you need to get ALSA installed. Even when I had unmuted the channels using the ALSA mixer app, I still heard no sound and that was because my TV was set to the wrong ‘default’ audio output setting: once I set it to ‘Digital’ instead of ‘default’, then suddenly the sound was working. Good luck!

    Cheers,
    Simon

  39. Hi!
    Success! I have installed latest (fresh, it’s from yesterday) XBMC 10.0 and read a little about ALSA and now audio is working. You don’t need to recompile ALSA. More over, Ubuntu packagers say that alsaconf is not the way, they doesn’t pack it on alsa-utils. This all was in the mails you sent mainly with “ezechiel1917” and “heldchen” :

    1) Identify your device with “aplay -l”:
    **** List of PLAYBACK Hardware Devices ****
    card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
    Subdevices: 0/1
    Subdevice #0: subdevice #0
    card 1: NVidia [HDA NVidia], device 3: NVIDIA HDMI [NVIDIA HDMI]
    Subdevices: 1/1
    Subdevice #0: subdevice #0

    here my device is “1,0” . “1” because of “card 1” and “3” because of “device 3” for “NVIDIA HDMI”

    2) unmute as known:
    /usr/bin/amixer -q -c 1 sset ‘IEC958’,0 unmute

    As you see there’s nothing new, simply I didn’t did it right 😉

    Now I cannot hear the clicks on the menus but I remember somebody solved an issue like this on XBMC forums … I’ll look for it tomorrow, today it has been slashdotted.

    And about BIOS: maybe I didn’t explained it well, I’m sure that BIOS 1.09 (the one you publish) is working. The BIOS that Shuttle publishes is still the original 1.08 but if you are a little tiresome like me they give you other BIOS (that unnamed version) that allows you to enable WIFI without having to boot on M$ Windows. It’s a mistery why aren’t they publishing now that 1.09. Surely it’s not a problem because yours is working fine.

    If I find a while I’ll write post on a blog in Spanish about it all and I’ll post a link here, maybe it helps any one.

    Best regards from Spain!
    / Angel

  40. sorry, I said
    here my device is “1,0? . “1? because of “card 1? and “3? because of “device 3? for “NVIDIA HDMI”
    and it was
    here my device is “1,3? . “1? because of “card 1? and “3? because of “device 3? for “NVIDIA HDMI”

    and also as you said above:

    Configure HDMI audio
    Within the System->Audio menu ensure you have the following settings for HDMI audio to work:

    Audio Output: HDMI
    Audio Output Device: Custom
    Custom Audio Device: plughw:1,3
    Passthrough Audio Device: Custom
    Custom Passthrough Device: plughw:1,3

  41. Hi Angel,

    I’m glad you got it working now with XBMC Dharma Live (XBMC version 10.0).

    Now you can enjoy your HTPC just in time for Christmas! 🙂

    Send me your Spanish blog link when you find the time to write it. Thanks.

    Enjoy,
    Simon

  42. Hey Angel, could you post a little more specific how you got HDMI audio to work in with Dharma Live.
    I followed the instructions to the best of my knowledge, but all I got was loud white noise (static) when playing content.

  43. Great post!
    I have myself an XS35GT with an OCZ Vertex2 128 Gb SSD and used your advices to improve its use (I had done aprox the same on my eeePC a couple of years ago but forgot completey).
    I am running Kubuntu 10.10 and using a VGA Asus 20″ display on 1680×1050.
    A certain improvement was shown when tested with a 1920×1080 screen, HDMI connection, which confirmed ION2 supporting the CPU with ths kind of output. Next step? Purchase a 24″ HDMI 1920×1080 screen, of course.

  44. Looks like I need some help. I’m not the most fluent in linux, but I can get by. Anyway, here’s the deal:

    I successfully installed XBMC Live 10.0 from a USB drive to another USB drive. Right now I’m temporarily connected to a display via VGA and didn’t have the black screen issues.

    Now I’m in the process of trying to add the ethernet driver via your directions. Here’s where it’s failing for me:

    $ sudo mkdir -p /mnt/usbstick
    $ sudo mount /dev/sdb1 /mnt/usbstick
    $ cd /lib/modules/2.6.32-24-generic/kernel/drivers/net/
    $ sudo cp /mnt/usbstick/jme.ko /lib/modules/2.6.32-24-generic/kernel/drivers/net/

    The filename extracted from the zip file in your link for the ethernet driver is jme.ko.1.0.6.1-linux-2.6.32-24 for me. Am I supposed to use the full filename (jme.ko.1.0.6.1-linux-2.6.32-24), rename the driver, or am I doing something wrong? I’m getting a no such source or directory after the command.

    Thanks for the help.

  45. For what it’s worth, I had to download and recompile. Ethernet is rollin’. Now to configure things…

  46. Hi Craig,

    Glad you sorted the problem out. Yes, the pre-compiled ethernet driver I provided as a convenience only worked with the same Linux kernel version that came within the ‘XBMC Dharma beta 2 Live’ version. Any later XBMC version, like the one you’re using, will likely use a different Linux kernel version, and so the source code for the ethernet driver needs to be re-compiled to ensure it works.

    Cheers,
    Simon

  47. Hi

    Thanks for this great walkthrough… Unfortunately, with the latest XBMC live Dharma, it doesn’t boot properly. I get
    error: unable to open display
    FEH.py: cannot connect to X server

    I’m a complete noob as far as it comes to linux (except that i do know what an X server is 🙂 and that i know something about the filesystems), but as far as the commands in the terminal I grew up with DOS.

    As far as http://forum.xbmc.org/showthread.php?t=62458 describes it should have something to do with the NVIDIA-drivers, so I’ll see for that.

    If you installed XBMC live completely with all drivers and so on, could you post an driveimageXML-image?

    rgrds
    Bruno

  48. Hi.

    Thanks for this post. I do not have XBMC intalled in my Shuttle but I was able to run yavdr aplying some proposals read here.

    Do you know any way to start the Shuttle by itself from a S3 (suspend to ram) state? It would be great to do a programmed recording or to start it automatically every morning.

    Thanks.
    jb

  49. Hi jb,

    The Shuttle can restart from S3 standby state by a remote control press as far as I know, although it was buggy with the XBMC beta version installed here, but is probably working now that XBMC Dharma final release is available.

    However, it sounds like you want to start it via some kind of timer event, and I don’t think that’s possible.

    yaVDR looks interesting, but as the XS35GT has no TV tuner built-in, I presume you are using some kind of TV tuner dongle to get PVR functionality – which one?

    Cheers,
    Simon

  50. Thanks for your answer Simon.

    I have an usb tv dual tuner connected. It is the USB HAUPPAUGE WINTV NOVA-TD-HD. You can see it among others linux compatible tuners in:

    http://linuxtv.org/wiki/index.php/DVB-T_USB_Devices

    I want to use the Shuttle as a tv tuner in order to record some films and series. In fact with this dual tuner is possible to record even 4 channels at a time (when they are included in the two same muxes that the dual tuner is connected).
    VDR is a flexible tool because it allows to search automatically the name of your programs or series on the epg of the channels, and it set by itself the hour for recordings. So when it has been configured, you do not need to worry when a film or serie is emited, vdr record it whitout human intervention.
    My dream is to use the power and flexibility of vdr with the great interface of XBMC, and it is possible thanks to the boys of yavdr. There are a plugin to vdr that change its interface for XBMC.

    I am a linux user (basic user, not advanced), so your tuto has been very usefull for me to configure the network drivers and HDMI sound, but in order to record automatically diferent events I need to let the Shuttle allways on, and I do not like it. It would be wonderfull if the bios was able to awake the sistem to do a recording when the Shuttle is off.

    I have tried some web pages but nothing worked. It seems that it should work, but I did not have any luck.

    Thanks again and I am sorry for my english.
    jb

  51. Hi jb,

    In S3 state (suspend to RAM, sleep, standby mode etc), it is my understanding that a ‘wake up event’, like a remote control press, keyboard press etc, can be used to wake up the computer, and I have seen this working on the XS35GT.

    The USB port that will be used to wake up the computer needs to have power supplied to it in order for it to work. This is enabled by adding the following lines to the /etc/rc.local file:
    # Enable USB0 port so it has power to respond to MCE remote wakeup: USB0 is the port next to the
    # capped VGA port
    echo USB0 > /proc/acpi/wakeup

    Other values can be used to enable the other USB ports if required – see the installation details above.

    So if your USB TV tuner could send some kind of event to the XS35GT when a programme needs to be recorded, this could wake up the XS35GT and recording could begin via the yaDVR software. So perhaps you could start by looking if the USB TV tuner device can send a signal upon a timer event being triggered.

    I would be interested to hear if you have any success with this.

    Cheers,
    Simon

  52. Hi Simon.

    I do not think the tuner is able to send this kind of signal because in order to do it the tuner would need to know the actual time data and the future event time. I will find out if it is possible but in the guidelines I have read of yavdr there is nothing written about it.

    It seems that there are a script that allows activate the capability to awake the computer from S3, but I have a little bit of fear because I do not understand if that can cause some kind of fail in Bios.

    The page is:
    http://www.linuxtv.org/vdrwiki/index.php/Nvram_wakeup
    http://www.vdr-wiki.de/wiki/index.php/NVRAM_WakeUp (this page is in german)

    I need some time to try and confirm if the actions followed in those pages are safe.

    Regards
    jb

  53. Hi jb,

    I would be very interested to hear what you discover about this, as this would add TV/DVR capabilities to the XS35GT (and other computers) running XBMC. Thanks.

    Cheers,
    Simon

  54. I am back, as promised.

    I have achieved Shuttle to start-up by itself when a recording is programmed. I am not an advanced user of linux, so my explanations can not be too much technicals.

    In yavdr, I had to modify one of the configuration files:
    /etc/vdr/vdr-addon-acpiwakeup.conf

    an modify the parameter:
    ACPI_ENABLED=yes

    I had to modify the way for shutting down the Shuttle. In the interface web for configuring yavdr, I had to choose “Suspend to Ram”.

    After that, when a recording is scheduled as an event in yavdr, if you shutdown the Shuttle, it will wake-up at the scheduled hour, and when the recording is finished, he goes again to S3 (suspend to ram) state…. till the next event.

    In order to schedule the automatic wake-up, I think that this script is launched before the shutdown:
    /usr/share/vdr/shutdown-hooks/S90.acpiwakeup

    As I do not know how to attach a file, I do a copy-paste from the script. I hope it is usefull.

    I you need more information, just ask.

    Regards
    jb

    #!/bin/sh
    #
    # VDR shutdown hook for ACPI – Tobias Grimm
    # ————————–
    #
    # This shutdown hook sets the wakeup time for the next timer using
    # ACPI.
    #

    if [ “`basename $0`” != “testwakeup” ] ; then
    # read arguments for acpi-wakeup from conf-file
    . /etc/vdr/vdr-addon-acpiwakeup.conf
    WAKEUP_FILE=”/var/cache/vdr/acpiwakeup.time”

    # take care of UTC setting
    if [ -f /etc/default/rcS ]; then
    UTC=$(egrep “^[^#]*UTC=” /etc/default/rcS | tail -n1 | cut -d= -f2)
    fi

    LOG=”logger -t vdr-addon-acpiwakeup ”
    else
    UTC=$UTC
    WAKEUP_FILE=$WAKEUP_FILE
    LOG=”nop”
    fi

    nop()
    {
    # No Operation
    echo -n “”
    }

    if [ “$UTC” = “yes” ]; then
    TIME_FUNCTION=”gmtime”
    else
    TIME_FUNCTION=”localtime”
    fi

    # Defaults:
    [ -z “$ACPI_ENABLED” ] && export ACPI_ENABLED=”yes”
    [ -z “$ACPI_REGULAR_DAYS” ] && export ACPI_REGULAR_DAYS=”0″
    [ -z “$ACPI_REGULAR_TIME” ] && export ACPI_REGULAR_TIME=”00:00″
    [ -z “$ACPI_START_AHEAD” ] && export ACPI_START_AHEAD=”5″

    [ -z “$ACPI_ALARM” ] && export ACPI_ALARM=”/proc/acpi/alarm”
    [ -z “$WAKEALARM” ] && export WAKEALARM=”/sys/class/rtc/rtc0/wakealarm”

    TIMER=$1

    TimeToString()
    {
    echo $(perl -e “(\$s,\$mi,\$h,\$d,\$mo,\$y,\$t,\$t,\$t)=\
    $TIME_FUNCTION($1); printf(\”%04d-%02d-%02d %02d:%02d:%02d\”,\
    \$y+1900,\$mo+1,\$d,\$h,\$mi,\$s);”)
    }

    AcpiError()
    {
    $LOG “No writeable $ACPI_ALARM or $WAKEALARM found. ACPI needed!!!”
    echo “ABORT_MESSAGE=\”ACPI not installed, shutdown aborted!\””
    exit 1
    }

    ResetWakeupTimeKernelLte2_6_22()
    {
    # I don’t really now right now, how to disable
    # the wakeup, so just set it to 00:00:01 !!!!
    SetWakeupTimeKernelLte2_6_22 \
    “`date -d ’00:00:01′ +’%s’ | sed ‘s/_/ /’`”
    return $?
    }

    SetWakeupTimeKernelLte2_6_22()
    {
    # convert time_t to YYYY-MM-DD HH:MM:SS
    TIME_TO_SET=`TimeToString $1`

    if [ -w $ACPI_ALARM ]; then
    $LOG “Writing to $ACPI_ALARM”
    echo “$TIME_TO_SET” >$ACPI_ALARM
    # Set it once more – some boards require this!
    echo “$TIME_TO_SET” >$ACPI_ALARM
    return $?
    else
    return 1
    fi
    }

    ResetWakeupTimeKernelGte2_6_23()
    {
    if [ -w $WAKEALARM ]; then
    $LOG “Writing to $WAKEALARM”
    echo 0 >$WAKEALARM
    return $?
    else
    return 1
    fi
    }

    SetWakeupTimeKernelGte2_6_23()
    {
    if [ -w $WAKEALARM ]; then
    if ResetWakeupTimeKernelGte2_6_23 ; then
    $LOG “Writing to $WAKEALARM”
    echo “$1” >$WAKEALARM
    return $?
    fi
    fi
    return 1
    }

    ResetWakeupTime()
    {
    $LOG “Resetting ACPI alarm time”
    ResetWakeupTimeKernelLte2_6_22 || \
    ResetWakeupTimeKernelGte2_6_23 || \
    AcpiError
    }

    SetWakeupTime()
    {
    $LOG “Setting ACPI alarm time to: `TimeToString $1`”
    SetWakeupTimeKernelLte2_6_22 “$1” || \
    SetWakeupTimeKernelGte2_6_23 “$1” || \
    AcpiError

    # remember wakeup time for stop script
    echo `TimeToString $1` >$WAKEUP_FILE
    }

    IsRegularDayOfWeek()
    {
    local day
    for day in $ACPI_REGULAR_DAYS ; do
    if [ “$day” = “`date -d \”@$1\” +%u`” ] ; then
    return 0
    fi
    done
    return 1
    }

    if [ $ACPI_ENABLED = “yes” ]; then
    # check if we should wake up before the next timer:
    if [ “$ACPI_REGULAR_DAYS” != “0” ]; then
    REGULAR_TIMER=$(date -d “$ACPI_REGULAR_TIME” +%s)
    if [ $REGULAR_TIMER -lt $(date +%s) ] ; then
    REGULAR_TIMER=$(($REGULAR_TIMER + 24 * 60 * 60))
    fi
    while ! IsRegularDayOfWeek $REGULAR_TIMER ; do
    REGULAR_TIMER=$(($REGULAR_TIMER + 24 * 60 * 60))
    done

    if [ $TIMER -eq 0 ] || [ $TIMER -gt 0 -a $REGULAR_TIMER -lt $TIMER ] ; then
    TIMER=$REGULAR_TIMER
    fi
    fi
    if [ $TIMER -gt 0 ]; then
    MIN_START_AHEAD=$((`date +%s` + 60 * $ACPI_START_AHEAD))
    if [ $MIN_START_AHEAD -gt $TIMER ]; then
    $LOG “Can not set wakeup time less than $ACPI_START_AHEAD minutes ahead.”
    echo “ABORT_MESSAGE=\”Wakeup in less than $ACPI_START_AHEAD minutes, aborting!\””
    exit 1
    fi

    # adjust wakeup time by ACPI_START_AHEAD
    TIMER=$(($TIMER – 60 * $ACPI_START_AHEAD))
    fi

    if [ $TIMER -eq 0 ]; then
    ResetWakeupTime
    else
    SetWakeupTime “$TIMER”
    fi

    else
    $LOG “ACPIWakeup functionality is disabled”
    fi

  55. Hi jb,

    That’s good that there are no more issues after that fix.
    So now you have a PVR based around the XS35GT, XBMC & yaVDR plus the USB HAUPPAUGE WINTV NOVA-TD-HD.
    Do you plan to write a blog post of how you managed to set it all up, and how it operates?
    I will consider this solution for a future project, so thanks for mentioning it.

    Cheers,
    Simon

  56. Hi Simon.

    Yes I have in mind to write a “how to”, but my main problem is time, It will be a long term task. Anyway, I have written all my issues and procedures here (it is in Spanish, but can be easily translated with your internet browser).:

    http://vdr-m7x0.foroactivo.com.es/t1091-yavdr-en-shuttle-xs35gt-primer-problemilla-con-la-red-y-otros#15151
    In this forum my nick is jb.

    And when I finish to adjust all parameters I will prepare the “how to” a little more organized, both in Spanish in the forum before mentioned and in “my english” in the german forum of yavdr:

    http://www.vdr-portal.de/board/board.php?boardid=96
    In this forum my nick is jbjbjb.

    If you want to read the information in the Spanish forum, translated with your internet browser, I will be pleased to answer and improve the explanations that you require in that thread or in the international forum in the same portal:
    http://vdr-m7x0.foroactivo.com.es/f19-international-forum

    Taken advantage I am writting this, I can tell you an additional issue with the network driver. It launch a lot of messages in syslog: [eth0: UDP Checksum error].
    It seems that is a bug of the driver, because network works perfectly. To solve this problem you can see these posts:
    http://vortexbox.org/forum/help/shuttle-xs35-lan-driver-issue/#p9876
    http://fedoraforum.org/forum/showthread.php?p=1402933

    By the way, the new drivers posted two days ago(1.0.7.1 version), do not solve the issue. I sent a mail to jMicron, telling them that, but may be convenient they receive the notice from more people.

    Regards.
    jb

  57. Hi again.

    I fogot to tell you that I changed my dual tuner usb hauppauge wintv for 3 tuners usb pctv nanoStick. The pctv tunners work better for me because from time to time the hauppauge produces little lost of signal. Pctv are more expensive than hauppauge dual but for me they are a better solution.

    Regards.
    jb

  58. I have everything running great with the latest release but when I click on an MKV file nothing happens. Any ideas?

  59. Hi again.
    I am sorry for my meddling.

    I just have had the answer for my mail to Jmicron (network card). The drivers they have sent me are not yet in their web page, but they have solved two problems the drivers had in Shuttle, the log indicating problems with network and the correct waking-up from S3 state.

    You can download from:

    http://www.vdr-portal.de/board/attachment.php?attachmentid=27465

    Afterwards you have to do: make install to install in your system (as root).

    Regards.
    jb

  60. Many thanks for the guide, the BIOS, etc.

    It seems that “sudo alsactl store 1” (1 is the card number) would save the unmute settings. Therefore, editing /etc/rc.local might not be necessary.

    Cheers!

Leave a comment

Your email address will not be published. Required fields are marked *