Yet another yocto image

Introduction

I am pleased to announce that a new yocto based image (v0.0.4) with my newest XBMC for iMX6 is now available.
I would like to thanks all people who helped me to improve the current state of XBMC.
This image is an update of the previous one and is built in a similar way (Thanks to yocto dora)
Note that this image is rather for advanced users who want to give a try at the current state of XBMC for iMX6. Many users will prefer other well packaged distros like geeXboX or openelec.

The image is currently available for the following devices :

  • Wandboard Dual and Quad
  • Utilite : I have a pro model but it may work on other variants (untested for now)
  • udoo Dual and Quad

What’s new

This image packages XBMC Gotham Alpha 11 (12/31/2013) with my specific changes for iMX6.
The biggest changes compared to the previous one are :

  • Full liveTV support (with support for hardware deinterlacing)
  • Solve issues with some videos which were jerky
  • The “noise” on SPDIF is worked around
  • Kernel configuration also enablse many new options and drivers (especially most DVB USB drivers)

Resources

Here are the files :

Installation

I have updated the website to provide direct access to frequently used instructions.
For installation, you can refer to this page (It is also available in the menu header->howto->installation)

Also for liveTV, note that all XBMC clients are packaged.

If you want to plug a tuner on your target itself, most kernel USB DVD drivers are available.
Firmwares are not available by default in the Root FileSystem but the command :

get_dvb_firmware

will enable to download firmware for common devices..

tvheadend is running but you have to configure it a first time. To do so :

killall tvheadend
tvheadend -C

Then connect to you web interface : http://yourip:9981

Known issues

  • Some interlaced H264 1080p streams @50fps or @60fps are not played smoothly
  • HDMI passthrough for HD audio does not work
  • lirc is not properly configured to function properly “out of the box”
    Yet everything is available if you have a working driver (the driver for cheap IR receiver is available in wandboard image)
    You can launch lircd that way :
lircd -d /dev/lirc0 /etc/lircd.conf –output=/dev/lircd

And then xbmc that way,

/imx6/xbmc/lib/xbmc/xbmc.bin -l /dev/lircd

At last, the Smart packages updater has a few issues in this release :
If the update command

smart update

does not work in spite of working internet connection, then, issue the following commands :

rm -rf /var/lib/smart/
smart channel --add wolf_repo type=rpm-md baseurl=http://www.stephan-rafin.net/rpmhf2

For obscure reasons, smart is fooled in thinking that some basics packages are not installed (while they are ) and fails when it tries to reinstall them…
As a workaround, when you install a package, use the stepped option :

smart install --stepped your_package

and refuse installation of already installed packages…

Bugs Report

I have created a forum to discuss issues.
Please use it instead of comments as it should be more appropriate…

Conclusion

Lots of work has been addressed since the previous version.
I hope you will be able to witness the improvements and to enjoy liveTV.
Please understand that I cannot dedicate too much time for the packaging itself as I still have to focus on XBMC development and improvement…

Donate Button

New XBMC yocto image

Introduction

I am pleased to announce that a new yocto based image (v0.0.3) with my newest XBMC for iMX6 is now available.
This is a Yocto image based upon the dora version (V1.5).
This image takes advantage of the great work from freescale community while adding my own layer for most XBMC related stuff.
Today this release is available for the following devices :

  • Wandboard Dual and Quad
  • Utilite : I have a pro model but it may work on other variants (untested for now)

What’s in it

Basically, this image packages XBMC Gotham Alpha 9 with :

  • iMX6 hw accelerated decoding (VPU) for most standard formats
  • iMX CEC support (for utilite only as wandboards are not properly wired)
  • WIFI configuration thanks to network manager addon
  • Support for HDMI/SPDIF/Analog sound outputs (including passthrough for HDMI and SPDIF)
  • SMB/NFS/uPNP network shares and other standard XBMC features

It is a ARMHF build with 3.0.35_4.1.0 kernel.

Compared to my previous images, it tries to provide better support for developers :

  • Native compilation (gcc and standard dev libraries already installed)
  • Cross compilation (Full SDK provided)
  • Straightforward way to fully rebuild the yocto distro

It also solves some bugs found in the previous images :

  • The transiant black screens are gone
  • The Jump backward and Fast Backward Fast Forward are now OK
  • Many videos are now perfectly smooth and no frame drop occurs (except when the GUI is being opened)
  • Some bugs related to the main XBMC Gotham alpha are fixed in this updated alpha 9 version

Resources

The following sdcard images are available :

  • Wandboard Quad (md5sum f913b2d586e96f8ddaa0d1014720abba)
  • Wandboard Dual (md5sum cc39390ee87de8b8ef806604a79c410a)
  • utilite (md5sum 6a3dae479cccedeae63d692f32cdaba2) (Was updated on 11/20 to solve boot issue some users were faced with)

