XBMC on utilite SSD

Intro

I have stated several times that the XBMC image can perfectly be run from the the SSD on the utilite pro.
Yet, as I wanted users to be able to easily revert to another installation, I have not publicly published the way to run the XBMC image from the SDD so far.
Very recently, Compulab published the way to fully reinstall their official image on SSD on utilite wiki.
So it is time that I describe how to install the XBMC image on this SSD !

Installation how-to

First, you have to follow compulab wiki to create a SDcard.
Here is a quick summary (You need a Linux host) :

sudo SD=/dev/sdX ROOTFS_IMAGE=./utilite_ubuntu-12.04.3_2013-12-11.tar.bz2 ./dep-procedure.sh

with /dev/sdX being the SDCard device.

  • Insert the SDcard in utilite and boot your device with this fresh image
  • Configure Network and download my XBMC image on the utilite.
  • Download again the installation script
  • And launch it that way :
sudo SSD=/dev/sda ROOTFS_IMAGE=./xbmc-image-utilite_ssd.tar.bz2 ./dep-procedure.sh
  • When the script is finished, turn off the utilite, remove the sdcard and you are done !

You can now power on the device and enjoy your SSD…

build environment

Intro

In my previous post, I have published a little how-to to rebuild the whole image using yocto.
Some readers managed to follow the guide and to build the whole thing but a few others reported issues which seem mostly related to their build host.
Of course, yocto should behave the same (and it strives to do so by rebuilding almost all native requirements) whatever the development environment is. However it is not always the case especially for my XBMC recipe (So blame me for it : I am mostly the culprit here)
As I have not been able to understand all the reported issues, I have just decided to publish this new article to describe how to create a build environment which is known to work.

RFS generation

Of course, I could distribute a whole virtual machine image but I will describe a more lightweight way to generate a root filesystem ready to run yocto.
The plan is simply to use debootstrap to fetch a basic Ubuntu 12.04 (precise pangolin) file system and to chroot in this new environment to install the few additional requirements to be able to build my image.

Install debootstrap

If you don’t already have this utility in your distro, just install it. Most Linux distro (even RPM based distro) package it.
Of course the ubuntu/debian (and derivative) users will issue a command like :

apt-get install debootstrap

OpenSuse users will try

zypper install debootstrap

And I will be flamed by Fedora fans if I do not allude to :

yum install debootstrap

Install and configure precise

OK, let’s start :

USER=$(id -n -u)
CHROOT_PATH=$(pwd)/precise

# if your native install is 64bits
sudo debootstrap --variant=buildd --arch amd64 precise $CHROOT_PATH
# if your native install is 32bits, you will use instead 
# sudo debootstrap --variant=buildd --arch i386 precise $CHROOT_PATH

# copy a few file from native host to be able to use the same user in chroot
sudo cp /etc/passwd $CHROOT_PATH/etc/
sudo cp /etc/shadow $CHROOT_PATH/etc/
sudo cp /etc/resolv.conf $CHROOT_PATH/etc/
sudo cp /etc/group $CHROOT_PATH/etc/
sudo mkdir $CHROOT_PATH/home/$USER
sudo chown $USER  $CHROOT_PATH/home/$USER

# give access to sys, proc and dev in chroot 
# Not permanent (has to be redone after reboot)
 sudo mount --bind /proc $CHROOT_PATH/proc
 sudo mount --bind /sys  $CHROOT_PATH/sys
 sudo mount --bind /dev  $CHROOT_PATH/dev
 sudo mount --bind /dev/pts  $CHROOT_PATH/dev/pts

Then we have to finalize the installation in the chroot itself by entering into the fresh system :

sudo chroot ./precise/ /bin/bash -i

In the new system, let’s finish the install :

mkdir /run/shm
mount -t tmpfs none /run/shm/

apt-get update
apt-get install wget curl python-m2crypto git diffstat  gawk chrpath texi2html texinfo openjdk-6-jre zip
exit

Build

You should have exited the chroot, now reenter as normal user :

ID_NUM=$(id -u)
GID_NUM=$(id -g)
sudo chroot --userspec=${ID_NUM}:${GID_NUM} ./precise/ /bin/bash -i

In the chroot, you can issue the commands from the other post to launch the build.
I copy them for convenience :

cd  
#Install repo
mkdir ~/bin
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
 
#Create BSP folder
PATH=${PATH}:~/bin
mkdir xbmc-bsp
cd xbmc-bsp
 
#Download layers
repo init -u https://github.com/wolfgar/fsl-community-bsp-platform -b dora
repo sync
 
#Initialize build environement
#Valid MACHINE values are wandboard-quad wandboard-dual and utilite
TEMPLATECONF=`pwd`/sources/meta-stef/conf MACHINE=wandboard-quad source setup-environment build
 
#Let's build the whole thing
bitbake xbmc-image

And you are done… 😉

XBMC for UDOO

Intro

Udoo is a dev board which was funded by a kickstarter project.
During these last years, I am convinced that many people have though : Why the hell there is not a single modern dev board (pandaboard, beaglebone, Rpi, cubieboard…) which strives to provide some sort of real compatibility with the arduino ecosystem ?
It would be the best of two worlds : A modern a powerful system on chip and the availability of so many sketches for all and any crazy projects…
Udoo exactly solves this absurdity by coupling a freescale iMX6 and a Atmel SAM3X8E (arduino due) !
Thus, this board is obviously very attractive for DIY enthusiasts and I am very pleased to make my iMX6 XBMC work available for it.

XBMC

I have just packaged the recent u-boot 2013-10 for udoo and upgraded the 2.6.35_4.0.0 udoo kernel to 2.6.35_4.1.0 so that my last image can be available for this exciting platform.
I also added all relevant recipes in my yocto layer : The new machines are udoo-quad and udoo-dual
That being said, my previous post is fully relevant for any other topics (installation, bug reports, distro generation and so on…)

  • The udoo-quad image is available for download – md5sum 676736f4c0a139ba9ecd48ec5c7be29b
  • The udoo-dual image is available for download – md5sum 53773dd84d97bbbd25aa008ab250ddac

This is a first release which may be quite rough but it will improve over time of course…
Discussion about this image can happen in udoo forums