Home > Freescale i.MX, Graphics, Linux, Testing, Ubuntu, Video > Ubuntu 11.10 Image for Hi802 / GK802 is Now Available for Download

Ubuntu 11.10 Image for Hi802 / GK802 is Now Available for Download

About 2 weeks ago, Jasbir released an Ubuntu 11.10 image and installation instructions for GK802 and Hi802 mini PCs based on Freescale i.MX6. I could only find time to give it try yesterday and today. I’ll provide the steps I followed to install the image, and my quick first impressions of the stability and performance of this image.

Totem (1080p Video) + Firefox + es2gears + htop running in Ubuntu 11.10 on Hi802 (Click to Enlarge)

Totem (1080p Video) + Firefox + es2gears + htop running in Ubuntu 11.10 on Hi802 (Click to Enlarge)

Installation Instructions

I mainly followed the instructions provided by Jasbir, and run GParted to increased the partition size on my micro SD card. The image is for a 8 GB micro SD, but those instructions should work on 4GB SD card and greater, as the rootfs partition is only 3GB large.

  1. Download the Ubuntu 11.10 image, uboot, as well as the kernel image and modules in a Linux PC:
    wget http://dl.miniand.com/jas-hacks/gk802/ubuntu_gk802.img.gz
    wget http://dl.miniand.com/jas-hacks/gk802/u-boot.imx
    wget http://dl.miniand.com/jas-hacks/gk802/uImage_3.0.35-0269_cpu_freq
    wget http://dl.miniand.com/jas-hacks/gk802/modules_3.0.35-02695.tar
  2. Copy the image, uboot and the kernel to the micro SD card by typing the commands below:
    gzip -d ubuntu_gk802.img.gz
    sudo dd if=ubuntu_gk802.img of=/dev/<sd_device>
    sudo dd if=u-boot.imx bs=1k seek=1 of=/dev/<sd_device> && sync
    sudo dd if=uImage_3.0.35-0269_cpu_freq of=/dev/<sd_drive> bs=1048576 seek=1 && sudo sync

    Replace /dev/<sd_device> by your actual device. In my case: /dev/sdc. N.B. My 8 GB micro SD is slightly smaller than Jasbir’s image so dd failed with “No space left on device“, but it’s not an issue, as there’s no critical data at the end of the image.

  3. Remove the micro SD from your PC, and reinsert it to automatically mount the rootfs. If it does not automatically mount, you may need to mount it manually (e.g. sudo mount -t vfat /dev/sdc1 /media/ubuntu)
  4. Copy the kernel modules to the rootfs. Replace <sd_mount_pt> by your micro SD mount point (e.g. /media/ubuntu):
    tar xvf modules_3.0.35-02695.tar
    sudo cp -r modules/3.0.35-02695-ga09806b-dirty <sd_mount_pt>/lib/modules
  5. Unmount the microSD, and run
    gparted /dev/<sd_device> to resize the root filesystem, as shown below

    Ubuntu GK802 gparted

    GParted failed to run e2fsck properly for an unknown reason, possibly because my micro SD is smaller than the provided image, so I slightly reduced the size of the partition, and it worked OK.

  6. Exit GParted, remove the micro SD from your PC to insert it in the internal microSD slot of your  Hi802 / GK802 mini PC.

Running Ubuntu 11.10 in Hi802

Since this is a development release, and the boot may fail with your configuration, you’d better connect a USB to TTL board to your device to access the serial console. During my first boot, I got to the Ubuntu desktop on my HDMI display (720p), but my USB mouse or keyboard would not work. I’d get no messages (via dmesg) at all when I connected a USB hub, and upon connecting my mouse or keyboard directly in Hi802 USB port, I’d get the message below in the serial console:

usb 1-1: device descriptor read/64, error -71

rzk2 advised me to try another power supply on #imx6-dongle IRC. After my Droid Stick A2 5V/2A power supply, I tried a 5V/1.2A Nokia power supply, but the device would just keep rebooting, and finally I found another 5V/2A that make the device, my USB hub, mouse, keyboard and me happy :)

I could setup Wi-Fi very easily via Ubuntu user interface. As with other boards running Ubuntu + Unity from an SD card, the system is not super responsive but still (sort of) usable. To test the GPU and 2D/3D acceleration, I ran both es2gears and glmark2-es2.

