Posts Tagged ‘odroid-x’

Linux 4.11 Release – Main Changes, ARM & MIPS Architecture

May 1st, 2017 9 comments

Linus Torvalds has just released Linux 4.11:

So after that extra week with an rc8, things were pretty calm, and I’m much happier releasing a final 4.11 now.

We still had various smaller fixes the last week, but nothing that made me go “hmm..”. Shortlog appended for people who want to peruse the details, but it’s a mix all over, with about half being drivers (networking dominates, but some sound fixlets too), with the rest being some arch updates, generic networking, and filesystem (nfs[d]) fixes. But it’s all really small, which is what I like to see the last week of the release cycle.

And with this, the merge window is obviously open. I already have two pull request for 4.12 in my inbox, I expect that overnight I’ll get a lot more.

Linux 4.10 added Virtual GPU support, perf c2c’ tool, improved writeback management, a faster initial WiFi connection (802.11ai), and more.

Some notable changes for Linux 4.11 include:

  • Pluggable IO schedulers framework in the multiqueue block layer – The Linux block layer is know to have different IO schedulers (deadline, cfq, noop, etc). In Linux 3.13, the block layer added a new multiqueue design that performs better with modern hardware (eg. SSD, NVM). However, this new multiqueue design didn’t include support for pluggable IO schedulers. This release solves that problem with the merge of a multiqueue-ready IO scheduling framework. A port of the deadline scheduler has also been added (more IO schedulers will be added in the future)
  • Support for OPAL drives – The Opal Storage Specification is a set of specifications for features of data storage devices that enhance their security. For example, it defines a way of encrypting the stored data so that an unauthorized person who gains possession of the device cannot see the data. This release adds Linux support for Opal nvme enabled controllers. It enables users to setup/unlock/lock locking ranges for SED devices using the Opal protocol.
  • Support for the SMC-R protocol (RFC7609) – This release includes the initial part of the implementation of the “Shared Memory Communications-RDMA” (SMC-R) protocol as defined in RFC7609. SMC-R is an IBM protocol that provides RDMA capabilities over RoCE transparently for applications exploiting TCP sockets. While SMC-R does not aim to replace TCP, it taps a wealth of existing data center TCP socket applications to become more efficient without the need for rewriting them. A new socket protocol family PF_SMC is introduced. There are no changes required to applications using the sockets API for TCP stream sockets other than the specification of the new socket family AF_SMC. Unmodified applications can be used by means of a dynamic preload shared library.
  • Intel Bay Trail (and Cherry Trail) improvements – Intel HDMI audio support, patchsets for AXP288 PMIC, I2C driver, and C-state support to avoid freezes.

