ODROID-XU3 Lite Board Ubuntu Review – Setup, Usability, and Performance

After testing ODROID-XU3 Lite with Android 4.4, and finding a workaround to some HDMI issues, I could finally try out Ubuntu, or rather Lubuntu with LXDE instead of Unity, in Hardkernel low cost octa-core development board. I’ll start this review by explaining how to install and setup Lubuntu on the board, followed by running various program to test the system usability as a desktop computer with LibreOffice, Chromium, XBMC, and 3D graphics, and finally run some performance tests with Phoronix Test Suit, build the Linux kernel natively, and transcode a video with avconf.

Setting Up Ubuntu on ODROID-XU3 Lite

All firmware images for ODROID development boards, can be found on odroid.in website, and if you want Ubuntu 14.04 image, go to ubuntu_14.04lts folder, to select the latest firmware file for your board. The latest image for ODROID-XU3 (Lite) is currently ubuntu-14.04.1lts-lubuntu-odroid-xu3-20141105.img.xz, it’s the same for micro SD card or eMMC boot. You should have gotten a eMMC to micro SD adapter if you’ve purchased an eMMC module from Hardkernel.

You can download, extract, and flash the image with dd (Linux) or Win32DiskImager (Windows). For example. in a terminal in a Linux computer:

Where X is the letter of your micro SD or eMMC module inserted into your computer. Check the value carefully with lsblk before running the dd command, or you may lose your data stored on other drives connected to your computer,. For extra safety, you could also consider doing this procedure in a virtual machine, for example by running Ubuntu in VirtualBox.

Now insert the micro SD card or connect the eMMC module to the board, and you configure the boot switch between the Ethernet and USB ports as shown below using a pen or tweezers. For eMMC both must be in high position, whereas for SD card boot one must be down.

Left: eMMC Boot; Right: Micro SD Card Boot

Now connect a keyboard, mouse, the HDMI cable, Ethernet, and/or other peripherals you may want to connect and power up the board by connecting the provided 5V/4A power supply. A typical boot should complete in around 22 seconds, although the first boot might take a little longer.

Lubuntu Desktop in ODROID-XU3 Lite
Lubuntu Desktop in ODROID-XU3 Lite

A this stage, the installation is nearly complete, and you should already have a usable system, however, if you’ll see that the rootfs partition is only 4.9GB with 310 MB available (that’s after installing LibreOffice):

Since my eMMC module has a capacity of 16GB, it would be nice to use all of it. Normally, you’d use fdisk/parted, and resize2fs  to get the full size, but Hardkernel provides ODROID Utility that can do just that among others. So click on the icon on the top right to launch the program, input the password (odroid), and after running apt-get update automatically, the following interface should appear.

ODROID_UtilityClick on Resize your root partition, and after making sure the root partition is in /dev/mmcblkp2, click <Yes> to continue and resize the root partition on your micro SD card or eMMC module. After a reboot, you can check all the available storage in a terminal:

9.4GB available out of a 15GB partition. Perfect! The setup is now complete.

Using ODROID-XU3 Lite as a Desktop Computer / Media Player

The Ubuntu image comes pre-loaded with Firefox, Chromium, Transmission, Arduino IDE, Abiword, PacmanFM, XBMC and a few others programs. Since they probably wanted to keep the image reasonably small, they did not install large program, but I install LibreOffice for a better office suite, and Nautilus for a file manager with Network Shares access:

The system is extremely responsive, and if you’re using a computer with a mechanical drive, ODROID-XU3 Lite will boot and load programs much faster than your full-blown Intel/AMD computer.

The best way to showcase ODROID-XU3 (Lite) capabilities is to shoot a video, so I’ve just done that showing:

  1. 20 seconds boot
  2. ODROID Utility options
  3. List of installed applications
  4. LibreOffice (Writer)
  5. Chromium – Multi-tabs, YouTube (embedded / full screen; VP9 / H.264/AVC1), and Candy Crush Saga (Flash game) in Facebook
  6. 3D hardware acceleration with es2gears
  7. XBMC Media Player with 2D/3D OpenGL ES and hardware video decoding.
  8. Power off

