Archive

Android TV sticks started to become popular in 2012 thanks to Rikomagic MK802 that was based on Allwinner A10 Cortex A8 processor. Now these devices would be considered slow and outdated, but they may still be useful for some simple applications, and I’ve just seen GeekBuying is selling A22 TV Stick, that’s basically the same as MK802 for $9.99 with free shipping, likely to get rid of stock.

Ever since MK802 hit the market in April 2012, I’ve been expecting HDMI TV Sticks with Ethernet ports, but it never really materialized. There have been many small TV boxes, but AFAIK none of which could simply be insert in the back of your TV. Thanks to MK802 V we now have an HDMI TV dongle, powered by Rockchip RK3288 quad core Cortex A12/A17 processor, featuring an Ethernet port.MK802 V specifications:

This Android 4.4.2 TV dongle comes with an HDMI cable, a USB cable, a power adapter, and a user’s manual. There’s no remote control, but I’d expect most people to use a wireless keyboard, an air mouse, or their mobile device to control Android mini PCs.

PicUntu 4.5 installer is probably the easiest method to install Ubuntu on a Rockchip RK3188 based mini PC, but if you want a little more flexibility I’ll provide another method to install Linux on T428, MK802 IV or compatible devices, as well as links to go further: dual boot Android / Linux, create your own official distro, status of Mali-400 GPU support in RK3188…

The method below is not new, as it was posted by Linuxium (Ian Morrison) in Freaktab in September, but this is the first time I’ve taken the time and managed to run Linux on Rockchip RK3188, and I’ll provide some more detailed steps.

Prerequisites

Even though in some cases it’s possible to install Rockchip firmware from Linux, AFAIK the tools available in Linux lack supports for the parameter and loader files, so ironically, you’ll need a Windows XP/7/8 machine to install Linux in your mini PC.

You’ll obviously need an RK3188 device. T428 and MK802 IV are known to work with this method, but other RK3188 devices may also work although you may lose functionalities such as Wi-Fi, if the Wi-Fi module is different than AP6210. As a site note, you can also buy MK802 IV LE which comes pre-installed with PicUntu, but you’ll probably save money if you buy the Android version, and install Linux yourself instead.

You don’t need (micro) SD card to install Linux, as it will run from the flash. This will fully replace Android, and probably wipe all your data. There are other methods to boot from micro SD card that I’ll link to at the end of the post.

Installing Linux in MK802 IV or T428

Now that the required driver and tool are installed in Windows, you’ll need to download a few files:

To test the method, I decided to go with T428, a 1080p kernel, and Lubuntu 13.04, so I downloaded 5 files from the list above, namely RK3188Loader(L)_V1.20.bin, linuxium-nand-parameter, linuxium-boot.img, linuxium-1080-t428-nand-kernel and linuxium-ubuntu1304-lubuntu-desktop-rfs.img.7z.

First let’s uncompress linuxium-ubuntu1304-lubuntu-desktop-rfs.img.7z to get linuxium-ubuntu1304-lubuntu-desktop-rfs.img (2.7 GB).

Now start RKAndroidTool v1.37 (RKAndroidTool.exe in RkAndroidToolv1.37 directory), and load the 5 files to the corresponding Loader, parameter, boot, kernel and section, by clicking on the cells in the right column called “…” , and make sure the 5 check boxed are ticked as shown in the screen shot below.

Now it’s time to start your device in recovery mode. For T428, connect a USB cable to your computer, press the recovery button on the side of the enclosure, connect the other end to the micro USB port to power the device, and release the recovery button. RKAndroidTool should detect your device, and “No Found RKAndroid rock usb” at the bottom of the window change to “Found RKAndroid Loader Rock Usb”. Some other devices may not have an external recovery button, but instead an internal switch accessible with a toothpick, paper clip, or other sharp object via a tiny hole.

Recovery Button on T428 mini PC

Note for VirtualBox only, skip this paragraph you are using a Windows computer: The procedure can also be performed in VirtualBox. Just make sure to enable the device in your guest OS by accessing the top menu: Devices->USB Devices, and select the new device that appears. In my case, T428 in recovery mode is seen as “Unknown device 2207:310B [0100]”. During the installation the stick will reboot a few times, and you have to go to Devices->USB Devices again each time to select the device.

We’re almost done. Now click on “EraseIDB” button, wait a few seconds for the procedure to complete, and click on “Run” to flash Linux to the device. This last step will take a couple of minutes for flashing and verification. You’ll see the progress in the console on the right side of the window, and upon completion the last message should be: “INFO: Run OK”, and the device is exit recovery mode leading to the message “No Found RKAndroid rock USB” at the bottom of the window.

That’s it. Linux has now been successfully installed on your RK3188 device. Time to connect the power supply, and give it a try.