You can also download :

  • the wandoard Quad RFS alone (md5sum 6494d166591044beba3b27d4d6e889b6)
  • the SDK for x86_64 linux host (md5sum c6ec065ba02add6005f8f4b82b5aa0a9)

Installation

The provided images target 2GiB sdcards.

  • Download the relevant image for you device
  • Extract it by using the xz utility :
xz -dv image_name.bin.xz
  • Burn it on a sdcard by using
dd if=image_name.bin of=/dev/sdx bs=4M

With /dev/sdx being the sdcard device (for instance /dev/sdd)

Optionally, you can use gparted to resize the second partition/FS and benefit from all the available space on your card.

Note that installation on internal SSD for utilite pro is perfectly doable. I will publish the way to do it when the recovery tool from Compulab will be available.

How to use

At startup, XBMC is automatically launched, just have fun…
Be aware that :

  • login is root and password is empty
  • You have a shell on the serial line interface (115200n8)
  • A ssh/scp server is up and running
  • Your wired Ethernet will be configured by DHCP and you can setup wifi thanks to the XBMC nm addon

Known issues

  • Sound saturation still occurs on analog output : Refer to this ticket
  • HDMI passthrough for HD audio is not yet validated
  • live TV support is being worked on but not yet available

Moreover, the Smart packages updater has a few issues in this release :
If the update command

smart update

does not work in spite of working internet connection, then, issue the following commands :

rm -rf /var/lib/smart/
smart channel --add wolf_repo type=rpm-md baseurl=http://www.stephan-rafin.net/rpmhf2

For obscure reasons, smart is fooled in thinking that some basics packages are not installed (while they are ) and fails when it tries to reinstall them…
As a workaround, when you install a package, use the stepped option :

smart install --stepped your_package

and refuse installation of already installed packages…

Bugs Report

This image is still work in progress.
If you experience instabilities, crashes or bugs, please report them to me without being too rude 😉
Known bugs are tracked here
Please when you report a bug :

  • Try to be as precise as possible regarding the context.
  • When it occurs, try to download the 2 files :
    • /tmp/temp/xbmc.log
    • /var/log/messages
  • Try to reproduce it

For now, report these bugs on this blog, then we will move to a forum thread may it be the XBMC one or another one if required.
I will create tickets in trac by myself as I have disabled the ability to create tickets for anonymous because of spams.

If you need to send files, I will give you a direct link to upload on my server by mail.
In case I ask you to create a core dump dump here is the way to do it :

  • Stop XBMC
  • login on the board and issue the commands :
echo "/tmp/core.%e.%p" > /proc/sys/kernel/core_pattern
ulimit -c unlimited
/imx6/xbmc/lib/xbmc/xbmc.bin &

Then if XBMC crashes, a file core.* will be created in /tmp folder

Rebuild your own distro

Just issue the following commands on a Linux host to rebuild from scratch the whole distro :

#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

At the end you will find the image in build/tmp/deploy/images/$MACHINE folder.

Conclusion

That’s all for now, I will focus on liveTV (including hw deinterlacing) and I will investigate the analog sound output issue during the next days.
If you design a iMX6 board/device (Dual ultra or Quad) and would like that I add support to it, please mail me.
At last, if you appreciate my work and want to encourage it, you can consider to click the following button.
Donate Button

geeXboX for utilite

Hi all,

I am happy to announce that utilite is an official target of the brand new geeXboX V3.1.
All my recent work related to XBMC and CEC is now properly packaged in this distro.
I warmly thank the geeXboX team for welcoming me in the team and for allowing utilite to become a supported target.

You can download the image here.

To install this image on a sdcard, please use this make-sdcard script and have a look at the geeXboX documentation

Edit : Following several requests, here is a 4GiB sdcard image ready to be burned -MD5sum is ceab483a976d8f67d4f40882f237ae68-

I know that some of you were expecting such a news and I hope that it will enable for a smooth experience.

Kind regards

XBMC for utilite (CEC support included)

Utilite device

I have already alluded to utilite devices several times (at least here, here and here).

The utilite pro is definitively the best i.MX6 device I currently own for several reasons :

  • It is based on the powerful i.MX6Q with 2Gib of RAM
  • The bootloader is in a dedicated SPI NOR flash (so it is always available)
  • It includes a SanDisk SSD U100 drive which is just a sdcard killer
  • It provides 2 Gbps Ethernet interfaces (one of it being the standard imx6 ENET interface and the other a PCIe intel I211 controller).
  • It comes well packaged in a nice aluminum case (with power button) and accessories (wifi antenna + power supply + S/PDIF coax and uUSB to RS232 cables)
  • It also has an backed RTC (it may appear as a detail but is just another little asset for this product)

(it is worth mentioning that this product is based upon the embedded board cm-fx6 which is properly documented, especially schematics are available)

Some people would argue that it is expensive. Obviously it may seem to be the case when compared to a GK802 stick. But when you have a detailed look at the features, it is simply aligned with the price of comparable devices I guess…

