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

First look at Matrix TBS2910

Intro

A few weeks ago, I received from TBS technologies their new Matrix tbs2910 device

The hardware device

It is iMX6Q device derived from the SabreSD board with nice specifications.
Of course, we find common features for an iMX6Q device such as :

  • 2GiB RAM
  • HDMI output
  • 1Gbps wired Ethernet (in fact limited to 400mbps as any other iMX6 device)
  • wifi 802.11n/b/g
  • sdcard slot
  • Analog audio output
  • 3 USB 2.0 slots
  • 1 USB OTG
  • RS232 (optional with additional adaptation board)

But it also exhibits a few, less common, interfaces :

  • mini PCIe slot
  • TF card slot
  • optical SPDIF (with TOSLINK connector)
  • SATA interface (including power connector)

Last but not least : A 16GiB eMMC is embedded.
This approach differs from most alternatives and their sdcard slots only solutions…

It is also worth mentioning that the HDMI CEC signal is properly wired and functional.

The device is packaged in a acrylic case which looks a little… Hmm well I guess you should have look at the pictures and make your own mind (Click on the picture tab)
There are also a few buttons (power, vol up and down) that are not so useful to be honest : But after all they could be bounded to other activities with a few changes…

At last the most worrying item is a fan !
Why the hell should we add a fan on a iMX6 device ? Of course heat dissipation can become a concern especially with the Quad variant and its GPU but I really think most ARM users just don’t want active cooling and that’s it…

Software

The embedded eMMC can be programmed through the USB OTG port with freescale MfgTool2 tool, a user friendly but windows only utility.
TBS distributes several images on sourceforge :

  • An Android image
  • An ubuntu image
  • A MatrixTV image

I will mainly speak about the matrixTV as it is the one I have tried and I know about.
This image is built using the openbricks build system and the relevant source is again available on sourceforge.
This image packages my XBMC port along with useful programs for liveTV (especially VDR and tvheadend).
It even supports out of the box the TBS tuners (TBS5922, TBS5980, TBS5925, TBS5680, TBS DVB-C sticks, TBS5220, TBS5880,TBS5881) with a configuration program to setup everything at first boot.
That way, I have been able to have a smooth experience with my DVB-T TBS5880 tuner at first try (well at second try to be perfectly honest because there was a little mismatch between the dvb-c and dvb-t kernels at some time. But it is now something of the past…)

The developers seem to be pretty active and to listen to users feedback.
After my grunts about the fan which is quite loud, they quickly implemented an automatic regulation that really mitigates the issue as the fan will almost never run while using XBMC (only a few seconds if you heavily use the GUI but not during playback for sure)
They have also integrated in their kernel Rene driver to give access to a cheap IR receiver (It is easy to connect a TSOP on the header available at the corner of the board)

To get an idea about how it behaves, you can have a look at these videos posted by an user (piotras) on the XBMC forums :

Conclusion

At the end, it can definitively be an attractive iMX6 device with specific features and a team which wants to provide a good experience out of the box.
As I guess many users wonder which iMX6 devices they should buy, I will try to post an article which compares the ones I own (I currently have 7 different boards/devices) to help with this choice.
I will also post a similar article for the cubox-i4 as soon as I can as I have recently received a sample from solidrun and it is a very good device…

github account down

Hi all,

Only a little post to inform that github has deactivated my account (wolfgar) for unknown reasons.
I have the following error message :

One of our mostly harmless robots seems to think you are not a human.
Because of that, it’s hidden your profile from the public. If you really are human, please contact support to have your profile reinstated.
We promise we won’t require DNA proof of your humanity.

So all my work (XBMC, yocto meta layers, kernels…) is unavailable for now.
I am sorry for the inconvenience and I hope it will be solved soon (Don’t worry I have all my stuff locally and I will be able to host it elsewhere if github does not solve this stupid issue)

Edit : It is solved !
You can access my account again. Many thanks to github team for dealing with this on sunday…

Stephan

Cheap IR receiver

Intro

Turning an iMX6 board into a perfect mediacenter certainly requires to be able to interact thanks to an IR remote command.
Some of you may think it is a thing of the past and a nice remote application on a smartphone is the way to go but I may be quite old school as I still think that a plain old remote is very useful.
If your TV and your board support CEC, then your TV remote can be the right candidate. Unfortunately, as I pointed in a previous article, only a few products (utilite being the only one I have successfully tested so far) wire correctly the CEC signal.
If you are unlucky with CEC, a IR receiver may be very welcome. Here again there are no many imx6 boards/products which have such a feature. As far as I know solidrun cuboxi products/boards are the only one.

So when a user, Rene vand den Braken, sent to me a way to add this feature thanks to a very cheap component 2 months ago, I though it is worth sharing this with all of you. (I am ashamed for being so long to write this article).
The wandboard will be used here but the same kind of hack can be done on any imx6 board with VCC/GND and a GPIO available on headers with minor modifications.

At last, it is worth mentioning that the initial driver/idea comes from Aron Robert Szabo and his work on RaspberryPi and that even if this hack works fine at least for Rene and I, you decide to realize it under your own responsibility and we will not be responsible if you damage your board…

Hardware

At hardware level, we use a Vishay TSOP4838. It is a very affordable component : I have been able to order 5 pieces for 2.6$ (shipment included) on ebay.
You can read the whole datasheet but here is what you need to know :
The TSOP has 3 pins :
tsop4838
1 = OUT, 2 = GND, 3 = Vs

For our example, we will connect the TSOP on the JP4 header
pins
And we will connect :

  • TSOP 2 to JP4 pin 19
  • TSOP 3 to JP4 pin 1
  • TSOP 1 to JP4 pin 18

Here is how it looks like on my own wandboard
tsop_wand

Software

Changes are required in the kernel (they will be included in my next image of course).
First the GPIO has to be freed from the generic GPIO framework to be usable for our needs. For now, the used pin is hardcoded and you will have to change this by yourself if you decide to use another GPIO.
Then, a dedicated lirc driver (lirc_wand.c) is required : This driver has been provided by René (as a derivative work from Aron lirc_rpi.c driver).
All the required changes are available in this commit

This new kernel driver will behave as a lirc_serial driver and the standard userspace lirc tools will be usable after loading it by :

modprobe lirc_wand

Maybe I can summarize how to start quickly with lirc user tools :

irrecord -n -d /dev/lirc0 myremote.conf

will enable to create a new configuration file for your remote.
You can launch lircd that way :

lircd -d /dev/lirc0 /path/to/myremote.conf

And, at last, you can test the correct behavior by launching

irw

and pressing buttons on your remote
Many LIRC tutorials will give you further details…

Conclusion

That’s it ! Now, you can have fun with your IR remotes.
All this work can easily be adapted for another imx6 board…