Archive for the ‘Linux’ Category

XBMC on Meego 1.0

Wednesday, June 2nd, 2010

This howto should be very simple to follow. All rpms have been made specifically for meego this time unlike my previous howtos.

This should work for a stock meego 1.0 netbook image. I tested it on a Samsung NC10 with 2GB of ram.

A few optional things that could be nice
An openssh server might be useful, full vim, wget and synergy (keyboard sharing client/server)

sudo yum install -y vim openssh-server wget synergy

My howto will use wget.

Installing dependancies from Meego repos
Here goes the big part. The last 15 or so dependancies may not all be required. However I didn't want to go all the way through them again. If you do it please send me an email ;-)

sudo yum install -y boost-devel glew-devel libsamplerate-devel libogg-devel bzip2-devel zip lzo-devel fribidi-devel sqlite-devel pcre-devel flac-devel libsmbclient-devel libtalloc samba-winbind gperf libXau-devel libvorbis-devel openssl-devel SDL-devel alsa-lib-devel alsa-plugins-pulseaudio jasper-devel jasper-libs libtiff-devel SDL_image-devel libXtst-devel libXmu-devel libcurl-devel libmp4v2-devel fontconfig-devel libpng-devel SDL_mixer-devel libXinerama-devel libXi-devel avahi-devel libcom_err-devel e2fsprogs-devel python-devel cppunit-devel freeglut-devel perl-ExtUtils-MakeMaker perl-ExtUtils-CBuilder libXxf86vm-devel mikmod-devel esound-devel expat-devel dbus-devel dbus-glib-devel libblkid-devel dos2unix libsysfs-devel glib2-devel libXv-devel ncurses-devel readline-devel doxygen udisks-devel

Installing dependancies from here
You don't need to install the HAL package since revision 29991. Meego provides udisks and udisks-devel. Thanks openelec.tv for pointing this out!
Warning : my mysql package is probably a little different as I got rid of some dependancies
Warning : my lame package does not include mp3x as it needed gtk+-devel and I have better things to do ;-)
If you want to save some space the debuginfo and doc packages are not needed. Also only the main mysql package and it's dependancies are needed.

My webserver is getting hammered so please be nice and use this google docs link to download the dependancies. Below are the sha1sum and md5sum for the file.

[brendan@madeouk]$ sha1sum XBMC_deps_rpms.tar.gz
2cbe584ddc418c1f177707e2a3baef89bda42928 XBMC_deps_rpms.tar.gz
[brendan@madeouk]$ md5sum XBMC_deps_rpms.tar.gz
0f9c094fa8ec20022989965b5642cc1a XBMC_deps_rpms.tar.gz

wget http://www.madeo.co.uk/files/XBMC_deps_rpms.tar.gz
tar xzvf XBMC_deps_rpms.tar.gz
cd i586
rm hal-*
sudo rpm -ivh *

Getting XBMC and compiling/installing
Feel free to use a different version, the latest wouldn't compile for me so I took what my Acer Revo was currently running... This will take a few hours on an Atom 270 without distcc.
Warning: You'll need to use another computer to grab the xbmc sources since SVN isn't in the meego repos and I havent built an RPM for it. Maybe later!

svn co -r30739 https://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk/ xbmc
cd xbmc/
./bootstrap
./configure --prefix=/usr --disable-vdpau --disable-dvdcss --disable-hal
make -j2
make install

That's all! Hopefully it works for you.
Notice the windowmanager will mess things up if your mouse is in the top part of the screen. Disable the mouse in XBMC or just run a different WM like openbox.

XBMC on the O2 Joggler with touchscreen support

