Kodi Community Forum

Full Version: How to update XBMCLive to SVN PPA's and Bleeding Edge
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5
How to Install XBMC-Live to My HTPC and Update to Bleeding EDGE


UPDATED * July 14th 2009
Added the line "sudo apt-get install xbmc" to the SVN PPA Section 5.)
Requirements:

XBMCLive CD
Internet conection
Putty (ssh program)
bit of knowledge


1.) Boot from XBMCLive CD 9.04
Install to HDD - follow prompts. [do not choose removable disk]
choose a password (don't forget it) EX: "xbmc"
eject and reboot


Were going to add the PPA's from wattazoum (good stuff wattazoum)

http://www.xbmc.org/forum/showthread.php?t=33327

I choose SVN PPA's but this can be used as a template for any of the PPA's listed here. (don't forget to change your GPA keys tough)

https://edge.launchpad.net/~team-xbmc-svn/+archive/ppa

2). ssh into xbmc user account using putty

username =xbmc
password =xbmc (what ever you choose)

3). add the deb's to the 3rd party sources.list

Code:
sudo pico /etc/apt/sources.list.d/xbmc.org.list

copy and paste these lines

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

save updated list. (press ctrl x, y and then enter)

4.) import the GPA key

Code:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 64234534

Now you have updated the PPA's and have a valid key.

5.) update and upgrade the latest PPA's

Code:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install xbmc  
sudo reboot

you have now updated XBMC to the current SVN PPA's if you want to live on the edge keep reading.

OPTIONAL

BLEEDING EDGE update
(this is only if you dont mind dealing with possible bugs)

6.) Install build environment, install and build

Code:
sudo apt-get install build-essential cdbs fakeroot dh-make debhelper debconf libstdc++5 dkms linux-headers-$(uname -r)
sudo apt-get install subversion
sudo apt-get build-dep xbmc
sudo apt-get update
sudo apt-get upgrade

***NOTE***

At the time of writing this --HOW TO-- there was a bug in the xbmc-live PPA's update.

if you see this error:

"xbmc-live
E: Sub-process /usr/bin/dpkg returned an error code (1)"

copy and paste this into terminal


Code:
sudo rm /var/lib/dpkg/info/xbmc-live.postinst
sudo pico /var/lib/dpkg/info/xbmc-live.postinst

copy this modified xbmc-live.postinst

Code:
#!/bin/sh
# postinst script for test
#
# see: dh_installdeb(1)