XBMC for utilite

When I released my HardFloat XBMC image, I said I will also release an image for utilite.
So here it is ! This image is special : Not only does it provide my most recent XBMC build for iMX6, but it also features CEC as I mentioned in my previous post
You can download the image from this link – md5sum is cf4523d1e32ebd35faa5264abe3523fb.
Warning : I updated the image on the 30th of September 20:10 GMT because the included XBMC had an issue. Please check carefully your md5sum and download the image again if it is not the good one…

It is a sdcard image : That way you can try it without interfering with your SSD install (of course you will not benefit from the SSD that way but it is a safe and easy way to give a first try at my image)
To get it up and running :

  • Flash the sdcard and insert it in your device
  • Plug the serial line, configure it @115200n8 and power on your device
  • Stop the bootloader by pressing ESC
  • Issue the following commands :
setenv sdargs 'setenv bootargs console=ttymxc3,115200 root=/dev/mmcblk0p2 rootwait video=mxcfb0:dev=hdmi,1920x1080@60,if=RGB24 consoleblank=0' 
setenv start_sd 'mw.l 0x20E0034 0x593A046 ; mmc dev 2 ; fatload mmc 2 0x10800000 uImage-cm-fx6 ; run sdargs ; bootm'
saveenv
  • Then you can boot by issuing the command :
run start_sd

Please note that you will only have to issue the command :

run start_sd

to boot from the sdcard instead of the SSD during the next reboots …

Apart from this, you can refer to my previous post to get more info regarding this image…

utilite benchmarks

In a previous post, I said I will publish some additional benchmarks regarding utilite product. Unfortunately I had no opportunity to run and publish these benchmarks so far.
That’s why, I am pleased to share with you the comparative benchmarks between Rpi and utilite which have just been updated by Peter on is website.
Beyond these numbers, I would also like to underline that utilite is the only iMX6 product I am aware of which has a real gbps Ethernet controller.
Indeed other iMX6 products only have a Ethernet port connected to the internal ENET interface which is subject to 470 Mbps limitation (total for Tx and Rx) due to internal bus throughput. For details, see the ERR004512 erratum in the i.MX6Dual/6Quad errata document IMX6DQCE. Utilite pro has a second gpbs ethernet interface which is connected to PCIe and which is not subject to this limitation (of course the other port is concerned by the limitation)…

Odds are high I will speak about this device soon as installing an alternative image on SSD may interest some people while the first units are shipped…

Utilite & XBMC

In a previous post, I shared my first impressions regarding my brand new utilite pro.

I have just managed to get XBMC up and running on this device so it is time for a little update.
First, as I have just alluded : my XBMC build for iMX6 now works on the utilite. Basically, after a few tweaking in the utilite kernel, my whole yocto image runs fine. As compulab seemed to be very interested in getting XBMC up and running (and I shared all my work with them so far), odds are high they will package it in their own sw delivery (This is only my guess, not an official announcement in any way…)
Then, I expressed some fears regarding thermal dissipation when I realized that the case was used as a heatsink. In fact, I had a bad experience with my GK802 stick which exhibits a similar approach with very bad results. At the end, the utilite thermal behavior is correct : Not as good as the wandboard but perfectly acceptable : Using heavily the XBMC GUI for a few minutes enables to reach the following worst core temperature :

  • On the GK802 : 80°C (With an additional heatsink on the case, without it, you trigger the thermal protection at 90°C !)
  • On the wandboard quad : 55°C (The big heatsink is really efficient)
  • On the utilite : 65°C (Safe and far better than the GK802)

Note that the junction temperature of iMX6 (the consumer version) is 105°C and that a kernel driver is in charge of protecting the device against overheating (it handles an interrupt which is triggered when core temp reaches 90°C).
The 65°C worst figure of utilite seems just fine and, as a side note, it surely proves that the main issue with the GK802 is its thermal pad (and not the concept of heat dissipation through its aluminum case)

In my previous post, I also mentioned an issue with the second Ethernet interface. It is now solved thanks to compulab support : My device was one of the first produced units and some eeproms (whose content is required by the ethernet driver) were not properly programmed. No doubt that it will not happen with mass production units…
At last, I still have my little issue with the serial line (bad characters at 115200bps) but not a big deal as reducing the baudrate is a functional workaround. Out of curiosity, I will certainly plug a scope to understand why the reception is so poor at 115200bps…

As a conclusion, almost all my issues are solved and utilite is definitively a great product. It would be even better with a toslink connector for sure but well, I guess many people will be happy with the coax interface and this device has some serious assets with its SSD and its 2 Gbps Ethernet links…
As my yocto RFS is fully compatible, I will release images both for wandboard and for utilite in the future.
Ho, and you can expect a new image very soon : It is almost ready with an updated XBMC (new codecs and improved support for sound devices) and a full HardFloat ABI build. Stay tuned… 😉