New features and bug fixes specific to ARM architecture:

  • Allwinner:
    • Allwinner A23 –  Audio codec device tree changes
    • Allwinner A31 – SPDIF output support
    • Allwinner A33 – cpufreq support, Audio codec support
    • Allwinner A64 – MMC Support, USB support
    • Allwinner A80 – sunxi-ng style clock support
    • Allwinner H2+ – New SoC variant, similar to H3 (mostly with a different, lower end VPU)
    • Allwinner H3 – Audio codec device tree changes, SPDIF output support
    • Allwinner V3s – New SoC support, USB PHY driver, pinctrl driver, CCU driver
    • New boards & devices – LicheePi One, Orange Pi Zero, LicheePi Zero, Banana Pi M64, Beelink X2
  • Rockchip:
    • Renamed RK1108 to RV1108
    • Clock drivers – New driver for RK3328, and non-critical fixes and clk id additions
    • Tweaks for Rockchip GRF (General Register File) usage (kitchensink misc register range on the SoCs)
    • thermal, eDP, pinctrl enhancements
    • PCI – add Rockchip system power management support
    • Add machine driver for RK3288 boards that use analog/HDMI audio
  • Amlogic
    • Add support for Amlogic Meson I2C controller
    • Add SAR ADC driver
    • Add ADC laddered keys to meson-gxbb-p200 board
    • Add configurable RGMII TX delay to fix/improve Gigabit Ethernet performance on some boards
    • Add pinctrl nodes for HDMI HPD and DDC pins modes for Amlogic Meson GXL and GXBB SoCs
    • New hardware: WeTek TV boxes
  • Samsung
    • Add USB 3.0 support in Exynos 5433
    • Removed clock driver for Samsung Exynos4415 SoCs
    • TM2 touchkey, Exynos5433 HDMI and power management improvements
    • Added Samsung Exynos4412 Prime SoC
    • Removed Samsung Exynos 4412 SoC
    • Added audio on Odroid-X board
    • Samsung Device Tree updates:
      • Add necessary initial configuration for clocks of display subsystem. Till now it worked mostly thanks to bootloader.
      • Use macro definitions instead of hard-coded values for pinctrl on Exynos7.
      • Enable USB 3.0 (DWC3) on Exynos7.
      • Add descriptive user-friendly label names for power domains. This  makes debugging easier
      • Use proper drive strengths on Exynos7.
      • Use bigger reserved memory region for Multi Format Codec on all Exynos chipsets so it could decode FullHD easily
      • Cleanup from old MACHs in s5pv210.
      • Enable IP_MULTICAST for libnss-mdns
      • Add bus frequency and voltage scalling on Exynos5433 TM2 device (along with  necessary bus nodes and Platform Performance Monitoring Unit on Exynos5433).
      • Use macros for pinctrl settings on Exynos5433.
      • Create common DTSI between Exynos5433 TM2E and TM2E.
  • Qualcomm
    • Added coresight, gyro/accelerometer, hdmi to Qualcomm MSM8916 SoC
    • Clock drivers – Updates to Qualcomm IPQ4019 CPU clks and general PLL support, Qualcomm MSM8974 RPM
    • Errata workarounds for Qualcomm’s Falkor CPU
    • Qualcomm L2 Cache PMU driver
    • Qualcomm SMCCC firmware quirk
    • Qualcomm PM8xxx ADC bindings
    • Add USB HSIC and HS phy driver for Qualcomm’s SoC
    • Device Tree Changes:
      • Add Coresight components for APQ8064
      • Fixup PM8058 nodes
      • Add APQ8060 gyro and accel support
      • Enable SD600 HDMI support
      • Add RIVA supprort for Sony Yuga and SD600
      • Add PM8821 support
      • Add MSM8974 ADSP, USB gadget, SMD, and SMP2P support
      • Fix IPQ8064 clock frequencies
      • Enable APQ8060 Dragonboard related devices
      • Add Vol+ support for DB820C and APQ8016
      • Add HDMI audio support for APQ8016
      • Fix DB820C GPIO pinctrl name
      • etc…
  • Mediatek
    • Mediatek MT2701 – Added clocks, iommu, spi, nand, adc, thermal
    • Added Mediatek MT8173 thermal
    • Added Mediatek IR remote receiver
  • GPU – Add Mali Utgard bindings;  the ARM Mali Utgard GPU family is embedded into a number of SoCs from Allwinner, Amlogic, Mediatek or Rockchip
  • Other new ARM hardware platforms and SoCs:
    • Marvell – SolidRun MACCHIATOBin board, Marvell Prestera DX packet processors
    • Broadcom – BCM958712DxXMC NorthStar2 reference board
    • HiSilicon – Kirin960/Hi3660 SoC, and HiKey960 development board
    • NXP – LS1012a SoC with three reference board; SoMs: Is.IoT MX6UL, SavageBoard, Engicam i.Core; Liebherr (LWN) monitor 6;
    • Microchip/Atmel – SAMA5d36ek Reference platform
    • Texas Instruments – Beaglebone Green Wireless and Black Wireless, phyCORE-AM335x System on Module
    • Lego Mindstorms EV3
    • “Romulus” baseboard management controller for OpenPower
    • Axentia TSE-850 Data Radio Channel (DARC) encoder
    • Luxul XAP-1410 and XWR-1200 wireless access points
    • New revision of “vf610-zii” Zodiac Inflight Innovations board

Finally here are some of the change made to MIPS architecture in Linux 4.11:

  • PCI: Register controllers in the right order to avoid a PCI error
  • KGDB: Use kernel context for sleeping threads
  • smp-cps: Fix potentially uninitialised value of core
  • KASLR: Fix build
  • ELF: Fix BUG() warning in arch_check_elf
  • Fix modversioning of _mcount symbol
  • fix out-of-tree defconfig target builds
  • cevt-r4k: Fix out-of-bounds array access
  • perf: fix deadlock
  • Malta: Fix i8259 irqchip setup
  • Lantiq – Fix adding xbar resoures causing a panic
  • Loongson3
    • Some Loongson 3A don’t identify themselves as having an FTLB so hardwire that knowledge into CPU probing.
    • Handle Loongson 3 TLB peculiarities in the fast path of the RDHWR  emulation.
    • Fix invalid FTLB entries with huge page on VTLB+FTLB platforms
    • Add missing calculation of S-cache and V-cache cache-way size
  • Ralink – Fix typos in rt3883 pinctrl data
  • Generic:
    • Force o32 fp64 support on 32bit MIPS64r6 kernels
    • Yet another build fix after the linux/sched.h changes
    • Wire up statx system call
    • Fix stack unwinding after introduction of IRQ stack
    • Fix spinlock code to build even for microMIPS with recent binutils
  • SMP-CPS: Fix retrieval of VPE mask on big endian CPUs”

