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.
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.
- Download the Ubuntu 11.10 image, uboot, as well as the kernel image and modules in a Linux PC:
1234wget http://dl.miniand.com/jas-hacks/gk802/ubuntu_gk802.img.gzwget http://dl.miniand.com/jas-hacks/gk802/u-boot.imxwget http://dl.miniand.com/jas-hacks/gk802/uImage_3.0.35-0269_cpu_freqwget http://dl.miniand.com/jas-hacks/gk802/modules_3.0.35-02695.tar - Copy the image, uboot and the kernel to the micro SD card by typing the commands below:
1234gzip -d ubuntu_gk802.img.gzsudo dd if=ubuntu_gk802.img of=/dev/<sd_device>sudo dd if=u-boot.imx bs=1k seek=1 of=/dev/<sd_device> && syncsudo 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. - 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)
- Copy the kernel modules to the rootfs. Replace <sd_mount_pt> by your micro SD mount point (e.g. /media/ubuntu):
12tar xvf modules_3.0.35-02695.tarsudo cp -r modules/3.0.35-02695-ga09806b-dirty <sd_mount_pt>/lib/modules - Unmount the microSD, and run
gparted /dev/<sd_device> to resize the root filesystem, as shown belowGParted 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.
- 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:
1 |
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.
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 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.
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
Does it have hardware acceleration in XBMC?
Nice tutorial. I would get a GK802 but the RK3188 sticks seem worth waiting for since they have double the RAM for running Linux.
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.
@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.
Is it possilbe to get archlinuxarm working on gk802/hi802?
@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
@cnxsoft
I tried, i even replace the /dev & /boot with linaro’s, however it does not boot either.
@shark
You would need to connect a UART to TTL board to see what’s going on.
@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
Thanks, but as the reply indicated, it would be nice to have the disk image as a starting point.
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?
@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.
@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?
@Coskun Cetintas
No, any 8 GB or greater SD card should do.
Why is this image using armel instead of armhf?
@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.
@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?
@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.
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 ?
@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.
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]
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…
@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.
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?
@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.
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.
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.