es2gears renders at about 58 fps.

es2gears
EGL_VERSION = 1.4
vertex shader info:
fragment shader info:
info:
821 frames in 5.0 seconds = 164.069 FPS
818 frames in 5.1 seconds = 161.916 FPS
767 frames in 5.1 seconds = 149.893 FPS
511 frames in 5.0 seconds = 101.773 FPS
293 frames in 5.0 seconds = 58.495 FPS
292 frames in 5.0 seconds = 58.295 FPS
292 frames in 5.0 seconds = 58.272 FPS
292 frames in 5.0 seconds = 58.318 FPS
291 frames in 5.0 seconds = 58.107 FPS
293 frames in 5.0 seconds = 58.483 FPS
291 frames in 5.0 seconds = 58.142 FPS

and glmark2-es2 works, but gets a score between 12 and 14, which is quite lower than the score (54) I got on ODROID-X with Ubuntu 12.11 using the same resolution. A lower score was expected, but the difference is quite large, although I’m not sure whether it’s OK to compare glmark2-es2 results on Ubuntu 11.10 and 12.11.

glmark2-es2
=======================================================
glmark2 2012.03
=======================================================
OpenGL Information
GL_VENDOR: Vivante Corporation
GL_RENDERER: GC2000 core
GL_VERSION: OpenGL ES 2.0
=======================================================
[build] use-vbo=false: FPS: 31
[build] use-vbo=true: FPS: 30
[texture] texture-filter=nearest: FPS: 26
[texture] texture-filter=linear: FPS: 18
[texture] texture-filter=mipmap: FPS: 18
[shading] shading=gouraud: FPS: 19
[shading] shading=blinn-phong-inf: FPS: 12
[shading] shading=phong: FPS: 7
[bump] bump-render=high-poly: FPS: 6
[bump] bump-render=normals: FPS: 10
[bump] bump-render=height: FPS: 12
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 5
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 2
[pulsar] light=false:quads=5:texture=false: FPS: 12
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 14
[desktop] effect=shadow:windows=4: FPS: 0
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 10
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 7
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 7
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 14
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 6
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 7
[function] fragment-complexity=low:fragment-steps=5: FPS: 6
[function] fragment-complexity=medium:fragment-steps=5: FPS: 3
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 23
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 30
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 7
=======================================================
glmark2 Score: 12
=======================================================

In some cases, the HDMI display would just become black during 2D/3D testing for a short period of time (1 or 2 seconds).

I then tried video playback in Ubuntu, something I can’t do with any other boards or devices I own. I tried to play videos in Totem directly from a SAMBA share. Big Buck Bunny 480p plays just fine, but the 720p can’t play smoothly. So I copied Big Buck Bunny 1080p (~44 MB) to the micro SD. This took about 44 seconds (1MB/s), which means currently Wi-Fi performance is slower than in Android (1.42 MB/s). However, once I got the video in the micro SD, it could play just fine with low CPU usage.

I’ve performed a final quick test running Firefox, Totem (1080p video), es2gears, and htop at the same time (pictured above). Most of the time the system can manage this workload, but CPU usage is quite high (noticeably because of es2gears), and if you try to interact with Ubuntu while all those run, it’s just very sluggish. For example, if you take a screenshot with “Print Screen”, the pop-up window may take several seconds to appear, and video playback will be extremely choppy.  When I run all those programs at the same time, the system may also end up rebooting automatically.