Read Linux 4.11 changelog – with comments only – generated using git log v4.10..v4.11 --stat, to get the full list of changes. You may also want to checkout Linux 4.11 changelog on

Top 10 Posts of 2013 and Stats on CNXSoft Blog

December 31st, 2013 2 comments

This is the last day of the year, and just like in 2012, I’ll look back on the main trends of this year,  post a list of the top 10 posts of 2013 on, and add some fun stats about the site and my visitors. 2013 has been the year of quad core media players and mini PCs, especially those based on Rockchip RK3188, XBMC is now featured in many Android STBs, “big.LITTLE” and “Octa-core” have been the buzz words on the application processor front, Google has entered the HDMI TV sticks market with the ChromeCast, and is competing with Miracast / DLNA TV dongles, we’ve gotten more and more low cost Linux development boards, crowdfunding has almost gone mainstream, and the Internet of things has started to take off thanks to new technologies such as Bluetooth Low Energy.

I’ve compiled the list using data from Google Analytics, filtered post from 2013, and sorted them by decreasing number of page views. Here are the top 10 posts of 2013:

  1. GPUs Comparison: ARM Mali vs Vivante GCxxx vs PowerVR SGX vs Nvidia Geforce ULP (January 2013) – You’ll find plenty of SoC comparison on the Internet, but GPU are sort of a mystery, and the post shows it’s rather complex to compare the different solutions. Nevertheless, many people were interested in knowing the differences between Mali, PowerVR, Vivante… GPUs, especially with regards to performance, and this post was clearly the most popular of the year.
  2. Matricom G-Box Midnight MX2 Android TV Box Review (May 2013) – Matricom G-Box Midnight MX2 was one of the best XBMC Android devices I tested at the time, and also generated some heated discussions about XBMC and open source.
  3. Installing Android Studio IDE in Ubuntu – Hello World Application (May 2013) – Speed matters. As I was one of the first to explain how to install the new Android Studio IDE in Ubuntu, the post got linked from several sources and became relatively popular.
  4. Ubuntu 12.04 Now Boots on Rockchip RK3188 mini PCs (T428, MK908, Rikomagic MK802 IV…) (June 2013) – RK3188 based Android mini PCs became popular in 2013, because of the performance and price, but quite a few people were, and are still, interested in finding out how to install Linux distributions, and in particular, Ubuntu on their device.
  5. $32 iPush Wi-Fi DLNA / Miracast Adapter for Android (May 2013) – iPush was one of the first DLNA / Miracast / Airplay TV dongle for a reasonable price. It turned out there are several versions of the device not all of them supporting Miracast. The post got a traffic spike when ChromeCast was announced, as some people mentioned the iPush as an alternative.
  6. How to Run Android Apps in Linux with AndroVM (March 2013) – Android’s got plenty of app, and I though it would be nice is there was an easy way to run then in a Linux desktop. Luckily, AndroVM, now GenyMotion, made it relatively easily.
  7. BeagleBone Black vs Raspberry Pi – Features and Price Comparison (April 2013) – In 2012, the Raspberry Pi disrupted the hobbyist board market with its $35 price tag. But in 2013, it got some tough competition will plenty of more powerful boards selling for less than $60. One of them is the BeagleBone Black selling for $45, and AFAIK, the most popular among “alternatives”. Since the board has similar price, people wanted to know which one was good for them. To date, 2.3 million Raspberry Pi boards have been sold, against at least 100,000 BeagleBone Black.
  8. Quad Cores SoC Comparison: Rockchip RK3188 vs Exynos 4412 vs Tegra 3 (April 2013) -Comparisons are often popular, and this one with the top three quad core processors at the beginning of 2013 was too.
  9. How to Root Rockchip RK3188 mini PCs (March 2013) – As Rockchip RK3188 mini PCs become popular, people wanted to know how to root them.
  10. Ubuntu Linaro 12.11 with 2D/3D Mali-400 GPU Acceleration on ODROID-X Development Board (February 2013) – It can be a pain to get a working Linux distribution with GPU acceleration on ARM based hardware, so when I tried Hardkernel image on ODROID-X, and found out it was actually pretty good, it generated some buzz.

Some posts from 2012 were still popular and would have made it to the list including posts related to WM8850-MID tablet, Cubieboard Getting Started Guide, and 84MB Raspberry Pi minimal image.

Now let’s see some stats for cnx-software.


The site averaged about 300,000 page views per month, although as expected, two months holiday did not really help with traffic. Google Analytics reports a total of 2,239,006 visits, 1,306,200 unique visitors, and 3,579,860 page views for the year.

About half of the traffic came from search engines, mainly Google, with the remaining halves from over 4,000 other websites. The top 10 search terms and referral are shown in the table below:

Top 10 Keywords Top 10 Referrals
mid tablet review
wm8850-mid firmware
miracast adapter
miracast dongle
mid android tablet review
minix neo x7

Let’s find out more about my visitors now.

CNX Software is quite cosmopolitan. US and UK visitors represent about 22%, with the rest of the traffic coming from countries where English may not be the first language.


Most people still use Windows, but Linux still has a nice 18% traffic share (25.5% including Android and Chrome OS) which is well above average. Chrome is ahead a Firefox, with Internet Explorer far behind.

CNXSoft_OS_BrowserSite Speed figure are now available in GA, so for fun I’ve checked which countries, with over 1,000 page views per year, had the fastest and slowest average page load times on this blog.

Fastest (Left) and Slowest (Right) Average Page Load Times

Fastest (Left) and Slowest (Right) Average Page Load Times

You can consider yourself a lucky one if you live in Switzerland, Norway, and New Zealand, as pages load in less of 5 seconds average, but if you live in the Philippines, and especially in China and Nigeria, you may not be so lucky as page load times average over 60 seconds.

That’s all for today, and 2013, so I’ll join this year gadgets and boards (pictured below) to wish you a very happy and prosperous new year 2014, which promise to be interesting with the first ARM 64-bit based consumer devices, Chinese big.LITTLE processors coming to market, cheaper and more powerful devices, the Internet of things hopefully becoming mainstream, new mobile operating systems such as Tizen, Firefos OS possibly gaining momentum, and Linux with GPU acceleration for all thanks to Ubuntu 14.04 (and libhybris).
Click to Enlarge

UDOO QUAD vs BeagleBone Black vs Wandboard Dual vs ODROID-X2 vs Raspberry Pi

May 27th, 2013 5 comments

UDOO QUAD is a development board featuring both Freescale i.MX 6Quad and an Atmel SAM3 Cortex M3 MCU, that’s currently having a very successful campaign on Kickstarter, as the total amount pledged is now close to $500,000 US. UDOO decided to put a comparison table against four other ARM Linux boards they consider their main competitors: the BeagleBone Black for its numerous I/O options, Wandboard Dual, also a Freescale i.MX6 powered board, the ODROID X2 for its powerful Exynos 4412 processor, and Raspberry Pi model B which is ubiquitous. The Cubieboard board would also have been an interesting addition, but they did not include it.

Low Cost Development Boards Comparison Table (Click to Enlarge)

Low Cost Development Boards Comparison Table (Click to Enlarge)

As you would have guessed the green parts in the tablet shows the winner for each features according to UDOO team. These 5 boards vary greatly in terms of price, and since this is not included in the table above, I’ll mention  the price of the boards (excluding shipping, tax, and accessories):

  • UDOO QUAD – $129
  • BeagleBone Black – $45
  • Wandboard Dual – $99
  • ODROID X2 – $135
  • Raspberry Pi – $35

Raspberry Pi and BeagleBone Black are in a different price range compared to the other three range, with the Raspberry Pi getting the crown for the cheapest board, but as usual you have to think about total cost which is project dependent. When it comes to pure processing power, ODROID X2 is probably the one you want, especially it comes with 2GB memory. If size matters to you, BeagleBone Black is the smallest board in the list, just a bit smaller than the Raspberry Pi. UDOO QUAD is the only board with SATA in the list, although Cubieboard would have been a contender here if it had been included. The Freescale boards (Udoo and Wandboard) have better connectivity options with Gigabit Ethernet, and built-in Wi-Fi, but Wandboard is the only board with built-in Bluetooth. When it comes to digital and analog I/Os, UDOO QUAD seems to outperform all other boards, even the BeagleBone Black which comes a close second.

Other useful fields would have been internal storage (UDOO as none), hardware video decoding capabilities, OS support, power consumption, etc,… but this is a never ending story.

Ubuntu Linaro 12.11 with 2D/3D Mali-400 GPU Acceleration on ODROID-X Development Board

February 19th, 2013 36 comments

A few days ago, Hardkernel released the first version of Ubuntu 12.11 (Linaro) with Mali-400 GPU support for their ODROID boards (ODROID-X/X2, ODROID-U/U2). This is still WIP (Work in Progress), but this is one of the few boards together with Pandaboard, Origen and Snowball that can support 2D/3D GPU acceleration in Ubuntu Quantal. Since I have an ODROID-X development board, I decided to give it a try. There are different ways to install it. I chose the way that is most convenient for me (LCD display instead of HDMI), and likely to yield more performance (eMMC instead of SD Card). The current installation instructions to eMMC are extremely cumbersome and you have to go through 5 main steps:

  1. Install Android (yes, seriously) in the eMMC
  2. Install Ubuntu in the SD Card
  3. Install Ubuntu to the eMMC
  4. Upgrade Ubuntu to the latest version
  5. Install the Mali drivers

