GK802 (Freescale i.MX6Q, 1GB RAM, 8GB internal microSDHC)

Firmware

Stock Android

  • flashing an Android full image of internal SDHC card (file $(imgfile}.vhd or ${imgfile}.dd) via dd

VHD-to-RAW/DD

VBoxManage clonehd ${imgfile}.vhd –format RAW ${imgfile}.raw

pack to an archive

cp -v –sparse=always ${imgfile}.raw ${imgfile}.dd && rm -v ${imgfile}.raw tar -vcSf ${imgfile}.tar ${imgfile}.dd 7z a -t7z -mx=9 -mmt=on ${imgfile}.7z ${imgfile}.tar

unpack from the archive

7z x -mmt=on ${imgfile}.7z tar -vxSf ${imgfile}.tar

flash to a sdcard (will show progress on watch -n 10 pkill -USR1 dd)

dd if=${imgfile}.dd of=/dev/mmcblk0 bs=4M ~~~

  • flashing an Android update files via Android system recovery
    1. extract ${updfile}.7z and copy its content to an external microSD card
    2. insert the microSD card into GK802 microSD slot
    3. insert the microUSB cable halfway in GK802 (do not power on)
    4. press the recovery button (located on the right side of the microUSB port, when the plastic part of the casing faces down) with a sharp object (a toothpick)
    5. power the device, and keep pressing the recovery button 1 or 2 seconds, and connect it to the HDMI port of your TV
    6. select “Update all images” with the mouse, wait for the firmware update to complete, and click on “Reboot system” to start your new firmware

dgp’s JB Android

  • uboot and JB compiled from sources by dgp (see IRC)
  • pros
    • better networking due to the latest kernel (stable wifi)
    • accelerated video decoding
  • cons
    • “Android.process.acore has stopped unexpectedly” issue (a problem with Google Apps when synchronising with a Google account)
    • no-signal issue due to the latest kernel (see below)

GNU/Linux

git clone https://android.googlesource.com/platform/prebuilt export PATH=$(pwd)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:${PATH}