Yet this is the first image that can boot properly on my HiAPAD Hi802, so this is good progress, and it shows good potential for this hardware. A faster micro SD, and/or replacing Unity with LXDE or XFCE desktop environment esshould greatly improve the responsiveness of the system.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

  1. Eli
    March 25th, 2013 at 23:39 | #1

    Does it have hardware acceleration in XBMC?

  2. March 26th, 2013 at 02:03 | #2

    Nice tutorial. I would get a GK802 but the RK3188 sticks seem worth waiting for since they have double the RAM for running Linux.

  3. Albert
    March 26th, 2013 at 06:17 | #3

    My GK802 gets too hot when playing 1080p24fps or 1080p50fps videos. Within a minute of running HD video, iMX shuts down due to over temperature.

    This h/w looks really powerful, I was considering using it as a ARM desktop.

  4. March 26th, 2013 at 13:22 | #4

    @Eli
    I think there’s a version of XBMC that support gstreamer. I do not know the status, and it may require some work.

    @Castaa
    Bear in mind that with RK3188, Linux may not support hardware video decoding nor 2D/3D hardware acceleration.

    @Albert
    I’ve never used a device that runs Ubuntu from an SD card smoothly enough to be usable daily without some level of frustration. Without class 10 SD cards it may be better, but I’ve never tried.

  5. shark
    March 26th, 2013 at 13:32 | #5

    Is it possilbe to get archlinuxarm working on gk802/hi802?

  6. March 26th, 2013 at 14:26 | #6

    @shark
    Just replace ubuntu rootfs with archlinuxarm rootfs and it should work. Now for video and gpu acceleration it may be more complicated. You’d better ask the developer community via #imx6-dongle IRC channel on Freenode or Google group: https://groups.google.com/forum/?fromgroups#!forum/imx6-dongle

  7. shark
    March 26th, 2013 at 18:52 | #7

    @cnxsoft
    I tried, i even replace the /dev & /boot with linaro’s, however it does not boot either.

  8. March 26th, 2013 at 21:57 | #8

    @shark
    You would need to connect a UART to TTL board to see what’s going on.

  9. March 27th, 2013 at 12:00 | #9

    @shark
    I’ve just come across a post where somebody did install Arch Linux ARM on the device. No detailed instructions, but at least some starting points: http://www.armtvtech.com/armtvtechforum/viewtopic.php?f=137&t=1562

  10. shark
    March 28th, 2013 at 19:10 | #10

    Thanks, but as the reply indicated, it would be nice to have the disk image as a starting point.

    cnxsoft :
    @shark
    I’ve just come across a post where somebody did install Arch Linux ARM on the device. No detailed instructions, but at least some starting points: http://www.armtvtech.com/armtvtechforum/viewtopic.php?f=137&t=1562

  11. Coskun Cetintas
    April 2nd, 2013 at 16:00 | #11

    When i try your method on ubuntu linux i can’t mount the sdcard and it’s seen unavaliable or unknown in gparted. dd process has not any errors, it’s completed without errors. But sdcard is unknown for all of programs. When i try to use win32diskimager, the sdcard is avaliable but uboot isn’t writing. What can i do?

  12. April 2nd, 2013 at 16:11 | #12

    @Coskun Cetintas
    If I remember well with Win32DiskImager you can seek to a particular block, so this won’t work.
    If dd worked fine, try to remove your SD card, and put it back to see if a partition can be mounted, or at least detected with “sudo fdisk -l”. In that case, just skip gparted for now to see if it can boot. It’s better to connect the serial port to see what’s going on.

  13. Coskun Cetintas
    April 2nd, 2013 at 19:28 | #13

    @cnxsoft
    I tried to remove and put back but it could not mount. But i don’t try to use fdisk -l command. I will try tonight. Thanks. I try always 16 GB Class 10 sdhc card. You think, the problem depends about this?

  14. April 2nd, 2013 at 19:57 | #14

    @Coskun Cetintas
    No, any 8 GB or greater SD card should do.

  15. Patola
    April 2nd, 2013 at 21:22 | #15

    Why is this image using armel instead of armhf?

  16. April 2nd, 2013 at 21:59 | #16

    @Patola
    Because it’s based on Ubuntu 11.10, and AFAIK they did not have armhf for this release.
    In case this brings the question “Why is this image based on Ubuntu 11.10?”, the reason is because that’s what Freescale released, and this is the easiest way to provide an image. GPU/VPU binaries are also only available for armel.

  17. Coskun Cetintas
    April 4th, 2013 at 01:22 | #17

    @cnxsoft
    I tried “fdisk -l” command and seen in list but did’nt mount. Dd commands is harmed the sdcard anyway in ubuntu. Is the problem depends about ubuntu version?

  18. April 4th, 2013 at 09:37 | #18

    @Coskun Cetintas
    Sometimes I have to mount partitions manually in Ubuntu. Not sure why. Have you tried it it GK802? You’d better use a USB to TTL board to see what’s going on at boot time.

  19. duc
    April 13th, 2013 at 06:00 | #19

    works great, out of the box. but i can’t change the display resolution, it is set fixed to 12080×720@60Hz.
    how can i set the resolution to 1920×1200 or 1920×1080@60Hz ?

  20. April 13th, 2013 at 09:36 | #20

    @duc
    There are several solutions: http://jas-hacks.blogspot.com/2013/03/gk802-ubuntu-oneiric-preview-image_10.html?showComment=1363947514183#c1704157932334767723

    I’ve never tried. If you have questions, you can also ask on IRC #imx6-dongle or in imx6-dongle mailing list. You will be more likely to get a good answer, as the developers may not monitor this page.

  21. April 24th, 2013 at 23:01 | #21

    I have gk802 with a Toshiba Excperia 16Gb running ubuntu 11.10,i run the test and the result was way much deifferent from yours i dont know why can be the microsd card or i did something wrong?
    =======================================================
    glmark2 2012.03
    =======================================================
    OpenGL Information
    GL_VENDOR: Vivante Corporation
    GL_RENDERER: GC2000 core
    GL_VERSION: OpenGL ES 2.0
    ….
    glmark2 Score: 148
    =======================================================
    [copy paste from terminal]

    EGL_VERSION = 1.4
    vertex shader info:
    fragment shader info:
    info:
    1438 frames in 5.0 seconds = 287.428 FPS
    1464 frames in 5.0 seconds = 292.683 FPS
    1461 frames in 5.0 seconds = 292.083 FPS
    1467 frames in 5.0 seconds = 293.341 FPS
    1468 frames in 5.0 seconds = 293.541 FPS
    [copy paste from terminal]

  22. Graham Toal
    July 3rd, 2013 at 23:04 | #22

    Wow. This makes the GK802 a perfect platform for Xibo (http://xibo.org.uk/ – digital signage). I’d been looking at the RPi so far for this job but it doesn’t have the speed for the video display part…

  23. July 4th, 2013 at 09:17 | #23

    @Graham Toal
    Yes, the Raspberry Pi is a bit limited, although less so since they increased RAM to 512MB.
    GK802 might be OK, but that’s probably still a lot of work to make video playback work. OpenGL support has been added in libavg, so that part may be OK now.

    Sort of sad to say but the easiest and cheapest way to run Xibo on ARM with smooth display and video support is to use their Android client.

  24. Cub
    August 16th, 2013 at 03:36 | #24

    I am also stuck trying to get the file system to mount. I have tried it many times on ubuntu with various options for the sd card ref (/dev/sdb, /dev/sdb1) also starting off with a fat32 partition before first dd image copy command. Does anyone the secret to get the mounting to work? I am using a 32GB card, could this somehow be the problem?

  25. August 16th, 2013 at 11:11 | #25

    @Cub
    You should use the full device (e.g. /dev/sdd), not a partition (/dev/sdd1). It debug issues you may want to connect a USB to TTL board to access the serial console.

  26. Aeno
    August 22nd, 2013 at 01:37 | #26

    Does anyone know how to get the wireless networking to work. I’ve finally managed to get ubuntu running on the GK802, but the only thing I’m lacking is wireless connectivity.
    But I must say I also had problems with the wireless connection running on Android.

    Still, would appreciate if someone could share the steps to get it to work.

  27. Paul
    August 24th, 2013 at 21:09 | #27

    Thanks for providing the Ubuntu image. It is working well. I ran into a couple pitfalls. Others may wish to avoid these things, too.
    – The Unity 3d desktop does not display. This prevents content and even menus from being displayed. This desktop environment takes lots of resources, so use Unity 2d (the default) instead. In an effort to reduce resources required, I started using Xfce the other day. It seems to work well.
    – Ubuntu will ask you to upgrade to 12.x. This caused many issues and I had to reimage after the upgrade. Update did not cause any issues.
    – Apps like Midori (instead of firefox) and claws (instead of thunderbird) help these little computers run better, too.

    Thanks again, I am very happy with the GK802 and Ubuntu. IMHO, it is a big improvement over Andriod on the desktop.

  1. March 26th, 2013 at 13:55 | #1
  2. April 5th, 2013 at 11:50 | #2