set -e

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <postinst> `abort-remove'
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package


case "$1" in
    configure)
        sed -i.bak-xbmc-live s/allowed_users=console/allowed_users=anybody/ /etc/X11/Xwrapper.config

        USER=xbmc
        USER_EXISTS=`grep $USER /etc/passwd|awk -F : '{print $1}'`
        if [ ! "$USER_EXISTS" = "$USER" ]; then
            adduser $USER
        fi

        USER_IN_GROUP=`groups xbmc|grep adm`
        if [ "$USER_IN_GROUP" = "" ]; then
                adduser xbmc adm
        fi
        USER_IN_GROUP=`groups xbmc|grep dialout`
        if [ "$USER_IN_GROUP" = "" ]; then
                adduser xbmc dialout
        fi
        USER_IN_GROUP=`groups xbmc|grep cdrom`
        if [ "$USER_IN_GROUP" = "" ]; then
                adduser xbmc cdrom
        fi
        USER_IN_GROUP=`groups xbmc|grep floppy`
        if [ "$USER_IN_GROUP" = "" ]; then
                adduser xbmc floppy
        fi
        USER_IN_GROUP=`groups xbmc|grep audio`
        if [ "$USER_IN_GROUP" = "" ]; then
                adduser xbmc audio
        fi
        USER_IN_GROUP=`groups xbmc|grep dip`
        if [ "$USER_IN_GROUP" = "" ]; then
                adduser xbmc dip
        fi
        USER_IN_GROUP=`groups xbmc|grep video`
        if [ "$USER_IN_GROUP" = "" ]; then
                adduser xbmc video
        fi
        USER_IN_GROUP=`groups xbmc|grep plugdev`
        if [ "$USER_IN_GROUP" = "" ]; then
                adduser xbmc plugdev
        fi
        USER_IN_GROUP=`groups xbmc|grep fuse`
        if [ "$USER_IN_GROUP" = "" ]; then
                adduser xbmc fuse
        fi
#       USER_IN_GROUP=`groups xbmc|grep sudo`
#       if [ "$USER_IN_GROUP" = "" ]; then
#               adduser xbmc sudo
#       fi

        AUTH_EXISTS=`polkit-auth --user xbmc --show-obtainable --explicit | grep org.freedesktop.hal.power-management.shutdown`
        if [ "$AUTH_EXISTS" = "" ]; then
                polkit-auth --user xbmc --grant org.freedesktop.hal.power-management.shutdown
                polkit-auth --user xbmc --grant org.freedesktop.hal.power-management.shutdown-multiple-sessions
        fi
        AUTH_EXISTS=`polkit-auth --user xbmc --show-obtainable --explicit | grep org.freedesktop.hal.power-management.reboot`
        if [ "$AUTH_EXISTS" = "" ]; then
                polkit-auth --user xbmc --grant org.freedesktop.hal.power-management.reboot
                polkit-auth --user xbmc --grant org.freedesktop.hal.power-management.reboot-multiple-sessions
        fi
        AUTH_EXISTS=`polkit-auth --user xbmc --show-obtainable --explicit | grep org.freedesktop.hal.power-management.set-powersave`
        if [ "$AUTH_EXISTS" = "" ]; then
                polkit-auth --user xbmc --grant org.freedesktop.hal.power-management.set-powersave
        fi
        AUTH_EXISTS=`polkit-auth --user xbmc --show-obtainable --explicit | grep org.freedesktop.hal.power-management.suspend`
        if [ "$AUTH_EXISTS" = "" ]; then
                polkit-auth --user xbmc --grant org.freedesktop.hal.power-management.suspend
        fi
        AUTH_EXISTS=`polkit-auth --user xbmc --show-obtainable --explicit | grep org.freedesktop.hal.power-management.hibernate`
        if [ "$AUTH_EXISTS" = "" ]; then
                polkit-auth --user xbmc --grant org.freedesktop.hal.power-management.hibernate
        fi
        AUTH_EXISTS=`polkit-auth --user xbmc --show-obtainable --explicit | grep org.freedesktop.hal.storage.mount-removable`
        if [ "$AUTH_EXISTS" = "" ]; then
                polkit-auth --user xbmc --grant org.freedesktop.hal.storage.mount-removable
        fi
    ;;

    abort-upgrade|abort-remove|abort-deconfigure)
    ;;

    *)
        echo "postinst called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

# Automatically added by dh_installinit
if [ -x "/etc/init.d/xbmc-live" ]; then
        update-rc.d xbmc-live defaults >/dev/null
        if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
                invoke-rc.d xbmc-live start || exit $?
        else
                /etc/init.d/xbmc-live start || exit $?
        fi
fi
# End automatically added section


exit 0

save and exit pico

reinstall xbmc-live

Code:
sudo apt-get install xbmc-live


Please let me know if this was helpfull or if you come across any errors.
I will update if needed.

GOOD LUCK!!!
thx for the tutorial.
I'll do it on my new ion system.
I want to update my Live version but can I use the key you mentionover here:

4.) import the GPA key

Code:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 64234534
Now you have updated the PPA's and have a valid key.


or do I need a key of my own?
if that;s the case how can I obtain mine (sorry but I do not now anything about linux Sad )
The GPA key above is the key you need for SVN jaunty PPA's. If you follow the howto line by line it will bring you to the latest SVN for jaunty. You can use wattazoum other PPA's if you wish but if you have installed from XBMCLive 9.04 you will be using jaunty anyway. I left his PPA info up there so other users could benifit from the how to as well.

If you take it to bleeding edge there are even more improvements. The only issue I can see is there is a problem with animated gifs. you will notice a small GFX problem with the favorite and power buttons. IMHO not an issue.

Let me know how it turns out.
I followed al your steps and installed the latest version.
Also had the same problem with some aniimated gifs but for me that's not a problem.

But unfurtunally I had a bigger problem after doing this update.
Sound of some DVD's I stream from my server dont sync with the image Sad

Strange thing about it is the fact that not all my movies have the same problem.
Some HD movies (MKV ) I tested worked fine.

To be sure I did it correct I installed the Live version all over again, and will try this aftrenoon to update it again to see if problems comes back.
Tut is exactly what I was looking for, but...

I've followed the guide word for word (copying and pasting), but now when my HTPC boots, instead of enterting the GUI, it's stuck at login screen.

Any ideas? Big Grin

Code:
Installing new version of config file /etc/init.d/xbmc-live ...
* Configuring system and starting XBMC...                                      
/etc/init.d/xbmc-live: 166: /usr/bin/runXBMC.sh: not found
* Increasing ALSA volumes...
/etc/init.d/xbmc-live: 166: /usr/bin/setAlsaVolumes.py: not found
Thanks for the howto.

Is there any reason why you say to install to a HD? I am running XBMCLive off a memory stick, created from the XBMCLive boot menu with a writeable partition, and the update process seems to work fine. I'm guessing it's just so there's enough disc space if you want to download the sources?

Cheers,

james
From my understanding if you install XBMCLive as removable, it installs an IMG instead of the actuall directories and files.

I'm not sure if this has an impact on the directions above but i asumed it did. Were you able to use the "How To" on a removable disk and have it update?
newb2linux Wrote:I'm not sure if this has an impact on the directions above but i asumed it did. Were you able to use the "How To" on a removable disk and have it update?

Yes, though I had to do a "sudo apt-get install xbmc" to get XBMC to update instead of just Ubuntu. I just noticed this is now in the HowTo... did it get added recently?

I think the trick is creating the memory stick via the XBMCLive image rather than using unetbootin. I first created a memory stick from the iso using unetbootin and any changes I made were not persisted across reboots. I used this image to create another bootable memory stick and said "yes" when asked whether I wanted to make it writable. Using the 2nd memory stick, any changes I made in the filesystem get persisted. I know this is true because I poked around in /etc/lirc to get my remote working, and it works across reboots while the first memory stick doesn't. So it cleverly keeps the .img file in sync with your changes.

Cheers,

james
newb2linux Wrote:copy this modified xbmc-live.postinst

Code:
#!/bin/sh
# postinst script for test
#
# see: dh_installdeb(1)

set -e

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <postinst> `abort-remove'
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package


