Last week, I explained how to build U-boot, the kernel, and Android for Freescale i.MX6 HDMI dongle reference platform. Since them, there has been a bit more activity, with Richtechie releasing source code to some ARMTvTech members. However, this source code is very similar to the one released by Freescale, and misses some part present in the kernel config on GK802 such as CONFIG_MACH_MX6Q_RICHTECHIE, and the company clearly does not comply with the GPL. Let’s forget that for now, as Jasbir (who is also behind the Hackberry board) has managed to build and boot the kernel on his mini PC. There’s still more work to do, but at least we have a based to work on. In the meantime, I’ve noticed rz2k, an other developer, was also giving it a try on #arm-netbook Freenode IRC channel, so we decided to setup a few things to facilitate development and communication between developers.
There are now 2 repositories on gihub rz2k account for HI802/GK802 software development:
- https://github.com/rzk/linux-imx – Freescale i.MX6 kernel source with HDMI dongle patches
- https://github.com/rzk/uboot-imx – Freescale i.MX6 U-boot source with HDMI dongle patches
Assuming, you’ve already installed Linaro toolchain in Ubuntu or another Linux distribution, here’s how to get and build the Linux kernel:
1 2 3 4 5 |
git clone git://github.com/rzk/linux-imx.git cd linux-imx git checkout imx-android-r13.4-ga-hdmidongle make imx6_android_defconfig CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm make -j8 CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm |
and U-boot:
1 2 3 4 5 |
git clone git://github.com/rzk/uboot-imx.git cd uboot-imx git checkout imx-android-r13.4-ga-hdmidongle make mx6q_hdmidongle_android_config CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm make -j8 CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm |
For both repositories, the git checkout part is not really needed since imx-android-r13.4-ga-hdmidongle is the default branch, and there’s no default config for Hi802/GK802 yet, so “imx6_android_defconfig” and “mx6q_hdmidongle_android_config” are just taken as examples, but this should change soon.
We’ve also setup two communication channels for developers, and anybody is welcomed to join:
- #imx6-dongle IRC channel on Freenode
- A mailing list on Google Group
Freescale i.MX6 platform holds a lot of promise with GPU and VPU support in Linux, and hopefully, there will be enough traction in the community to make it a great Linux platform.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
are you able to boot some debian/ubuntu on Hi802/GK802 ?
freescale provide working debian/ubuntu distro with working hw acceleration (from readme file)
@m][sko
It’s best for Jasbir or rz2k to answer, but I understand they have used the binary U-boot for now, done some modifications to the kernel, and Jasbir is able to boot to Ubuntu with this kernel. He said there’s more work to do however, but I don’t know the details.
Ubuntu on the i.MX6 is booting on the Wandboard and demo images are available.
@wandboard
I’ll try that next week on the Wandboard hopefully 🙂
Do you know if OpenGL is working now? I’ve heard there was a problem for all platforms with the GPU drivers in Linux.
@cnxsoft
Yes.
And that is 101% confirmed for all platforms (/boards).
Also as the company released source code(s) have always been incomplete and now that Limar is taking fight back to the corporate f4g5..its about time.
Go Lima!
@cnxsoft
Progress and instructions for creating a bootable image – http://jas-hacks.blogspot.co.uk/2013/02/imx6-gk802hi802-working-kernel-with.html.
Small typo in post: the link to “linux-imx” is pointing to “uboot-imx”.
@ASM
Thanks. Fixed.
@cnxsoft – I thought it was a little complex, thanks!
And – unfortunately with the ever-shifting sands – this git repository of rz2k (rzk) doesn’t seem to exist anymore. Is there another i.mx6 Android repository to use?
Thank you so much for helping me learn the ropes!
@hroth
That’s the one https://github.com/imx6-dongle/linux-imx
@cnxsoft
Thank you – as always!
I can compile but:
shell@android:/data/home # insmod hid-quanta.ko
insmod hid-quanta.ko
insmod: init_module ‘hid-quanta.ko’ failed (Exec format error)
where dmesg reads:
hid_quanta: no symbol version for module_layout
I wonder if I missed a step? This is for the 1.65.4 Richtechie Android kernel, so it seems like I’ve got the wrong symvers for this.
@hroth
Google tells me to use “modprobe -f hid-quanta”, or re-build your kernel: http://askubuntu.com/questions/14627/no-symbol-version-for-module-layout-when-trying-to-load-usbhid-ko
@cnxsoft
Right, thanks for your patience and help. I did read that earlier – unfortunately Android seems a little stunted (I can only find insmod in the toolbox, not modprobe) and it seems like the GK802 Android kernel cannot be re-built without Richtechie’s assistance which they’ve confirmed they will not release.
http://tabletrepublic.com/forum/freescale-i-mx6-quad-core/3234-%5Brom%5D-i-mx6-stock-rom-mod-57-print.html
A dead end, it seems. I did email Richtechie in case they had time to compile the kernel module.
I am sure it is a lot easier to compile the kernel natively in Ubuntu on the MX6Q. If only it could run Android APKs!
I want to buy device with iMX.6
anybody can confirm if there is working hw accelerated video and audio decoding/encoding with working libs(gstreamer for example) on ubuntu ?
I saw some information about watermarking
@m][sko
Yes, it works – http://www.cnx-software.com/2013/03/25/ubuntu-11-10-image-for-hi802-gk802-is-now-available-for-download/
I started a post about gstreamer a little while back, I stopped (temporarily) because multi-video playback does not work with X11 (That is playing like 3x 1080p at the same time). But it’s supposed to work if you have an image without X.
Also if I use gstreamer in Ubuntu, the video will show with some alpha blending so we can see the desktop though the video. But It’s just because of my lack of knowledge, because Totem player, which I’ve been told uses gstreamer, works just fine.
@cnxsoft
Finally, some success. I looked again at the Richtechie tarball release of source code and it included a Module.symvers. I preserved that and compiled the hid-quanta module… and it worked!
For your interested readers:
1. Download the Richtechie tarball
2. Edit include/config/auto.conf (as if you were Richtechie)
3. make M=drivers/hid CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm
and it seems everything is accepted in the 1.65.4 Android kernel.
Only problem is that it doesn’t appear to work when the device is connected. (!!) But it may be useful for other Android readers. And maybe I can actually debug something.
Here is the dmesg from the Android kernel:
ehci_fsl_bus_suspend begins, DR
ehci_fsl_bus_suspend ends, DR
ehci_fsl_bus_resume begins, DR
ehci_fsl_bus_resume ends, DR
usb 1-1: new full speed USB device number 15 using fsl-ehci
usb 1-1: device v0408 p3008 is not supported
generic-usb 0003:0408:3008.0009: usb_submit_urb(ctrl) failed
generic-usb 0003:0408:3008.0009: timeout initializing reports
input: Quanta OpticalTouchScreen as /devices/platform/fsl-ehci.0/usb1/1-1/1-1
:1.0/input/input9
generic-usb 0003:0408:3008.0009: input,hidraw0: USB HID v1.10 Mouse [Quanta O
pticalTouchScreen] on usb-fsl-ehci.0-1/input0
usb 1-1: USB disconnect, device number 15
ehci_fsl_bus_suspend begins, DR
ehci_fsl_bus_suspend ends, DR
ehci_fsl_bus_resume begins, DR
ehci_fsl_bus_resume ends, DR
usb 1-1: new low speed USB device number 16 using fsl-ehci
usb 1-1: device v0461 p4d81 is not supported
input: USB Optical Mouse as /devices/platform/fsl-ehci.0/usb1/1-1/1-1:1.0/inp
ut/input10
generic-usb 0003:0461:4D81.000A: input,hidraw0: USB HID v1.11 Mouse [USB Opti
cal Mouse] on usb-fsl-ehci.0-1/input0
@hroth
I’ve read quanta-hid driver is different for Android and Linux: https://sites.google.com/site/notesonandroid/dual-touch-patch-for-quanta-hid-driver
@cnxsoft
Yes, you’re right – although that patch doesn’t appear to be for the hid-quanta.c in the current tarball. I wonder if I will have to manually apply the patch.
Also – I’m embarrassed that I didn’t realize the quanta was only being recognized as a “generic-usb” instead of hid-quanta… I have to convince Android to use the hid-quanta driver still.
Which ends up being CONFIG_USB_HID which is already compiled in the kernel. It looks like recompiling the kernel is the only way to proceed. Unfortunately, that doesn’t sound possible with the Richtechie compile options.