*	Linux kernel (see [imx6-dongle/wiki](https://github.com/imx6-dongle/wiki/wiki))
	~~~sh
git clone git://github.com/imx6-dongle/linux-imx.git
cd linux-imx
git checkout imx-android-r13.4-ga-hdmidongle
make ARCH=arm CROSS_COMPILE=arm-eabi- -j5 imx6_android_defconfig
mkdir -p /tmp/imx-android-r13.4-ga-hdmidongle.modules
make MODLIB=/tmp/imx-android-r13.4-ga-hdmidongle.modules ARCH=arm CROSS_COMPILE=arm-eabi- -j5 all modules_install
	~~~

*	uBoot original (see [Developer Community for Freescale i.MX6 HDMI Dongles](http://www.cnx-software.com/2013/02/13/developer-community-for-freescale-i-mx6-hdmi-dongles/) and [imx6-dongle/wiki/U-Boot-basics](https://github.com/imx6-dongle/wiki/wiki/U-Boot-basics))
	~~~sh
git clone git://github.com/imx6-dongle/uboot-imx.git
cd uboot-imx
git checkout imx-android-r13.4-ga-hdmidongle
make ARCH=arm CROSS_COMPILE=arm-eabi- -j5 mx6q_hdmidongle_android_config
make ARCH=arm CROSS_COMPILE=arm-eabi- -j5 all
	~~~

*	uBoot for Linux kernels (see [imx6-dongle/wiki/U-Boot-basics](https://github.com/imx6-dongle/wiki/wiki/U-Boot-basics))
	~~~sh
git clone git://github.com/imx6-dongle/uboot-imx6dongle.git
cd uboot-imx6dongle
make ARCH=arm CROSS_COMPILE=arm-eabi- -j5 gk802_config
make ARCH=arm CROSS_COMPILE=arm-eabi- -j5 all
	~~~

*	GNU/Linux distributions -- [Jas](http://jas-hacks.blogspot.co.uk/) provides the following images of xUbuntu 12.04 utilising
	*	[Freescale BSP 1.1.0](http://jas-hacks.blogspot.co.uk/2013/05/imx6-gk802-xubuntu-1204.html)
	*	[Freescale BSP 4.0.0](http://stende.no-ip.info/jas/xubuntu_12_04-4.0.0.tar.gz) (may cause [overheating issues](#overheating))
*	GNU/Linux with XBMC on framebuffer -- [Stephan/wolfgar](http://stephan-rafin.net/blog/) provides the images with a [customised kernel](https://github.com/wolfgar/linux-imx) and the [XBMC build](https://github.com/wolfgar/xbmc) for
	*	[Wandboard Quad](http://stephan-rafin.net/blog/2013/07/18/xbmc-on-wandboard/) based on Freescale BSP 4.0.0 (included [the rootfs is also available](http://stephan-rafin.net/blog/2013/07/18/xbmc-on-wandboard/#comment-4))
	*	[GK802](http://forum.xbmc.org/showthread.php?tid=161793&pid=1444576#pid1444576) based on Freescale BSP 1.1.0

## Issues

### Micro-USB Power/OTG Connector

*	micro-USB power connector works in two modes according to [USB OTG](https://en.wikipedia.org/wiki/USB_On-The-Go) (see [tc888's special USB cable](http://www.armtvtech.com/armtvtechforum/viewtopic.php?f=50&t=2041#p12369))
	1.	pin 4 connected to ground (pin 5) at the micro USB-B connector (common full-to-micro-USB cables) = the stick will boot and behave like a peripheral (not host mode) device; it will power up using minimal power (500 mA), access the internal SD card data partition, and allow ADB connections
	2.	pin 4 NOT connected to ground (pin 5) at the micro USB-B connector (included LA-520W power adapter) = the stick will enable the full functionality of its full-USB port (host mode); it will allow to use USB peripherals

### HDMI & EDID

*	when connected to particular TVs via HDMI, there may be my "no signall" issue - a display does not start or is starting up ok, but turns off intermittently (see [ArmTvTech](http://www.armtvtech.com/armtvtechforum/viewtopic.php?f=50&t=1467)
*	the issue may by caused by several conditions
	1.	a weak power supply - not enough power (at least a 2.5A power supply needed)
	2.	a TV is reporting wrong EDID information (mostly Philips TVs) which causes unsucesfull or repeated display hotplug, especially in combination with the newest Linux/Android kernels (JB)
*	the problem can be solved by
	1.	using of the original power supply (adding "arm_freq=800" on boot params does not help)
	2.	booting up with the TV turned off (after a couple of minutes, turn the TV back on again)
	3.	patching the kernel to disable display hotplug (fixed resolution), probably drivers/video/mxc_hdmi.c (see [kernel sources](https://github.com/imx6-dongle/linux-imx)), in the similar way as it is is [Omegamoon's rockchip-rk30xx-mk808](https://github.com/omegamoon/rockchip-rk30xx-mk808/commit/c29738c7e48985426aedb21fb7cb2aa30a3f86d3)

### Overheating

*	overheating issues may occur when you really use the GPU (benchmarks or XBMC GUI for instance)
*	the problem is especially when using **Freescale BSP 4.0.0** (or maybe using the latest revisions of i.MX6Q CPU) where the thermal code seems to have the default critical temperature set to 100C, while the CPU is graded at 95C max and the RAM is graded for 80C (see [Jas's post on XBMC](http://forum.xbmc.org/showthread.php?tid=161793&pid=1463502#pid1463502))
*	in **Freescale BSP 1.1.0** (or maybe in i.MX6Q CPU itself for older revisions), the default critical temperature set to 90C, so the CPU manage to drop below 80C very quickly after the protection triggers (see [wolfgar's post on XBMC](http://forum.xbmc.org/showthread.php?tid=161793&pid=1463609#pid1463609))
*	it is highly recommend to add a heatsink on the case or even better to open the device, remove the thermal pad and add a heatsink on the SoC itself

 Share!

 
comments powered by Disqus