case "$1" in
    configure)
        sed -i.bak-xbmc-live s/allowed_users=console/allowed_users=anybody/ /etc/X11/Xwrapper.config

        USER=xbmc
        USER_EXISTS=`grep $USER /etc/passwd|awk -F : '{print $1}'`
        if [ ! "$USER_EXISTS" = "$USER" ]; then
            adduser $USER
        fi

        USER_IN_GROUP=`groups xbmc|grep adm`
        if [ "$USER_IN_GROUP" = "" ]; then
                adduser xbmc adm
        fi
        USER_IN_GROUP=`groups xbmc|grep dialout`
        if [ "$USER_IN_GROUP" = "" ]; then
                adduser xbmc dialout
        fi
        USER_IN_GROUP=`groups xbmc|grep cdrom`
        if [ "$USER_IN_GROUP" = "" ]; then
                adduser xbmc cdrom
        fi
        USER_IN_GROUP=`groups xbmc|grep floppy`
        if [ "$USER_IN_GROUP" = "" ]; then
                adduser xbmc floppy
        fi
        USER_IN_GROUP=`groups xbmc|grep audio`
        if [ "$USER_IN_GROUP" = "" ]; then
                adduser xbmc audio
        fi
        USER_IN_GROUP=`groups xbmc|grep dip`
        if [ "$USER_IN_GROUP" = "" ]; then
                adduser xbmc dip
        fi
        USER_IN_GROUP=`groups xbmc|grep video`
        if [ "$USER_IN_GROUP" = "" ]; then
                adduser xbmc video
        fi
        USER_IN_GROUP=`groups xbmc|grep plugdev`
        if [ "$USER_IN_GROUP" = "" ]; then
                adduser xbmc plugdev
        fi
        USER_IN_GROUP=`groups xbmc|grep fuse`
        if [ "$USER_IN_GROUP" = "" ]; then
                adduser xbmc fuse
        fi