I’ve also opened a terminal running htop to show the eight cores CPU usage during these tests.

Side note: Since my camera (Canon Powershot A2300 HD) is pretty poor at shooting videos of screens, I’ve used SJ1000 action camera instead as the image is much sharper, but there’s a fisheye effect due to the wider angle of such camera. There are some tools in Linux including Python scripts and KDEnlive that can remove the fishing effect, but they introduce some aliasing, which does not look nice in this type of video, although it’s probably acceptable for content without text or thin lines.

Based on these tests, ODROID-XU3 Lite can be used as a desktop replacement or an XBMC media center, but you have to be aware of some limitations:

  • YouTube embedded videos play usually well, and 360p/480p full screen video play quite well, but the user experience is not very good with 1080p full screen videos, either with VP9 or H.264 codec.
  • Adobe Flash is not pre-installed, but in Chromium, it should be quite easy to install libpepperflash.so to enable Flash support. I have not tried, but normally, flash performance on ARM is rather subpar compared to x86.
  • The window manager may not be hardware accelerated with the GPU.

For all other uses, ODROID-XU3 Lite is clearly the best ARM Linux platform, I’ve tried so far, with a fast eMMC, 2D/3D hardware accelerated graphics (for apps that support OpenGL ES only), and hardware video decoding.

Other Use Cases and Performance

Before starting some benchmarks, I’ll check what type of Exynos 5422 I have in my system:

BIN1 is for the Exynos 5422 processor clocked up to 2.2 GHz found in ODROID-XU3 board, and BIN2 is limited to 1.8 GHz, and normally found in the Lite version of the board which I’m reviewing right now.

Phoronix Suite Benchmarks

Antutu is the most famous benchmark in Android, but in Linux, Phoronix Test Suite is the reference. It’s a bit more complicated to use than Antutu, but more flexible, and thorough.

After apt-get install,. I had to run “sudo apt-get install -f” to complete the installation.

Than I’ve followed the instructions here, and selected four tests from the suite to test audio encoding, multi-core file compression, server, and disk I/Os:

It turns out the iozone test for disk I/O takes nearly five hours, and recently my computer tends to turn off randomly, and since I started the test from an ssh console, the test got interrupted, so I only ran encode-mp3, compress-7zip, and apache benchmarks which last only about 15 minutes in total.

Out of the three test, compress-7zip failed because of a lack of memory:

So the whole Phoronix benchmarks did not exactly work out as expected, but you can find the result for MP3 encoding and Apache tests @ http://openbenchmarking.org/result/1412146-LI-20141214131

ODROID-XU3-Lite_Phoronix_Intel_Core_i3_radxa_proI’ve compared the ODROID-XU3 Lite results to some recent results on Openbenchmarking website including an Intel Core i3-4150 quad core system (cpu-ubuntu), an older Intel Atom N570 system (2G), and Radxa Pro board powered by Rockchip RK3188 processor. So Exynos 5422 can’t match a recent Core i3 processor yet (which by itself costs more than ODROID-XU3 Lite board), but does well against N570 netbook processor, and is about twice as fast as Radxa Rock Pro board in these two tests.

Mainline kernel compilation

People may want to use this powerful low cost Octa core board in build farm, so I though it would be fun to try building Linux mainline kernel natively. Let’s installing dependencies, and get the source latest Linux release (3.18) first.

Ubuntu 14.04 comes with gcc 4.8.2 only, but this compiler will break Linux mainline build, so I had to install gcc 4.9 instead:

You’ll also note some ODROID boards are already part of mainline, probably with partial support, but unfortunately ODROID-XU3 (Lite) kernel has not been upstreamed yet.

Anyway, let’s build the kernel for Exynos processor, and see how fast the board can compile a Linux kernel:

