How-to Install and “Hack” Linux on T428 or MK802 IV 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.
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.
Now that the required driver and tool are installed in Windows, you’ll need to download a few files:
- Loader – RK3188Loader(L)_V1.20.bin
- Parameter file – linuxium-nand-parameter
- Bootloader – linuxium-boot.img
- Kernel (Select one file):
- Root filesystem to flash to system partition (Select one file):
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.
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 ”. 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.
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.
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 Ubuntu, and close derivatives such as Lubuntu or Xubuntu, are just not your cup of tea, Galland recently posted instructions showing how to create your own image with official ARM rootfs booting from a micro SD card, including OpenSUSE which he tried on Radxa development board.
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.