#       USER_IN_GROUP=`groups xbmc|grep sudo`
#       if [ "$USER_IN_GROUP" = "" ]; then
#               adduser xbmc sudo
#       fi

        AUTH_EXISTS=`polkit-auth --user xbmc --show-obtainable --explicit | grep org.freedesktop.hal.power-management.shutdown`
        if [ "$AUTH_EXISTS" = "" ]; then
                polkit-auth --user xbmc --grant org.freedesktop.hal.power-management.shutdown
                polkit-auth --user xbmc --grant org.freedesktop.hal.power-management.shutdown-multiple-sessions
        fi
        AUTH_EXISTS=`polkit-auth --user xbmc --show-obtainable --explicit | grep org.freedesktop.hal.power-management.reboot`
        if [ "$AUTH_EXISTS" = "" ]; then
                polkit-auth --user xbmc --grant org.freedesktop.hal.power-management.reboot
                polkit-auth --user xbmc --grant org.freedesktop.hal.power-management.reboot-multiple-sessions
        fi
        AUTH_EXISTS=`polkit-auth --user xbmc --show-obtainable --explicit | grep org.freedesktop.hal.power-management.set-powersave`
        if [ "$AUTH_EXISTS" = "" ]; then
                polkit-auth --user xbmc --grant org.freedesktop.hal.power-management.set-powersave
        fi
        AUTH_EXISTS=`polkit-auth --user xbmc --show-obtainable --explicit | grep org.freedesktop.hal.power-management.suspend`
        if [ "$AUTH_EXISTS" = "" ]; then
                polkit-auth --user xbmc --grant org.freedesktop.hal.power-management.suspend
        fi
        AUTH_EXISTS=`polkit-auth --user xbmc --show-obtainable --explicit | grep org.freedesktop.hal.power-management.hibernate`
        if [ "$AUTH_EXISTS" = "" ]; then
                polkit-auth --user xbmc --grant org.freedesktop.hal.power-management.hibernate
        fi
        AUTH_EXISTS=`polkit-auth --user xbmc --show-obtainable --explicit | grep org.freedesktop.hal.storage.mount-removable`
        if [ "$AUTH_EXISTS" = "" ]; then
                polkit-auth --user xbmc --grant org.freedesktop.hal.storage.mount-removable
        fi
    ;;

    abort-upgrade|abort-remove|abort-deconfigure)
    ;;

    *)
        echo "postinst called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

# Automatically added by dh_installinit
if [ -x "/etc/init.d/xbmc-live" ]; then
        update-rc.d xbmc-live defaults >/dev/null
        if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
                invoke-rc.d xbmc-live start || exit $?
        else
                /etc/init.d/xbmc-live start || exit $?
        fi
fi
# End automatically added section


exit 0

There has since been some changes to the xbmc-live.postinst script to the one provided here. Look at http://xbmc.svn.sourceforge.net/viewvc/x...e/postinst.
I'm sure if you are using the How-to from scratch the postscript error no longer applys. Was just at the time of writing. Let me know if any one finds this to be not true. Smile
Thanks, this worked really well for me. I had some trouble getting the lines copied into the list file correctly, but after I fixed it everything went smoothly.
Great to hear!
Pages: 1 2 3 4 5