So it takes less than 6 minutes to build the kernel on ODROID-XU3 Lite, about 4 times longer than on a powerful, but much more power hungry (300W) AMD FX8350 based computer. In other words, it should be possible to achieve the same performance as my computer using 4 or 5 ODROID-XU3 Lite boards in a mini build farm using distcc compilation for about the same price, but only a fraction of the power consumption, and of course native compilation has advantages over cross-compilation, since some tests may have to be skipped for the latter.

Video Transcoding with avconv

Finally, one follower on G+ asked me to test MPEG2 to H.264 video transcoding with ffmpeg. The latter does not seem to be available, and as been replaced by avconc, so I installed libav-tools instead, and ran the transcoding.

It took 2 minutes 31 seconds to encode a 44 seconds video, so real-time 1080p video transcoding is currently not feasible with avconv / ffmpeg.

Have said that, Exynos 5422 supports video decoding and encoding, so it should be possible to write a program using the MFC (Multi-Format Codec) driver for Exynos. I could not find any sample code, but having a look a XBMC source code for ODROID boards might be a start, since it’s using the MFC drivers for decoding.

ODROID-XU3 Lite can be purchased directly from Hardkernel for $99 + shipping, or through distributors like Ameridroid (USA) or Pollin Electronics (Germany). Adding an eMMC module, an HDMI cable, and the serial debug board to your order is recommended, although you could replace the eMMC with a fast micro SD card (class 10 or greater) for a still decent performance.

Support CNX Software - Donate via PayPal, become a Patron on Patreon, or buy review samples
Notify of
newest most voted
5 years ago

Cool stuff, did you try with the Performance governor?

As all ARM arch chips seems to have a delay (in the ms range) when it changes frequencies/voltages, that has a large effect on pretty much everything.

5 years ago

Actual new Hardkernel Odroid Devices arn’t available at pollin.de for the last months….
wondering about it… and very bad thing in Front of chrismas…

5 years ago

Well done. Then now we can replace Android with Linux as daily OS connected to TV ? This is your suggestion ? Or Linux is better for a desk like Windows ?

5 years ago

Did you do any reviews of nVidia’s Jetson-TK1? I’m very curious how this performs compared to it on Linux.

Konrad Karpowicz
Konrad Karpowicz
5 years ago

Thank you very much for a great and detailed review. I will ask Santa to get one for Christmas 🙂

5 years ago

using -preset superfast (or one of the other faster presets) in the line above would get you a lot faster encode at the expense of quality OC, and using mp4 container and aac audio as the output is far more usual for generic playback on android devices OC as aac is very limited on current hw assisted lit today…. on x86 i use something like this ———————- for f in *.mkv do name=echo "$f" | sed -e "s/.mp4$//g" ./ffmpeg -threads 0 -i “$f” -f mp4 -vcodec libx264 -crf 16 -minrate 800k -maxrate 1800k -bufsize 1800k -refs 3 -preset slow -vprofile… Read more »

5 years ago

oops i missed #!/bin/bash at the top of the script, doh! —— #!/bin/bash for f in *.mkv do name=echo “$f” | sed -e “s/.mp4$//g” ./avconv -threads 0 -i “$f” -f mp4 -vcodec libx264 -crf 16 -minrate 1800k -maxrate 1800k -bufsize 1800k -refs 3 -preset superfast -vprofile high -strict -2 -acodec aac -ac 2 -ab 192k -vf yadif,gradfun,hqdn3d,unsharp=5:5:0.5 “$name.MP4″ done pause ——————————– put this mp4-encode.script in a dir with the standalone avconv and some mkv files to encode, click the mp4-encode.script scipt and wait till its finished…. you can also remove the vf filters if you want to make it slightly… Read more »

Peter Bauer
Peter Bauer
5 years ago
5 years ago

i looked at ali and geek for emmc module and found nothing is it called something else or do we have to buy it from hardkernel

5 years ago

Hi! Can you test webrtc video encoding with this board?
i mean chat with your PC or at least broadcast to your PC using chrome and webrtc?
here’s sample WebRTC link: https://www.webrtc-experiment.com/broadcast/
And thanks a lot for the review 🙂