Lubuntu in T428 (Video)

I’ve done that with T428. Boot takes about a minute, and my Wi-Fi network was detected. However, the root password is required before entering my Wi-Fi password, so I had to open a terminal, and type “sudo passwd root” to change the root password. For some reasons my SSID was shown twice in the interface, one failed to connected, but the other worked just fine. I haven’t tried Bluetooth. The best with Linux is probably to connect a USB mouse and keyboard, but I connected Mele F10 air mouse instead as it is more convenient for quick test.

I loaded several programs simultaneously: the terminal, minesweeper, a graphics editor, Chromium, Firefox, Abiword, etc.. and all programs loaded fast and the user experience was OK, although not as smooth as Ubuntu on ODROID-X featuring 2D/3D hardware acceleration, which is currently lacking in RK3188 Linux.

Web browsing performance is acceptable, but due to lack of VPU support, YouTube video playback is extremely choppy as the system uses software video decode. Running Ubuntu with the 720p kernel may provide a better experience here. There was also some rendering issues in Chromium with the Webstore, but the few web pages I tried loaded just fine.

There’s 5GB free memory on the flash out of 8GB, and shutdown seems to work fine, although It’s probably putting the device in standby mode, rather than actually shutting it down due to hardware limitation.

More Linux on RK3188 mini PCs links and resources.

If you want to customize features in the kernel used above, the source code is available in https://github.com/linuxium/3188-SRC-AP6210 and can be used for both T428 and MK802 IV.

If you’re interested in dual booting Linux and Android, or just running Linux or Android from an SD card, Linuxium has posted dual boot instructions in G+. His bootloader is quite flexible, and allow you to mix different scenario and choose whether you want to install an OS to the flash, or boot from Android. I did try this method with MK908, using a kernel built with omegamoon’s MK908 source, but the Android image required for this bootloader, would just not start at all.

If you want to follow Linux on RK3188 devices news, I recommend you follow Ian Morrison on G+, as well as Galland Blog. Alternatively, you could also join Google+ Mini PCs community as both will usually post their instructions there, and you’ll also get news about new HDMI sticks, tiny media players, and as well as tips.

Linux for Rockchip RK3188 currently does not support Mali-400 GPU, so 2D and 3D hardware acceleration are both missing. This has already been done on RK3066 also featuring Mali-400MP4 GPU, and I don’t really understand which technical details make it difficult to implement, but it’s clearly a challenge or it would have happened already. On the positive side, lima packages should work on RK3188, and work will soon be done to try it out on Radxa board. In the meantime, if you think GPU support is important you can “+” Linuxium’s post on RK3188 GPU matter to make your voice heard, as well as to motivate voluntary developers. Having said that, it’s possible the lack of ARM SoC’s GPU support in Linux, at least Ubuntu, will disappear in April 2014 with the release of Ubuntu 14.04 because it can make use of Android kernel and drivers via libhybris.

If you want to go further, dig into the kernel internal, and/or help with development, you can also join linux-rockchip community which is working on Linux and Android for Rockchip SoC.

At the beginning of the year, PicUntu had been released for Rk3066 HDMI TV sticks, but as quad core devices based on RK3188 became popular, work started as soon as the source code was available, and a preliminary version of Linux ran on some RK3188 devices in June. After 4 more months of development an installer for PicUntu 4.5 has been released to allow users to run a customized version of Ubuntu 13.04 on RK3188 HDMI TV sticks or set-top boxes such as T428 or Rikomagic MK802 IV.

PicUntu 4.5 Screenshot (Click to Enlarge)

The installation procedure appears to be easier than earlier version, as there’s only one installer file (247 MB), and you can complete the installation to the NAND flash of your device with just 4 clicks.

PicUnutu runs xfce4 desktop environment, supports more than 200 drivers, multiple file systems (nfs, ntfs, cramfs, cifsutils, smb…), lots of different USB devices, serial devices, GPS devices, touchscreen. etc… WiFi is also supposed to work, but maybe for not all devices, unless you use a supported external USB dongle. However, hardware video acceleration, Bluetooth and some touchscreens do not work. However it’s still possible to play 720p videos smoothly using software video decoding.

Some important things to bear in mind is that this installation will completely wipe out your Android OS and existing files, you may void your warranty, and you may potentially brick your device, although the developers have yet to see it occur.

Brad Linder (Liliputing) has tried it on T518 mini PC, and found it to be as responsive as Ubuntu on Intel and AMD machines. Ditching Unity and replacing it by XFCE certainly helped here. He could not get WiFi to work, so testing was limited without Internet connection.