In this post I’m going to go through all those steps, and do some testing for eMMC and 2D/3D performance. If you just want to boot Ubuntu from SD, simply skip steps 1 and 3. For eMMC installation, I followed the “eMMC Ubuntu” guide on odroid forums, as well as the instructions on the release post to install Mali drivers, and enable 2D/3D acceleration in Ubuntu. Similar instructions are also available for ODROID-X2 and ODROID-U2.

You’ll need an 8GB SD Card or greater to complete all the steps.

Installing Android to ODROID-X

  • Insert the SD card in a Linux PC, and find your SD card device:

  • Download & extract the Android Installer, and write it to your SD card with dd or script:

If you use Windows, do it with Win32DiskImager. Back in the times when I still used Windows and Win32DiskImager, I never had problems myself, but some people apparently have, and Hardkernel released an improved version of Win32DiskImager to verify the copy.

Then insert the SD card in your ODroid-X board, connect a Jumper on SD/MMC connector (JP2) to boot from SD card, and install the latest version of Android. During installation I had no display on the 10″ LCD display, and the board simply powered itself off after a while. Not sure this is normal, but after removing the Jumper, I could boot to Android (3-Jan-2013 build) from the eMMC.

Installing Ubuntu 12.11 for ODROID-X to the SD card

Now take the SD card back to your Linux computer to copy the Ubuntu image:

  • For LCD display:

  • For HDMI Display:

I’ll carry on with the LCD image since this is what I use, but the step for HDMI are the same, just replace the filename:

Inset the SD card in ODroid-X board, insert the Jumper in JP2 to boot from SD card to verify Ubuntu 12.10 boots correctly.

Install Ubuntu to ODROID-X eMMC Module

Once you’ve verified Ubuntu boots correctly from the SD Card, put the SD card back in your PC and copy odroidx_20130128-linaro-ubuntu-desktop_SD_with_LCD.img.xz to the rootfs. In my PC running Ubuntu 12.04, it will automount it to /media/rootfs:

Once umount is successfully (which means the data is fully written to the SD card), you can insert it back into your ODroid-X board to install Ubuntu 12.10 to your eMMC. First locate your eMMC device with:

The eMMC is the device with with boot0/boot1, as well as p1/p2/p3/p4. In my case, it’s mmcblk0. Once you know this, copy Ubuntu to the eMMC by using the following command in a terminal:

Once sync is complete, power off the board, remove the Jumper on JP2, and start Ubuntu.

Ubuntu Quantal in ODROID-X Board

Ubuntu Quantal in ODROID-X Board

Upgrading Ubuntu (15 Feb)

Before we can use Mali-400MP4 GPU in Ubuntu, you must install an update for Ubuntu (Feb 15, 2013):

If you are using the Wi-Fi module from Hardkernel (and probably others), run those 2 commands:

Installing Mali Drivers for ODROID-X Board

Mali-400MP4 drivers are not included in the image, most probably for legal reasons, and you have to accept an End-User-License-Agreement (EULA) during installation (dkpg). Let’s do this:

If you are outputting to an HDMI monitor, the installation should be complete at this stage. In my case I could only the 4 tux and nothing else showed up on the display. I could however access the command line via the serial console. After further reading, I found out I had to modify /usr/share/X11/xorg.conf.d/99-hkl_mali.conf to make it work with the LCD display as follows:

Ubuntu Linaro 12.11 Performance in ODROID-X

The first thing I’ve noticed is that Ubuntu feel snappy with this hardware, at least snappier than in my Atom netbook running Ubuntu 12.04, and it’s the first time I could see myself using this platform as a desktop replacement. Booting from power off takes 15 to 20 seconds. There are still some issues though. Once of them is that software-center is not working when run from the eMMC (SD card is OK). Even though this post is mainly about GPU support, I’ve compared startup times from eMMC and SD card with Libreoffice Writer, Software Center, and Firefox

Libreoffice Writer was not pre-installed, so I installed it first:

Firefox Software Center Libreoffice Writer
SD Card 5s 18s 11s
eMMC 3s Does not start 5s

Each program was started after a reboot. We can notice there’s a significant advantage of using eMMC instead of SD card when it comes to startup time.

I’ve also done several 2D/3D tests.

I started with es2gears, which comes in the provided Ubuntu image:

EGL_VERSION = 1.4 Linux-r3p2-01rel0
vertex shader info:
fragment shader info:
483 frames in 5.0 seconds = 96.561 FPS
427 frames in 5.0 seconds = 85.230 FPS
395 frames in 5.0 seconds = 78.827 FPS
394 frames in 5.0 seconds = 78.580 FPS
379 frames in 5.0 seconds = 75.664 FPS
373 frames in 5.0 seconds = 74.570 FPS
363 frames in 5.0 seconds = 72.585 FPS
352 frames in 5.0 seconds = 70.245 FPS
332 frames in 5.0 seconds = 66.387 FPS
317 frames in 5.0 seconds = 63.273 FPS
297 frames in 5.0 seconds = 59.341 FPS
298 frames in 5.0 seconds = 59.469 FPS
279 frames in 5.0 seconds = 55.722 FPS
280 frames in 5.0 seconds = 55.855 FPS
263 frames in 5.0 seconds = 52.505 FPS
260 frames in 5.0 seconds = 51.875 FPS
251 frames in 5.0 seconds = 50.090 FPS
237 frames in 5.0 seconds = 47.230 FPS

It appears to work, but the window background is transparent, and although the frame rate starts at 96.651, it just decreases which each iteration… Not sure what that means…

I’ve also installed glmark2-es2

sudo apt-get install glmark2-es2

glmark2-es2 2D/3D GPU Benchmark in ODROID-X Development Board

glmark2-es2 2D/3D GPU Benchmark in ODROID-X Development Board

run it, and got a score of 54:

[email protected]:~$ glmark2-es2
glmark2 2012.08
OpenGL Information
GL_RENDERER:   Mali-400 MP
GL_VERSION:    OpenGL ES 2.0
[build] use-vbo=false: FPS: 52 FrameTime: 19.231 ms
[build] use-vbo=true: FPS: 54 FrameTime: 18.519 ms
[texture] texture-filter=nearest: FPS: 57 FrameTime: 17.544 ms
[texture] texture-filter=linear: FPS: 57 FrameTime: 17.544 ms
[texture] texture-filter=mipmap: FPS: 57 FrameTime: 17.544 ms
[shading] shading=gouraud: FPS: 57 FrameTime: 17.544 ms
[shading] shading=blinn-phong-inf: FPS: 57 FrameTime: 17.544 ms
[shading] shading=phong: FPS: 54 FrameTime: 18.519 ms
[bump] bump-render=high-poly: FPS: 46 FrameTime: 21.739 ms
[bump] bump-render=normals: FPS: 58 FrameTime: 17.241 ms
[bump] bump-render=height: FPS: 57 FrameTime: 17.544 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 56 FrameTime: 17.857 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 56 FrameTime: 17.857 ms
[pulsar] light=false:quads=5:texture=false: FPS: 58 FrameTime: 17.241 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 40 FrameTime: 25.000 ms
[desktop] effect=shadow:windows=4: FPS: 53 FrameTime: 18.868 ms
Error: Requested MapBuffer VBO update method but GL_OES_mapbuffer is not supported!
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: Unsupported
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 37 FrameTime: 27.027 ms
Error: Requested MapBuffer VBO update method but GL_OES_mapbuffer is not supported!
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: Unsupported
[ideas] speed=duration: FPS: 53 FrameTime: 18.868 ms
[jellyfish] <default>: FPS: 56 FrameTime: 17.857 ms
Error: SceneTerrain requires Vertex Texture Fetch support, but GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS is 0
[terrain] <default>: Unsupported
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 57 FrameTime: 17.544 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 57 FrameTime: 17.544 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 57 FrameTime: 17.544 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 57 FrameTime: 17.544 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 57 FrameTime: 17.544 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 57 FrameTime: 17.544 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 58 FrameTime: 17.241 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 57 FrameTime: 17.544 ms
glmark2 Score: 54

Some test failed. I’m not sure if it’s because those are not implemented yet, or simply not supported by Mali-400. One interesting point is that ODROID-U2 users reports that Xubuntu is twice as fast as Ubuntu in glmark2-es2, and the culprits appear to be Unity and Compiz.

I’ve done another test to check whether WebGL would work, and I’ve got between 0 to 1 fps on both Firefox and Chromium with WebGL Aquarium. A final comment, since many people still seem to be confused with GPU and video decoding. The Mali-400 does not handle video decoding, this is done normally done by the Video Processing Unit (VPU), and AFAIK this is not currently supported in Linux on ODROID boards.

Running Ubuntu in Android with ODROID-X Development Board

December 13th, 2012 4 comments

I’ve had several people asking me about running Linux on Android in the last few months, but I did not look into it into details, because I thought we would just be able to run server apps. That is until Rohith left a comment on CNX Software Facebook timeline,  that it’s possible to run Linux in Android, and access the user interface via VNC (sort of simple, but I did not think of it). You probably need at least 1GB of memory and a multi-core processor to run this sort of setup correctly, so I finally decided to give it a try by running Ubuntu 12.04 with Unity interface in ODROID-X development board.

I mainly followed the instructions available at and inside the Android app. Most of the steps I followed can also be replicated on other rooted Android hardware platforms. Apart from Ubuntu 10.04 & 12.04, you can also install Debian and Backtrack distributions.

