XBMC on the O2 Joggler with touchscreen support

Equipment Required :

  • O2 Joggler - £50 on offer last month
  • 4GB or more USB stick
  • First off we must remember the O2 joggler uses the 'Poulsbo' or US15W chipset from Intel which is basically very badly supported software-wise in linux. We need to use the Intel proprietary IEGD driver to get any kind of openGL acceleration. Because of this, and the fact I did not have enough time to make it work nicely in Arch Linux nor Meego, I went for a prebuilt Ubuntu image for the joggler.

    I used disca's 1.3 build which requires a 4GB USB stick. Follow the instructions here to install it to your usb stick using dd or other.

    Open the joggler to fit your USB flash drive (or very cheap SSD!)
    This is not essential, however it leaves an empty USB port (to use with a USB sound card!) and makes the device look much neater. However you may want to leave that till the last minute. Also do not do this if you love Wifi. If you want wifi, buy a USB hub.

    Open the joggler - this is actually really easy - just carefully take away the sticker on the bottom of the device. Unscrew the 4 small screws, and just pull. There are plastic 'clips' on either side and two on the top. This should not be too hard to do. Here is a youtube video if you are still worried.

    Remove the Wifi card. This required me to take off two bits of tape, and pull away at the foam holding it in place a little. Then just place your USB stick inside. After all is done, close it up and boot. Bootup is actually faster than the original openpeak software! Once booted, an SSH server is in place (user: joggler, password: joggler) so I would ignore the onscreen keyboard and everything else.

    Installing XBMC
    I chose to go with an SVN build of XBMC, but feel free to get a stable build, there should be no difference. I shamelessely took the instructions from this blog. I'll make it quicker and up to date for Ubuntu 9.10 (karmic koala)

    Add the following repository to /etc/apt/sources.list:

    deb http://ppa.launchpad.net/team-xbmc-svn/ppa/ubuntu karmic main
    deb-src http://ppa.launchpad.net/team-xbmc-svn/ppa/ubuntu karmic main

    Import the key from the PPA, update our local database and install xbmc.

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 64234534
    sudo apt-get update
    sudo apt-get install xbmc

    We just need to launch XBMC once, and then set it to windowed mode using a USB keyboard or synergy - Settings -> System -> Video Output -> Resolution.

    Installing and configuring openbox
    You'll need a window manager in order to be able to start XBMC in non fullscreen mode to get the mouse emulating touchscreen to work. This is a little annoying but it's the easiest workaround (and only) I could find. Openbox was used because I'm (a little) familiar with it, otherwise this can work in gnome or anything else you want as long as you manage to take the decors and borders off completely.

    sudo apt-get install openbox
    mkdir ~/.config/openbox
    cp /etc/xdg/openbox/rc.xml ~/.config/openbox
    vi ~/.config/openbox/rc.xml

    You'll want to remove everything between the "applications" xml tags and insert something like this.

    <applications>
            <application name="*">
                    <decor>no</decor>
                    <shade>no</shade>
                    <maximized>true</maximized>
            </application>
    </applications>
    

    vi ~/.config/openbox/autostart.sh

    You'll want to use something like this to autostart XBMC. I also autostart a synergy client so I can use the mouse and keyboard from my desktop PC. If you don't know this great piece of software go take a look at their homepage.

    (sleep 3s && xbmc) &
    (sleep 3s && synergyc holm) &
    

    To get openbox to become the default choice, I got lazy. Just login to gnome, log out, then choose the openbox session at the GDM login. This will make it your default choice. I'm too used to having .xinitrc being so easy in Arch Linux, and after a lot of searching could not find an easy way to do it in ubuntu. If anyone knows of a way please tell me!

    Fixing the XBMC skin (SVN version only)
    If you have launched XBMC and are using the SVN version, then you'll notice a little graphical corruption. This is because the US15W in the joggler can't handle some of the unpacked textures that ship with the SVN builds. This fix was quite hard to find, but look here if you are interested in why this is this exact problem exists.

    It's actually quite a simple fix (i'm going to assume you don't want to install SVN on the joggler):

    svn co http://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/9.11_Camelot/skin/Confluence
    mv Confluence Confluence_stable
    scp -r Confluence_stable joggler@joggler:.xbmc/skin/

    Then just change the skin to Confluence_stable in Settings->Appearance->Skin

    Ok all is done! Now mount some music/video using some NFS/SMB shares and you're good to go! Also check out UPNP if like me you have other XBMC HTPCs around, it's very impressive if a little worrying. To make it a nice setup and not just an experiment, I use a USB soundcard to be able to have a good sound quality. Otherwise the joggler speakers and headphone jack are terrible. I use an old Edirol UA-1EX that I had lying about. Anything using the snd-usb-audio module in linux should work very well.

    Notice, some things are impossible to do with just touchscreen in confluence. I'd recommend having a go with Confluence Touch! skin. But there are quite a few different ones. So far I haven't found one I really like.

    Fixing sound playback
    This is a problem with XBMC and lots of audio sound cards. Basically the audio gets garbled as the sound buffer runs out of memory. I've had this on my acer revo and my O2 joggler with the external soundcard (I bet the problem is the same on the internal speakers). The easy fix is to use pulseaudio (which has a massive buffer). If you're using Gnome on the joggler ubuntu build then it will work. But using only openbox you'll need to start pulseaudio. Just add this to your autostart.sh

    (sleep 1s && pulse-session) &
    

    You'll have to make sure that your XBMC audio playback device is set to your default Pulseaudio sound card. gnome-volume-controller will help you set a default card.

    Making Confluence faster
    You'll notice the confluence skin is a little slow at displaying images. So i just resized and croped them all to the right size for the joggler (800x480). I also replaced the default music one and changed the apple to a tux... (i'm not even sure where that one gets displayed!). Grab the .tar.gz here. You'll have to extract it in the backgrounds folder in the confluence skin folder. My advice is to copy the confluence skin folder from '/usr/share/xbmc/skin/Confluence' to '~/.xbmc/skin/ConfluenceSmall'.

    Tags: , , , ,

    31 Responses to “XBMC on the O2 Joggler with touchscreen support”

    1. Christian S. Says:

      Hi there!

      Nice tutorial ... did it to use XBMC on my joggler now.

      I solved the openbox thing a little bit different:

      Typing "openbox --replace" in the "run" dialogue (ALT+F2), openbox replaces metacity within GNOME.
      That way, if I want, I can run all apps in fullscreen per default (which isn't that bad on the Joggler's screen) or I can configure, which apps to run in fullscreen.

      While in an openbox session, I don't have WLAN working out of the box, that way it is working....

      Works perfect for me!
      gforums

    2. Brendan Says:

      Thanks for the feedback!

      Obviously using openbox within gnome is a solution. If you want to use openbox, you can use nm-applet(or move to WICD for something lighter) within openbox (check out tint2 if you want a taskbar).

    3. mike Says:

      Hi, nice work, if a little over my head :)

      Can this be adapted for controlling a remote xbmc client ie XBMC on my revo HTPC?

    4. Brendan Says:

      Currently no. However I have a few ideas that may solve this problem ;-)

      In the meantime, have a look at the Android port to the joggler, that would mean you could get the XBMC remote app to work. This probably wouldn't be ideal however.

    5. Neil Says:

      All setup and running like a dream. One major problem though. How do I skip or stop tracks in the music player?

    6. Tweets that mention Madeo.co.uk » Blog Archive » XBMC on the O2 Joggler with touchscreen support -- Topsy.com Says:

      [...] This post was mentioned on Twitter by Jon Burney, Lee D Jones. Lee D Jones said: RT @version7: Now this is impressive! XBMC on an O2 joggler http://bit.ly/9QOXXe (pic: http://bit.ly/aMH4ew) [...]

    7. Brendan Says:

      Have a look at confluence touch!. That'll let you do most things using just the touchscreen.

    8. PH Says:

      ANy chance of adding a few steps for the less linux literate? Many thanks!

    9. falum Says:

      Thanks for the guide. XBMC was the main reason I got a joggler. I would love a UNE image with a perfect xbmc setup baked in. would make it a hell of a lot easier to reinstall.

    10. Ivan Says:

      Hi Madeo,

      Great info, but also a little over my head - example, where do you enter this? :

      svn co http://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/9.11_Camelot/skin/Confluence
      mv Confluence Confluence_stable
      scp -r Confluence_stable joggler@joggler:.xbmc/skin/

      A few extra steps / screen shots for the various steps would be good. My starting point is StephenFord.org's image - I've managed to get that bit working.

      Having an XBMC interface as a way of browsing the music collection on my network is my main motivation.

      Happy to buy you a couple of beers if that helps?

      Thanks

      Ivan

    11. Brendan Says:

      Sorry i've been a little slow I have lots of exams to revise for ;-)

      To make this simpler i've written a little bash script that should work on a clean install of ubuntu. To run it, download the file to /home/your_user_name. Open a terminal (in gnome preferably). type 'sh joggler_script.sh' and hit enter. Lots of text will appear. Once it has finished (you will see your prompt return to the state it was before you hit enter), logout and at the login screen choose an 'openbox' session. (not openbox + gnome).

      Grab the script here : http://www.madeo.co.uk/files/joggler_script.sh
      It is commented fairly nicely if you want to know what it is doing.

      Please give me a shout if it works either way. If you like it feel free to send me a nice email or donate on the about me page ;-)

    12. gurps Says:

      hi brendan, have tried the script above and everything works well. When i log out and change the session to openbox when I login a window appears saying "assesstive technoligies" with two options enable and log out and cancel. When i select cancel, it just freezes.

    13. Christian Says:

      Does the android remote work for anyone of you guys?

      I can load pictures and see "now playing", but all remote functions doesn't work....

    14. Brendan Says:

      @salla85 - that really surprises me. Have you tried to press 'log out' instead of cancel? Could you email me a picture? Thanks, Brendan
      @christian - I'm running r28256 and it works without a hitch. Have you checked all your settings in System -> Network?

    15. gurps Says:

      hi brendan, well this is weird. Re done all the steps and this time the window did not show but now xbmc loads but i can't use the touchscreen as a mouse.

    16. gurps Says:

      i have also tried doing each step individually as highlighted above but when it comes to the "application" bit, the joggler keeps messing up not allowing me to type. I am now going to try each step as highlighted in the script to see if it changes anything.

    17. Brendan Says:

      have you tried setting windowed mode in Settings -> System -> Video Output -> Resolution ?

      also install an openssh-server on the joggler and log in to it remotely. That'll be much easier to type stuff!

    18. gurps Says:

      ok it doesnt seem to be working. have tried using synergy as well and set windowed mode but nothing.

    19. gurps Says:

      hi brendan, trying to reinstall but now when i get to installing xbmc the terminal shows a

      type sudo is not known on line 57 in source list /etc/apt/sources.list

    20. Gomez Says:

      Hi
      Great script just a couple of problems I've got no touchscreen control although my Dinovo mini works fine (bluetooth) also can't work out how to connect to my wireless network any help would be most appreciated.

    21. gurps Says:

      finally got it working --- yyyyeeeehhhh!!!

      brilliant script

      what i did was resinstall the disca image and run the script.

      instead of logging off and restarting, i managed to access xbmc and change it to windowed mode.

      although xbmc doesnt run on start up i can use it all the same.

      great, thanks for the help.

    22. Brendan Says:

      @gurps - XBMC will only run on openbox startup. Glad it works. The sudo error sounds like an install problem or dead usb stick
      @gomez - change to windowed mode for touschreen and in the startup.sh script if using wireless add this line (sleep 2s && nm-applet) &

    23. Gomez Says:

      Hi Brendan
      Could you tell me how where & how to edit the script I'm very new to the linux way

    24. Brendan Says:

      @gomez - are you still trying to the touchscreen and wifi to work? Send me an email (brendan at fridu dot net) I'll try help you out.

    25. Noel Says:

      Hi Brendan, first of all good work, I too am having difficulty finding how to edit the startup.sh script to enable wifi.

    26. Brendan Says:

      Thanks Noel, you'll need to add this line to the startup script : (sleep 2s && nm-applet) &

      Run this in a terminal (quit XBMC from openbox and right click to select 'Terminal Emulator') :
      gedit ~/.config/openbox/startup.sh

      That'll get you a GUI to edit the file.

      I hope that helps.

    27. Pablo Says:

      Hi Brendan, I've run the script over a clear Disca 1.3 as you recommend in your post on the 23rd, which seems to install fine. However when I log out the only session options are Gnome/Gnome-failsafe/Xterm. Any ideas what's gone wrong? Thanks for your help and excellent work.

    28. Brendan Says:

      Try this command in a terminal

      sudo dpkg –get-selections | grep -v deinstall | grep -v openbox

      if it returns nothing, openbox hasn't been installed which is very weird. Try :

      sudo apt-get install openbox

      If you're still having trouble send me the full output of the script via email : (brendan at fridu dot net)

    29. Pablo Says:

      thanks for your tips, this time the openbox install worked fine, although I now don't have XBMC (nothing in fact) in openbox. I will repeat all the steps in the script one by one and I'm sure it'll work fine.

    30. Brendan Says:

      Try the full instructions by hand you'll be able to see exactly what seems to be failing

    31. bob Says:

      GDM looks at ~/.dmrc to determine what session to launch. E.g. on my openSUSE box my .dmrc contains this:

      [Desktop]
      Session=gnome
      Language=en_GB.UTF-8
      Layout=gb

    Leave a Reply