If you’ve been following the ARM based mini PC space, you may already know about Rikomagic MK802 III and MK802 IV HDMI TV Sticks, respectively based on Rockchip RK3066 and RK3188, running Android Jelly Bean. Rikomagic and Cloudsto Electronics have just announced they will launch a “Linux Edition” (LE) for those two devices called MK802III LE and MK802IV LE Quad Core, running Picuntu (Ubuntu) Linux.

Since Linux on RK3188 is still work on progress, Cloudsto MK802III LE will be available first, with the following specs:

It’s not very clear if the hardware will be slightly tweaked (e.g. smaller NAND flash, as I understand it is required for booting), or if it will just be exactly the same hardware as the Android version, but the addition of a 16GB micro SD card preloaded with Picuntu. Pricing and availability have not been provided at this time, but those will probably be updated on Rikomagic UK’s Linux mini PCs page.

DealExtreme has started a promotion that is taking place on May, 15-20 offering 50% discount on selected products. I’ve gone through the list, and found several RK3066 Android mini PCs all priced between $23 and $27, as well as some other items that may be of interest to readers of this blog.

[Update: Sorry, in just a couple of hours, all items listed below are already sold out]

Mele F10 Fly Mouse – $12.60 – I have just reviewed the Mele F10 earlier this week. If you don’ have an RF remote already, and use Android STB and/or mini PCs, it’s probably a good idea to buy this 3-in-1 (mouse, keyboard and remote) 2.4GHz “Fly Mouse”.

GOIGAME Rechargeable Bluetooth Wireless DoubleShock III Controller for PS3 – $8.30 – If you already have a mini PC, and don’t feel spending more to get an OUYA or Gamestick, this Bluetooth game controller can be connected to your Android device to play several games. I have one already, I could finally set-it up, kill some zombies, and I’ll post instructions later today or tomorrow. It also works with Linux, albeit I could only manage to make it work in USB mode.

Ian MORRISON (linuxium) has tested Linux with several mini PCs powered by different processors. The main point of his tests was to evaluate the performance difference between running Ubuntu 12.04 natively, or in a chroot in Android using tools such as Complete Linux Installer. I previously tried Linux on Android in ODROID-X, and found the applications start time when running from an low-end SD card pretty dismal, and the graphics performance poor. Ian had a different approach, and decided to use a subset of Phoronix Suite benchmarks to compare different hardware / software combination and posted the results in “mini PCs” G+ community. There’s a lot of data, and analyzing the results is not really straightforward without spending some time looking at the data. In this post, I’ll explain how the tests have been conducted, explain the results and try to draw a conclusion.

Mini PCs and other Hardware Under Test

Ian used four mini PC hardware running Ubuntu 12.04 natively or in a chroot installed with Complete Linux Installer, except for RK3066 mini PC where Ubuntu 12.10 (PicUntu) was run natively. Each time, LXDE desktop environment was setup, and Ubuntu was installed in Sandisk Extreme Pro 8GB (micro) SD cards.

Selected Benchmarks from Phoronix Test Suite

Phoronix Test Suite is a testing and benchmarking platform written in PHP5 language that can run in Linux, Windows, Mac OS X, Solaris and BSD operating systems on any target which supports php. Since Ubuntu in Android would definitely have poor performance, Ian only considered tests that may be used in a server configuration, to evaluate CPU, RAM and I/O performance:

CacheBench – Memory and cache bandwidth performance benchmark.

CLOMP – C version of the Livermore OpenMP benchmark developed to measure OpenMP overheads and other performance impacts due to threading.

7-Zip compression – Uses p7zip integrated benchmark feature.

dcraw – This test measures the time it takes to convert several high-resolution RAW NEF image files to PPM image format using dcraw.

LAME MP3 encoding – This test measures the time required to encode a WAV file to MP3 format.

Unpacking the Linux kernel – This test measures the time it takes to extract the .tar.bz2 Linux kernel package.

GMPbench – Test of the GMP 5.0.3 math library

Results and Conclusion

The full results are available on openbenchmarking.org, but the way they are presented might be a little confusing because for some tests, higher is better, whereas for others, lower is better. So I’ve added an up arrow icon on the left of the table if higher is better, and a down arrow if it’s the opposite. I’ve also added Android and Ubuntu logos, depending on whether Ubuntu is respectively run in a chroot or natively.

Linux Benchmark Results for Mini PCs, and some reference hardware (Click to Enlarge)

Let’s take care of the anomalies first. You’ll notice GMPbench results are not available for all devices. That’s because it refused to run in some cases. SQLite test results are up to 10x faster in Ubuntu in a chroot (in Android) than in Ubuntu running natively. MK802 is even reported to be about as fast as Intel PC used as reference. Clearly something is wrong when running this test in a chroot, and SQLite results should be discarded.

For a given hardware, there’s usually about a 5 to 20% performance hit when running Ubuntu in Android. The exception is GK802 where running Ubuntu in Android is consistently faster than running it natively. However, Ian used Geekbuying Ubuntu beta image which is not optimized, and it’s possible the CPU in Ubuntu was clocked at a lower frequency than in Android.