Updating Android, rooting and installing the Play Store on ODROID-X

Since I hadn’t used the board since August, I decided to update Android to the latest version. This step is optional, and if you’re using another device, you can completely skip this section. I’m using an eMMC with my board, if you want to boot from SD card, following the instructions on hardkernel forums.

  1. Download Android 4.0 Alpha 3.5 ( and extract it
  2. Enter into fastboot mode.
    If you have any, remove your SD-card and make sure JP2 is unconnected.

    • If you have the USB-UART kit, press any key within 3 seconds in your terminal software after power on, and enter ‘fastboot’ in u-boot prompt.
    • If you don’t have the USB-UART kit, press & hold the “user” button (SW3) of ODROID-X board and power on, and after 6~7 seconds, release the button.
  3. Connect your board to the host PC with a micro-USB cable.
  4. If you don’t have it, install fastboot on your host PC . (Instructions)
  5. Copy the kernel, ramdisk and system images to the eMMC module:
  6. Reboot and let Android perform the update

In order to run Linux in Android, you’ll need a rooted device and the Play Store app to install relevant applications.

Due to legal reasons, Hardkernel can’t install Google Play Store in the image they provide, but they can provide instructions to do so:

  1. Download and extract
  2. Copy the file to the /system directory
  3. Reboot the system to complete the installation

To root ODROID-X board, download unlockroot utility and follow the instructions (See ODROID-X review for details).

Setting Up Android to Run Ubuntu

This is where the instructions to prepare your rooted Android system to run Ubuntu or another Linux distribution start.

  1. Install Complete Linux Installer from Google Play.
  2. Start the application, click on Install Guides, and select your OS (e.g. Ubuntu 12)
  3. Follow the instructions:
    How to install Ubuntu for Android

    1. Download one of the Ubuntu images via http or bittorrent. There are 3 images:
      • Core Ubuntu Image – ~200MB to download and 750MB once extracted. It includes the basics without GUI.
      • Small Ubuntu Image – ~400MB to download and 2GB once extracted. It includes LXDE desktop
      • Large Ubuntu Image – ~1.3GB to download and 3.5GB once extracted. This image features the Unity interface as well as a range of other programs such as Firefox and LibreOffice

      However, the http link did not seem to work in Android, and the current version of Android ofr ODROID-X is known to hang during p2p downloads, so I decided to download the “Large Ubuntu Image” (Torrent or http) on my PC.

    2. Install the Android VNCViewer App.
    3. Install the Android Terminal Emulator App.
  4. Extract the downloaded image, can copy the 2 files (ubuntu.img and ubuntu.img.md5) to a directory (e.g. ubuntu) in the eMMC or a fast SD card.

Running Ubuntu in Android

We’ve now got all the required components and are ready to run Ubuntu in Android.

  1. Go back to Complete Linux Installer main menu, click on Launch,  and if the path is OK, you can just click on Start. If you run from SD card in ODROID-X, you’ll need to create a new config or edit the image path to /mnt/ext_sd/ubuntu/ubuntu.img.
  2. As you click on Start, the app will launch the Android Terminal, and for the very first boot, a script will check the image checksum (it will take a while), ask you to provide a password for Ubuntu user, ask if you want to start VNC and SSH server, request the size screen (1360×720 in my case), and finally ask if you want to save the settings, before entering the Linux shell. At this point, you are already using Ubuntu.
  3. Start VNC Viewer, enter the connection nickname, password, address (localhost), port (5900) and username (ubuntu). For better looking graphics, I chose 24-bit color depth (4 bpp).
  4. Click Connect, wait for the Ubuntu to show up and start a few applications.

Ubuntu on Android (Click to Enlarge)

At first, I ran Ubuntu from a cheap SD Card, and the desktop was rather sluggish, but I still decided to launch Libre Office 3 Writer… and it took over 5 minutes! So I decided to copy the Ubuntu image to the eMMC module. Ubuntu become more responsive, and Libre Office 3 Writer launched within 20 to 45 seconds the few times I tested (after “reboot’ each time).

You can watch the video below to see the step required to start (and stop) Ubuntu in Android, and assess the performance in ODROID-X board.

This method does not offer the great integration or performance that would be available with Canonical’s Ubuntu for Android, but it’s still usable as long as you use a fast storage device, and I can imagine this being useful for people who need to access application not available on Android, such as Libre Office for Android, and edit office files from their phones when they don’t have access to a computer.

$69 ODROID-U & $89 ODROID-U2 Exynos 4412 Development Boards

November 30th, 2012 25 comments

Hardkernel has just announced 2 tiny quad core development boards based on Exynos 4412 @ 1.4 GHz (as used in Samsung Galaxy S3) and Exynos 4412 Prime @ 1.7 GHz (as used in Samsung Galaxy Note 2) called respectively ODROID-U and ODROID-U2. The other difference is the U version comes with 1 GB RAM, and the U2 version with 2 GB RAM.

Exynos 4412 mini development board

ODROID-U Development Board Compared to a Credit Card

Here are the specification the ODROID-U and ODROID-U2 boards:

  • Processor – Samsung Exynos4412 @ 1.4 GHz (ODROID-U) or Exynos 4412 Prime @ 1.7 Ghz (ODROID-U2), which can be overclocked respectively to 1.8 GHz and 2 GHz.
  • GPU – Mali-400 clocked at 400MHz (ODROID-U) or 440MHz (ODROID-U2), which can be overclocked respectively to 533 and 633 MHz.
  • System Memory – 1GB LPDDR2 DRAM @ 800MHz (ODROID-U) or  2GB @ 880MHz (ODROID-U2)
  • Storage – microSD socket, eMMC connector
  • USB – 2x USB 2.0 Host ports, 1x USB 2.0 device for ADB/mass storage
  • Ethernet – 10/100Mbps (LAN9730)
  • Video Output – micro HDMI
  • Audio Output – 3.5mm Jack
  • Audio Input – Digital Microphone (ODROID-U2 only)
  • System Console – UART (1.8Volt)
  • DC Power – 5V/2A
  • PCB Dimension – 48 x 52mm
  • Heat Sink – 56 x 59 x 60mm

ODROID-U Block Diagram

As with the ODROID-X, Hardkernel will provide Android Jelly Bean and Ubuntu images and source code. Schematics will also be made available but only on the 31st of January 2013.

As you can see from the picture above, ODROID-U(2) boards will be shipped with an aluminum heatsink that will also serve as a case for the board. Most of ODROID-X modules (See unboxing) will be available for the platforms excluding LCD screen and Camera module which are not available for the new platform. Watch the video below for a tour of the board, accessories and see what you can do in Ubuntu (web browsing in Firefox, printing in Libreoffice…).

Hardkernel also announced further details about ODROID-X2 board (same as ODROID-X board but with Exynos 4412 prime and 2 GB RAM) that will be sold for $135 (instead of $149 previously announced) and be available on the 10th of December 2012.

ODROID-U & ODROID-U2 can be pre-ordered now for respectively $69 and $89 + $30 for worldwide shipping, and shipping is expected to start on Jan. 16, 2013 and Dec. 21, 2012. That’s really good value for quad-core development boards, and it looks like I might be able to review ODROID-U2 soon…

$149 Hardkernel ODroid-X2 Development Board with Exynos 4412 @ 1.7 GHz and 2 GB RAM

November 1st, 2012 4 comments

You’ve probably heard about the ODROID-X development board announced in July by Hardkernel. They now have an updated version called ODroid-X2 with Samsung Exynos 4412 clocked at 1.7 GHz (vs 1.4 GHz) and 2 GB RAM (vs 1 GB RAM for the first version). They also boosted the Mali 400 clock speed from 400 MHz to 533 MHz.

Apart from being a good mobile development platform, the 2 GB RAM could make the board a pretty good native ARM build machine under Ubuntu, as I’ve read 1 GB RAM is not always enough at link stage (e.g. for Debian packages, sorry I can’t find the link), unless you use swap which tremendously slows things down.

The rest of the board seems identical and it just looks the same as the first version. Charbax shot a video of Hardkernel ODroid-X2 development board at ARM Techcon 2012:

ODroid-X2 will cost $149 (ODroid-X costs $129) and be available at the end of November.

XBMC For Android on ODroid-X Development Board (Video)

August 14th, 2012 1 comment

I’ve tried one the latest nightly builds for XBMC on Android on the ODroid-X development board based on Exynos 4412 quad core Cortex A9 processor, and more exactly that file. Currently XBMC only supports 2 cores, so it’s still not optimized for this platform, but there has been a lot of progress since last month, when I tried XBMC on the Mele A1000, and it appears to be fairly stable.

Video Playback on XBMC for Android (Click to Enlarge)

The UI is very smooth (about 55 fps) and responsive on the ODroid-X  board. 1080p video playback is not perfect yet, but once XBMC can make use of four cores, it should be possible to handle 1080p software video decoding. Most of the things I tried work almost perfectly: video playback, picture display, audio playback, weather… There are still some bugs however, such as the lack of timezone support as you can see on the picture above, and the plugins I tried, namely YouTube and Al Jazeera, failed to work. I also had some problem to get rid off the OSD bar while playing video, but it might be because I don’t know where to click. or position the cursor. Videos are played and pictures are displayed from a Windows Share (SAMBA/CIFS), and I accessed audio files via uPnP. Enjoy!