Sunday, May 9th, 2010

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'.

    Browser for XBMC

    Saturday, March 6th, 2010

    Many are longing for an integrated browser in XBMC. For whatever reason. For me it's to check my mail in the morning so I don't have to start my workstation.... My revo is always on but it can't check my mail. The problem is XBMC runs in standalone form and so nothing else can be displayed.

    My fix isn't brilliant. It requires a mouse (which isn't great) - at least if you want easy navigation) and requires openbox. (you could probably find more lightweight but I have a little working knowledge of it's configuration so it was easier that way)

    Basically we start openbox, then autostart xbmc on top with the launcher plugin. I run Arch linux but all of this is very much transferable

    Start by install openbox on the system and a browser (I recommend chromium because it has it's own titlebars and it's really fast...) :

    pacman -S openbox chromium

    wget http://xbmc-launcher.googlecode.com/files/Launcher1.02.zip
    cd .xbmc/plugins/programs
    unzip unzip Launcher1.02.zip
    rm unzip Launcher1.02.zip

    Then open ~/.config/openbox/rc.xml
    Delete the demo applications block (make sure you get the comment tags) - and then put in something like this.

    <applications>
              <application name="xterm">
                    <decor>yes</decor>
              </application>
              <application name="xbmc.bin">
                    <decor>no</decor>
              </application>
              <application name="chromium">
                    <decor>no</decor>
              </application>
    </applications>
    

    Notice that xbmc is xbmc.bin. xbmc* will work as well. By default apps will have decor and it's not a problem. just make sure xbmc doesn't otherwise it wont come back to the foreground properly.

    To autostart xbmc wipe this file /etc/xdg/openbox/autostart.sh. I'm assuming you wont use openbox for anything else or have multiple users here... It's a HTPC setup here ;-) . Replace with this:

    #!/bin/bash
    (sleep 1 && xbmc) &

    We don't want to load anything else than xbmc right??

    Now for the last bit, the ~/.xinitrc file :

    exec /usr/bin/ck-launch-session openbox-session

    If you don't use openbox-session and just openbox the autostart file wont be loaded.

    To autologin to openbox I use slim. Look in /etc/slim.conf and add it in /etc/inittab. This is a slightly nicer way than forcing autologin through the inittab.

    now symlink all apps you want to autolaunch to somewhere within your home dir. This is because xbmc is silly and doesn't let you go back. So

    ln -s /usr/bin/chromium /home/brendan/apps/chromium

    Once XBMC has started go to program -> plugins -> launcher and add the applications you want as standalone apps. You can even add them as favorites to make it easier and so you can remove the program menu entry from confluence.

    For xterm look at the -geom option to change the size of the terminal. if on a HDTV you may want to make the font bigger too!
    To change the size of the windowed mode of XBMC see the tag in .xbmc/userdata/guisettings.xml

    How to build Meego images (a.k.a moblin 2.2)

    Friday, February 19th, 2010

    These are not official builds. Nor are they official instructions. Follow at your own risk !
    Download link : (647MB). Alternate link here .
    If you're even lazier here are some pictures and videos of it running!

    Part 1 : Build environment
    Skip to part2 if you allready have MIC2 or if you have no intention of using fedora
    I used Fedora 10, simply because there was a repo for the MIC2 (tool to make images for moblin). For a quick install download a vmware image off thoughtpolice. (the root password is thoughtpolice!).

    I'm not sure this is needed but selinux complains during the build and it's notoriously annoying so I disabled it.

    system-config-selinux

    Add this as moblin_tools.repo in /etc/yum.repos.d/:

    [MoblinTools]
    name=Moblin fc10 tools
    failovermethod=priority
    baseurl=http://repo.moblin.org/moblin/tools/fc10/
    enabled=1
    gpgcheck=0

    Now we install mic2. (and all it's dependancies...). Load the squashfs module just to make sure

    sudo yum install mic2
    sudo modprobe squashfs

    Part 2 : making the image!
    The Intel/Nokia people very kindly hide away some premade images :

    http://repo.meego.com/trunk/repo/ia32/os/image-config/

    You can either use their default.ks image or my brendan.ks image with the time and keyboard fixed so that it works in the uk ;-)

    moblin-image-creator -c brendan.ks -f liveusb

    To burn it to a USB stick use:

    dd bs=4096 if=moblin-brendan-201002191551.usbimg of=/dev/sdx

    You'll find your root user has the following property in the live USB image:

    user : root
    Password : moblin

    Notes :
    - I've found my clutter interface usually crashes on the first load. Doing an init 3 and then init 5 in a tty terminal as root usually fixes it.

    First look at Meego – a.k.a Moblin 2.2 (and where is maemo??)

    Friday, February 19th, 2010

    Here are a few pictures of the upcoming Meego release (Moblin 2.2).
    Go try it out for yourself! USB image can be downloaded here

    Bootup is about as fast as Moblin 2.1, syslinux menu has not changed but due to using MIC2 this is not a surprise. Kernel 2.6.33-rc8 is used.

    Graphically menus have changed very slightly. It now has a meego graphic as it starts clutter/mutter.

    The biggest changes I could spot where Chromium for web browsing and Mozilla nowhere to be found... Thunderbird was being used for email. When halting (which apparently having no icon to do that means it's more user friendly...) it gives you a cute little backdrop of one of those creature like blocks waving at you!

    Right now, Meego looks like a clone of Moblin and the only reason for the name change seems to be to appease the Maemo community which still seems to be up in arms about the move to an RPM based distro.

    Intel X25-M Gen2 on linux – migrating to btrfs on kernel 2.6.33

    Wednesday, February 17th, 2010

    This comes with no warranty whatsoever! Don't come to me if this breaks and deletes all your data. Back it up!

    Why BTRFS on the X25-M ?
    I decided to write this article because it's very hard to find information about the X25-M or high performance SSDs in general. Under linux, it's nearly impossible. Information on btrfs however is more promising and they even have a nice wiki.

    BTRFS is said to have stabilised since the 2.6.32 kernel and has been included since the 2.6.29 kernel. It should not change structure unless a major bug is found is stated on the wiki. You can upgrade to BTRFS from ext4. Therefore if you are more worried about your data than me, then you can use ext4 and when you deem btrfs stable enough upgrade to it.

    Some people claim that anything with a journal will damage their SSD. Now this may be true of cheaper SSDs found in netbooks, and basic 2.5" drives sold cheap (you know which ones I mean) that got slower and seemed to stutter after many writes. However the Intel X25-M is said by intel to have a Minimum useful life of 5 years (or 35TB). You can write to it 20GB/day for 5 years! it has a Mean time between failures of 1.2 Million hours. People should probably have been more worried about their normal hard drives to fail than worrying about this SSD.

    I'm not saying you should put a swap file on your SSD. Keep that on a normal drive or just don't have one! I like to keep a big swap file to have /tmp as tmpfs. I also keep /var/log on a conventional JFS partition on a rotational drive because it can be nice to be able to mount it under any OS and not just a recent linux kernel.

    Performance has been tested on the Intel X25-E SSD under linux by phoronix.com here. However NILFS2 nor BTRFS where present and only default mount options where used. So barrier disabled ext4 was quite good... (disabling barriers on ext is NEVER a good idea). XFS seemed to do quite well but has no SSD mode.

    Part 1 - Making your system BTRFS friendly
    This will only work on Arch Linux. However have a look here for ubuntu. The rest of the guide should work on any linux distribution however.
    install mkinitcpio-btrfs and btfs-progs from the AUR. Remake boot images.
    Be carefull to remake the right image. I use kernel26-rc from AUR (2.6.33-rc8 at time of posting). Normal Arch kernel will be kernel26

    packer -S mkinitcpio-btrfs btrfs-progs
    mkinitcpio -p kernel26-rc

    I'm working with a seperate /boot partition. This is probably a better idea until btrfs support gets more common.
    Part2 - Moving / and /boot to the new SSD
    Format your new drive as you wish. use fdisk -l to see which one is your new drive.
    I always use 200MB as /boot and then left the rest for /. You may want to use a seperate /home. I decided leaving the biggest partition would mean less wear as the wear levelling alogrithms would have more room to work. Decide what your opinion is on this ;-)

    Make the btrfs partition as well as /boot

    mkfs.btrfs /dev/sdb2
    mkfs.ext2 /dev/sdb1

    I will use -o ssd but you can use -o ssd_spread if you are really worried your precious drive will die too soon!

    mkdir /mnt/boot
    mkdir /mnt/slash
    mount -o ssd /dev/sdb2 /mnt/slash
    mount /dev/sdb1 /mnt/boot

    Now comes the boring long bit... Then we just create /dev/console and /dev/null
    Notice we copy over /boot twice and remove it. it's not like it will take any time to copy a few MBs

    find / -xdev | cpio -pm /mnt/slash
    rm -rf /mnt/slash/boot
    find /boot -xdev | cpio -pm /mnt/boot
    mknod /mnt/slash/dev/console c 5 1
    mknod /mnt/slash/dev/null c 1 3

    Part 3 - Grub
    Now we will install grub on the master boot record of the SSD. You don't have to, but otherwise you will be wasting a few precious seconds.
    please be carefull. Make sure it's the right drive!!! hd0 should be /dev/sda, hd1 will be /dev/sdb and so on

    grub
    grub> root (hd1,0)
    grub> setup (hd1)

    Next edit your /mnt/boot/grub/menu.lst file. Make sure that you change your boot options to the new SSD. The great thing about this is that if everything messes up you can just boot straight onto the old drive with the old files!

    Part 4 - fstab
    Always use UUIDs and not direct names.

    blkid /dev/sdb1
    blkid /dev/sdb2

    then edit /mnt/slash/etc/fstab
    and add the two lines for something like this:

    # SSD is root and /boot
    UUID=c05d5ae2-9eb9-4b6e-9e13-d99ea589933b / btrfs ssd 0 1
    UUID=33a46c0e-ad6f-4526-b628-f477aa36e73e /boot ext2 defaults 0 1

    The ssd option for / is actually not neccessary. BTRFS is capable of detecting wether or not you have an SSD.

    cat /sys/block/sdb/queue/rotational

    If this is a 0 then your SSD is correctly detected!

    Part 5 - BIOS
    Make sure that your sata controller is in AHCI mode. This will probably mean that if you have windows on a sata drive installed as IDE will just not boot anymore. If you don't have this one, the SSD won't have all the advanced commands available. And your SATAII drives won't have NCQ and similar working. No TRIM in IDE mode ;-)

    Finished, Enjoy the speed!

    XBMC (9.11 camelot or trunk) on Moblin 2.1

    Thursday, February 11th, 2010

    Download either the latest SVN build (the SVN build used during this howto was 27627) or the latest stable (9.11 Camelot)

    (For information 9.11 Camelot is revision 26018 - list of tags is here http://xbmc.svn.sourceforge.net/viewvc/xbmc/tags/)
    Run only one of the below ;-)

    svn co http://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk xbmc
    svn co -r 26018 http://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk xbmc

    Follow the "Preparing the system" (Part 1) section for Boxee on moblin.

    install libflac, libsmblient and libtiff

    sudo yum install flac flac-devel libsmbclient-devel libtiff-devel

    install libfaad and libmpeg2

    wget ftp://fr2.rpmfind.net/linux/rpmfusion/free/fedora/releases/10/Everything/i386/os/faad2-libs-2.6.1-6.fc10.i386.rpm
    wget ftp://ftp.ntua.gr/pub/linux/rpmfusion/free/fedora/releases/10/Everything/x86_64/os/faad2-devel-2.6.1-6.fc10.i386.rpm
    wget ftp://ftp.ntua.gr/pub/linux/rpmfusion/free/fedora/releases/10/Everything/x86_64/os/libmpeg2-0.5.1-3.fc10.i386.rpm
    wget ftp://ftp.ntua.gr/pub/linux/rpmfusion/free/fedora/releases/10/Everything/x86_64/os/libmpeg2-devel-0.5.1-3.fc10.i386.rpm
    sudo rpm -ivh faad2* libmpeg*

    For camelot, you will need to apply a patch in order to get past an SSL error. The bug is here http://trac.xbmc.org/ticket/8137

    wget http://trac.xbmc.org/raw-attachment/ticket/8137/libbdnav-remove-openssl.patch
    patch < libbdnav-remove-openssl.patch

    choose xbmc/cores/dvdplayer/Codecs/libbdnav/configure.ac

    For working VDPAU you will need libvdpau2.0. The easiest way to do that is to install the latest 195 nvidia driver. If you don't have an nvidia card, then just ignore this, you will compile the code with VPDAU disabled.
    If you are doing this, I will assume that you have allready followed my guide for the acer revo on moblin.. You will need to recompile Xorg for this to work and change the permissions on the Xorg binary (Parts 3,4 and 6)

    sudo sh NVIDIA-Linux-x86-195.30-pkg1.run

    Change the -j argument to number of threads your CPU can execute simulatneously +1. On a revo (Atom N230) that's 3.

    mkdir /home/brendan/xbmc_camelot
    cd camelot
    ./bootstrap
    ./configure --prefix=/home/brendan/xbmc_camelot
    make -j3
    make install

    Compiling Boxee under Moblin 2.1 (working VDPAU)

    Thursday, February 11th, 2010

    Part 1 - Preparing the system for compilation - Missing dependancies

    wget http://91.190.227.59/xbmc_builddeps.tar.gz
    tar xvfz xbmc_builddeps.tar.gz
    cd xbmc_builddeps
    sudo rpm -ivh --force glew-*
    sudo rpm -ivh libmms* libcdio-* libmp4v2-1.5.0.1-8.moblin2.i586.rpm enca-* faac* mysql-*
    sudo yum install -y SDL-devel SDL_image-devel SDL_gfx-devel SDL_mixer-devel libogg-devel libvorbis-devel boost boost-devel bzip2-devel fribidi-devel lzo-devel jasper-devel libpng-devel hal-devel cmake gperf libtool zip nasm libXtst-devel libXi-devel libXmu-devel fontconfig-devel freetype-devel libXinerama-devel pcre-devel gcc gcc-c++ sqlite-devel curl-devel openssl-devel avahi-devel libsamplerate-devel pulseaudio-devel patch diffutils make binutils pixman-devel glibc-devel libpciaccess-devel libgomp43 mpfr autoconf quilt cmake unzip automake mesa-libgl mesa-libgl-devel mesa-libGLU-devel mesa-libGLU libjpeg-devel libmad-devel libjpeg-devel libsamplerate-devel svn tcp_wrappers-devel tcp_wrappers-libs libvdpau libmikmod

    in /etc/yum.conf add the following repo:

    [fedora10]
    name=fedora10
    baseurl=http://download.fedora.redhat.com/pub/fedora/linux/updates/10/i386
    enabled=1
    gpgcheck=0

    Now we use the newly added repo to install some dependencies:

    sudo yum install SDL alsa-lib enca faac glew libmp4v2 mysql-libs nss openssl tre libvorbis xmms-libs wavpack wavpack-devel

    remove the added repo from /etc/yum.conf

    Next, install libmad (it's possible you only need libmad-devel, but I'm not sure):

    wget ftp://ftp.ntua.gr/pub/linux/rpmfusion/free/fedora/releases/10/Everything/x86_64/os/libmad-0.15.1b-8.fc10.i386.rpm
    wget ftp://ftp.ntua.gr/pub/linux/rpmfusion/free/fedora/releases/10/Everything/x86_64/os/libmad-devel-0.15.1b-8.fc10.i386.rpm
    sudo rpm -ivh libmad-0.15.1b-8.fc10.i386.rpm libmad-devel-0.15.1b-8.fc10.i386.rpm

    Symlink libmysqlclient where boxee expects it
    sudo ln -s /usr/lib/mysql/libmysqlclient.so.16.0.0 /usr/lib/libmysqlclient.so

    Only if you want VDPAU acceleration (only with Nvidia GPUs)

    wget ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/updates/10/i386/libvdpau-0.2-1.fc10.i386.rpm
    rpm -ivh libvdpau-0.2-1.fc10.i386.rpm

    Part 2 - Compiling and installing

    Download sources 0.9.14 from boxee.tv

    wget http://dl.boxee.tv/boxee-0.9.14.6992-sources.tar.bz2
    tar xjvf boxee-0.9.14.6992-sources.tar.bz2

    Next we get a newer version of xbmc Linux/Tools

    svn co https://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk/tools/Linux
    cp --no-dereference --preserve=all -R -v ~/Linux ~/boxee-0.9.14.6992-sources/tools/

    Next we apply this patch made for ubuntu.

    wget http://www.madeo.co.uk/wp-content/uploads/2010/02/patch.txt
    patch -p 1 < patch.txt
    cd ~/boxee-0.9.14.6992-sources/web/Project\ Mayhem\ III/
    zip -v -r -9 -o ../Project_Mayhem_III_webserver_v1.0.zip ./*
    cd ~/boxee-0.9.14.6992-sources/
    autoreconf

    Now configure boxee with chosen prefix. default for moblin is /usr but I thought it was nicer to keep everything tidy where I was. Afterwards, just copy the included lib from xbmc into /usr/include to make compilation go smoothly

    ./configure --prefix=/home/brendan/boxee
    cp xbmc/lib/cximage-6.0/jpeg/jpegint.h /usr/include/

    in makefile add -lnsl inside the LIB= variable
    Change the -j argument to number of threads your CPU can execute simulatneously +1. On a revo (Atom N230) that's 3.

    make -j3
    make install

    In /home/brendan/boxee/bin I can now just run ./xbmc.

    Optional - replacing mutter/clutter with boxee

    sudo mv /etc/xdg/moblin/xinitrc /etc/xdg/moblin/xinitrc.old

    and add this as the new /etc/xdg/moblin/xinitrc

    #!/bin/bash
    cd /home/brendan/boxee/bin
    ./xbmc

    Credits for patch go to "jdb2" from http://forum.boxee.tv/showthread.php?t=13206

    Compiling and using MHEG Engine Redbutton

    Wednesday, February 3rd, 2010

    Warning : This only works on 32bit linux. See here for a patch to make it work on mandriva 64bit - probably will work on other distros

    Downloading and compiling redbutton
    Download redbutton-download and redbutton-browser from http://sourceforge.net/projects/redbutton/files/.

    I used version 20090727 of redbutton-download and version 20091202 redbutton-browser.

    You will need gcc,make and the usual. On my arch system it compiled without needing anything, so I can't be of much help with dependancies, but on ubuntu karmic koala (9.10) I had to install all of these to get it running!

    sudo aptitude install expat libxslt-dev libxslt1.1 libxslt1-dev freetype2 ffmpeg libpng libexpat1-dev libpng12-dev libavdevice-dev libavfilter-dev libavformat-dev libavifile-0.7-dev libavutil-dev libxt-dev libasound2-dev libswscale-dev x11proto-xext-dev libxext-dev

    Untar both packages with tar xzvf and then in both new directories type make.

    redbutton-download is the server, it needs to be run on a pc with a DVB card. redbutton-browser can be run on any other pc (it will need a pretty fast cpu if you don't want to drop frames and a good network connection goes without saying).

    Installing DVB card - on Arch Linux (should be very similar on Ubuntu)
    This is for my Asus Eee-pc My Cinema U3100 Mini DVB-T USB stick
    tail -f /var/log/messages
    plug the device in and check what driver it wants. Find that driver and install it. For my stick I needed dvb-usb-dib0700-1.20.fw which you can install from the AUR using this package in Arch Linux - dib0700-firmware
    pacman -S linuxtv-dvb-apps
    packer -S dib0700-firmware
    Once installed unplug and replug the device. Watching your /var/log/messages file should show the firmware being loaded
    Have a look at here and you should see something like this :

    [brendan@baldwin ~]$ ls -la /dev/dvb/adapter0/
    total 0
    drwxr-xr-x 2 root root 120 Feb 2 17:05 .
    drwxr-xr-x 3 root root 60 Feb 2 17:05 ..
    crw-rw----+ 1 root video 212, 4 Feb 2 17:05 demux0
    crw-rw----+ 1 root video 212, 5 Feb 2 17:05 dvr0
    crw-rw----+ 1 root video 212, 3 Feb 2 17:05 frontend0
    crw-rw----+ 1 root video 212, 7 Feb 2 17:05 net0

    Making the channels.conf file
    By default, redbutton will look in ~/.tzap for dvb-t and in /etc

    Choose your nearest transmitter and make the config file.

    scan /usr/share/dvb/dvb-t/uk-MyClosestTransmitter | tee ~/.tzap/channels.conf

    Starting the program

    On the server pc, you will need to install dvbtune if you don't allready have it (ubuntu has its own package for it). Notice my dvbtune arguments come from my channels.conf settings and are solely because my card is not too bright. Yours may only need the -f argument.
    Find a channel that you want to start with (it won't start without one). So I did cat channels.conf | grep NEWS and found bbc news was on 4415.

    sudo aptitude install dvbtune
    dvbtune -f 641833330 -qam 16 -cr 3_4 && ./rb-download 4415

    On the client pc (no need for a different pc, if not then forget the -r argument) run
    At default the program runs on port 10101 but it can be changed on launch of rb-download

    ./rb-browser -r ip_of_client_machine

    Note: 'r' seems to bring up the EPG on bbc :-)

    See redbutton.sourceforge.net for a full controls listing of rb-browser and all the options of rb-download


    Sources:

    http://redbutton.sourceforge.net/

    http://www.mail-archive.com/linux-dvb@linuxtv.org/msg21443.html


    Acer Revo R3600 (ION) on Moblin 2.1 (working 100%, mutter fixed)

    Thursday, January 28th, 2010

    This is a guide to do a full install of Moblin 2.1 on the Acer Revo R3600. I will assume that you have actually just finished installing the revo using moblin's GUI installer from a usb stick (or whatever you wanted to use). I have included premade xorg packages and kernel packages so all you need to do is install the nvidia driver and recompile mutter if you want the moblin interface.

    Lazy links:
    - http://madeo.co.uk/moblin/kernel_moblin2.6.31.tar.gz
    - http://madeo.co.uk/moblin/xorg_moblin1.6.4.tar.gz
    - http://madeo.co.uk/moblin/mutter_moblin2.28.1.tar.gz

    Part 1 - Booting
    First thing is, you'll want to be able to boot. To do this, it's not hard but I can never get to the escape key in time. If you manage to, then edit the line and take away the 'vga=current' and add a lone 3 at the end. You should then boot in init 3 mode. Notice the weird colours in the first agetty session. Clearing the terminal will resolve those. Also you won't have a prompt, but that's not too annoying if you use ssh.

    Part 2 - Ethernet
    Out of the box, the ethernet doesn't work :-( This means we need to recompile the kernel with the ethernet driver forcedeth. Here is how to do it :

    Be carefull, rpmbuild will fail if you run it as root unlike in previous builds.
    Because you have no network to compile this kernel, either use another moblin pc, or a VM to compile the rpms or copy all these rpm's on a usb stick you will need all these dependencies.

    sudo yum install rpm-build diffutils moblin-rpm-config patch binutils cpp cpp43 gcc gcc-c++ gcc43 gcc43-c++ glibc-devel glibc-headers kernel-headers libgomp43 libstdc++43-devel make mpfr mpfr-devel binutils-devel elfutils-libelf-devel elfutils-libelf-devel-static perf

    Now you will be able to install the kernel.

    rpm -ivh kernel-2.6.31.5-10.1.moblin2.src.rpm
    cd ~/rpmbuild/SOURCES

    Edit the file config-generic and add the following lines to the file

    CONFIG_FORCEDETH=y
    CONFIG_FORCEDETH_NAPI=y

    Now we build the kernel

    cd ~/rpmbuild/SPECS
    rpmbuild --target=i586 -bb kernel.spec
    cd ../RPMS

    You now have the kernel rpms. For this job, I recommend just using kernel-netbook so :

    rpm -ivh --force kernel-netbook-2.6.31.5-10.1.moblin2.i586.rpm kernel-netbook-devel-2.6.31.5-10.1.moblin2.i586.rpm perf-2.6.31.5-10.1.moblin2.i586.rpm

    If you're not difficult the kernel_moblin2.6.31.tar.gz package will do just fine. Links are at the start of the post.

    Part 3 - Recompiling Xorg

    sudo yum install "pkgconfig(scrnsaverproto)" "pkgconfig(xtrans)" "pkgconfig(libdrm)" "pkgconfig(randrproto)" "pkgconfig(renderproto)" "pkgconfig(kbproto)" "pkgconfig(glproto)" "pkgconfig(fixesproto)" "pkgconfig(dri2proto)" "pkgconfig(damageproto)" "pkgconfig(xf86driproto)" "pkgconfig(xcmiscproto)" "pkgconfig(bigreqsproto)" "pkgconfig(resourceproto)" "pkgconfig(compositeproto)" "pkgconfig(resourceproto)" "pkgconfig(evieproto)" "pkgconfig(xf86dgaproto)" "pkgconfig(xf86vidmodeproto)" "pkgconfig(xkbfile)" "pkgconfig(xres)" "pkgconfig(xau)" "pkgconfig(xext)" "pkgconfig(xfont)" "pkgconfig(fontenc)" "pkgconfig(xdmcp)" "pkgconfig(xt)" "pkgconfig(dmx)" "pkgconfig(xmuu)" "pkgconfig(xrender)" "pkgconfig(xi)" "pkgconfig(xpm)" "pkgconfig(xaw7)" "pkgconfig(xfixes)" "pkgconfig(xv)" "pkgconfig(pixman-1)" "pkgconfig(gl)" "pkgconfig(x11)" "pkgconfig(openssl)" "pkgconfig(pciaccess)" "pkgconfig(hal)" "pkgconfig(dbus-1)" byacc flex autoconf automake gcc gcc-c++ rpm-build make xineramaproto
    wget http://repo.moblin.org/moblin/releases/2.1/source/xorg-x11-server-1.6.4.901-7.8.moblin2.src.rpm
    rpm -ivh xorg-x11-server-1.6.4.901-7.8.moblin2.src.rpm
    cd ~/rpmbuild/SPECS

    edit the spec file xorg-x11-server.spec and replace
    --disable-xinerama by --enable-xinerama
    build the target and install it

    rpmbuild --target=i586 -bb xorg-x11-server.spec
    cd ../RPMS/i586/
    sudo rpm -ivh --force xorg-x11-server-1.6.4.901-7.8.moblin2.i586.rpm xorg-x11-server-common-1.6.4.901-7.8.moblin2.i586 xorg-x11-server-Xorg-1.6.4.901-7.8.moblin2.i586.rpm

    If you take the lazy option again and get my premade rpm's then you obviously only need to do the last bit!

    Part 4 - Graphics

    First we will get wget. Like openssh, not neccesary but makes the whole process alot easier.
    This next part is really nice. You can finally copy and paste and use networking to your advantage! Unless you really like agetty....

    sudo yum install -y openssh-server wget && /etc/init.d/sshd restart

    Then we download the latest nvidia ION driver. Then you'll want to install all the dependencies. Aren't you glad you have working ethernet now?
    If you've been following the guide you'll notice you have alot of these if you compiled your own kernel. I left the extras in case you took my premade rpms. Either way yum will not reinstall stuff if you allready have it.

    wget http://us.download.nvidia.com/XFree86/Linux-x86/190.42/NVIDIA-Linux-x86-190.42-pkg1.run

    yum install -y make gcc nbtk nbtk-devel gnome-common libtool intltool gettext-devel glib2-devel intltool gtk-doc gconf-editor gnome-doc-utils avahi-gobject-devel.i586 pygobject2.i586 pygobject2-devel.i586 mx mx-devel mx-doc pkgconfig\(mutter-plugins\) pkgconfig\(libstartup-notification-1.0\) pkgconfig\(gconf-2.0\)

    sh NVIDIA-Linux-x86-195.30-pkg1.run

    Accept the license and then select yes when asked if it should write it's display configuration.

    Part 5 - Mutter
    We will take the development version of mutter and mutter-devel. In case these change on the moblin servers I have included them at the top as another lazy link!

    wget http://repo.moblin.org/moblin/development/core/ia32/os/i586/mutter-devel-2.28.1_0.4-1.2.moblin2.i586.rpm
    wget http://repo.moblin.org/moblin/development/core/ia32/os/i586/mutter-2.28.1_0.4-1.2.moblin2.i586.rpm
    sudo rpm -ivh --force mutter-*
    wget http://git.moblin.org/cgit.cgi/mutter-moblin/snapshot/mutter-moblin-0.49.0.zip
    unzip mutter-moblin-0.49.0.zip
    cd mutter-moblin-0.49.0/
    ./autogen.sh --prefix=/usr
    make
    sudo make install

    Part 6 - X as user
    After all this, startx will result in a failure. To fix it, create the file /etc/modprobe.d/nvidia.conf with this inside :

    options nvidia NVreg_DeviceFileUID=0
    options nvidia NVreg_DeviceFileGID=62
    options nvidia NVreg_DeviceFileMode=0660

    Make sure group 62 is the video group and that your user is in it!
    Finish off by adding the s bit to Xorg :

    chmod 4755 /usr/bin/Xorg

    Done!

    - If you are failing to start mutter try add a sleep before executing mutter in /etc/xdg/moblin/xinitrc

    About Moblin

    About Moblin