MK802+ (AllWinner A10) and MK803 (AMLogic AML8726) share the lowest score, except for SQLite which runs the slowest on the Chromebook, and CLOMP on ODROID-U2. UG802 (Rockchip RK3066) and GK802 (Freescale i.MX6) has similar performance with an edge for Rockchip RK3066 devices, except for test where all 4-core of i.MX6 can be used such as 7-Zip. Also note that the extra 2GB RAM in iStick A200 does not provide significant performance improvement for most test against the 1GB RAM used in UG802. The extra RAM should only be useful when multitasking.

To conclude, if you want to run Linux on your mini PC, you should always install Ubuntu natively to get the most performance, but if you have no choice (i.e. Linux not currently supported) or want to run both Android and Linux simultaneously, you can always run server applications in a chroot with limited performance degradation. On the hardware side, although Rockchip RK3066 and Freescale i.MX6 mini PC have about the same performance in Linux for (server applications), Rockchip devices clearly have a higher performance / cost ratio at the moment.

This is the last day of the year, so it’s probably a good time to look back and see what interested people on this blog. This has been a banner year for low cost ARM devices and boards starting with the Raspberry Pi, then MK802 and the new mini PCs / HDMI TV dongles / PCs-on-a-stick (whatever you want to call them) that came after, always cheaper and faster. Those low cost devices have in turn made people really interested in ARM Linux, and lots of development on those little devices and boards started.

The top 10 posts of 2012, according to page views, reflect just those trends:

74 USD AllWinner A10 Android 4.0 Mini PC (May 2012) – MK802 started the whole “low cost mini PCs” craze, and drove the most traffic to this blog this year. People got excited about the price, form factor, and the possibility to run both Android and other Linux based operating systems.

WM8850-MID Android 4.0 Tablet Unboxing and Review (June 2012) – At the time, this Eken W70 clone featuring Wondermedia WM8850 Cortex A9 processor was a real bargain for $72 (including shipping). The firmware has a few issues however, and that’s what drove people to this post: looking for solutions.

Mele A1000: AllWinner A10 (Cortex A8) Based Hackable Android STB (March 2012) – The Mele A1000 was my first Android device, and it got popular thanks to its relatively low cost, available ports (3x USB, SATA, VGA, HDMI…), and serial port which made it ideal for development of U-boot and the kernel. I still think it’s a good platform, but since then low cost development boards such as the Cubieboard has made it a little less attractive, and interest has somewhat faded in the last few months.

Valueplus Tizzbird Stick N1: Android 4.0 HDMI/USB Media Player Dongle (March 2012) – The Tizzbird Stick N1 was one the first mini PCs, and was showcased at CeBit 2012 several months before MK802. Unfortunately, it took many more months to finalize the design, and the product never took off, as other cheaper Telechips TCC892x based mini PCs appeared on the market. The only reason it got traffic is because I mentioned it in the $74 MK802 post at the top of this list.

Mele A1000 Android 2.3 STB Unboxing and Review (April 2012) – In March, I was still waiting for the Raspberry Pi launch, but I noticed Barry Kauler (Puppy Linux) bought the Mele A1000 to keep him busy while he was also waiting for his Pi, and seeing the development around AllWinner A10, I decided to buy one as well. Apparently, I was not the only one interested as many people came here to read my review of this nice hackable media player.

Linaro Android Puts Stock Android To Shame on TI Pandaboard (OMAP4430) (June 2012) – Linaro showcased a demo showing an optimized version of Android could deliver twice the performance of stock Android on a particular benchmark running in Pandaboard. Bero commented on my post with details, and the post quickly became viral as developers wanted to give it a try. It turned out the improvement is actually more like 15 to 20%, but this is enough to double the framerate of this benchmark due to Vsync synchronization. It may also work in real games.

Raspberry Pi Emulator in Ubuntu with Qemu (October 2011) – In 2011 and early 2012, the Raspberry Pi foundation promised much in terms of schedule, but initially failed to deliver, and many people get desperate enough to check the instructions to emulate an ARMv6 device and run Debian in QEMU to get started with development, before the Raspberry Pi hardware is available.

That will be the last post of 2012, so the “hardware team” (pictured below) and I would like to wish you a very happy and prosperous new year 2013, which I’m sure will be as exciting as 2012 for Linux/Android gadgets and boards, and we should see the first big.LITTLE processors and corresponding devices, ever cheaper tablets, smartphones and mini PCs, an interesting Intel vs. ARM fight for mobile devices, a proper XBMC ARM set-top box close to $50, new mobile OSes based on Linux (Tizen, Sailfish OS, Firefox OS…), and more…