Home > Graphics, Linux, Samsung Exynos, Testing > Ubuntu Linaro 12.11 with 2D/3D Mali-400 GPU Acceleration on ODROID-X Development Board

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

February 19th, 2013 Leave a comment Go to 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:
sudo blkid
/dev/sda1: UUID="9c042788-fa75-4fc4-9b12-598c809410e8" TYPE="ext4"
/dev/sda5: UUID="fa4d6d7d-311a-4570-a498-96394b828e01" TYPE="swap"
/dev/sdb1: LABEL="SEAGATE EXTENSION" UUID="C0588ADB588AD018" TYPE="ntfs"
/dev/sdc: LABEL="Ubuntu_ODROID-X" UUID="f04f2d56-86a6-44ad-9b63-854714ab78fd" TYPE="ext4"
  • Download & extract the Android Installer, and write it to your SD card with dd or dd.sh script:
wget http://dn.odroid.com/Android_Alpha_4.0.2/x/emmc_installer_for_odroidx.zip
unzip emmc_installer_for_odroidx.zip
sudo dd.sh if=emmc_installer_for_odroidx.img of=/dev/sdc

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:
wget http://dn.odroid.com/Ubuntu_X/20130128/odroidx_20130128-linaro-ubuntu-desktop_SD_with_LCD.img.xz
  • For HDMI Display:
wget http://dn.odroid.com/Ubuntu_X/20130128/odroidx_20130128-linaro-ubuntu-desktop_SD_with_HDMI.img.xz

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:

7z x odroidx_20130128-linaro-ubuntu-desktop_SD_with_LCD.img.xz
sudo dd.sh if=odroidx_20130128-linaro-ubuntu-desktop_SD_with_LCD.img of=/dev/sdc

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:

sudo cp odroidx_20130128-linaro-ubuntu-desktop_SD_with_LCD.img.xz /media/rootfs
umount /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:

ls /dev/mmcblk*

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:

sudo xzcat /odroidx_20130128-linaro-ubuntu-desktop_SD_with_LCD.img.xz | sudo dd of=/dev/mmcblk0 bs=4M
sync

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):

wget http://dn.odroid.com/Ubuntu_X/20130215/linux-3.0.63-odroidx_20130215.tar.gz
tar xvfz linux-3.0.63-odroidx_20130215.tar.gz
cd linux-3.0.63-odroidx_20130215
sudo ./install.sh
sync
sudo reboot

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

sudo depmod -a
sudo reboot

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:

wget http://dn.odroid.com/MALI400_R3P2/20130215/mali_packages.tar.gz
tar xvfz mali_packages.tar.gz
cd mali_packages
sudo dpkg -i mali400_2.1-13_armhf.deb
sudo dpkg -i mali400-dev_2.1-13_armhf.deb
sudo dpkg -i xf86-video-mali_1.0.1-7_armhf.deb
sudo rm -fr /usr/lib/arm-linux-gnueabihf/mesa-egl
sync

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:

Option   "fbdev"          "/dev/fb0"
.......
DefaultDepth   24

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:

sudo apt-get install libreoffice-writer
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:

es2gears
EGL_VERSION = 1.4 Linux-r3p2-01rel0
vertex shader info:
fragment shader info:
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:

linaro@linaro-ubuntu-desktop:~$ glmark2-es2
=======================================================
glmark2 2012.08
=======================================================
OpenGL Information
GL_VENDOR:     ARM
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.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

  1. onebir
    February 19th, 2013 at 18:55 | #1

    Possibly stupid qn. :) Can Ubuntu (or other Debian derivatives) on Arm processors install .deb files from the Ubuntu/Debian repos, or do packages for them have to be compiled specially?

  2. February 19th, 2013 at 19:11 | #2

    @onebir
    Yes, because there are armel/armhf repositories. So you can just use apt-get, or use dpkg with an armhf package. For example, you can search and install Quantal deb armhf packages at https://launchpad.net/ubuntu/quantal/armhf

  3. February 19th, 2013 at 19:12 | #3

    @onebir
    “Yes”
    The Debian/Ubuntu-repos are pretty completely available for ARMHF. So binaries need to be compiled for this “different” (to x86/x64) Platform, but most software comes already compiled for this.
    Ubuntu-PPAs are a different thing though… sometimes noone needed the special PPA and compilation for armhf/armel is not enabled.
    Same goes for other binary distribution of software, you won’t be able to download some x86-flashplugin from Adobe and use it. If you have the code however, you could compile it yourself.

  4. Ermis
    February 19th, 2013 at 19:12 | #4

    Debian has a repo containing their packets precompiled for ARM

    armel for boards based on armv5 or higher

    armhf for cortex-A8 or higher

    the difference is the hardware floating point unit support which makes armhf faster for the boards that support it.

    So yes you can just apt-get install any package present in the armel/armhf repo. I guess it’s something similar for Ubuntu or other Debian derivatives…

  5. Ermis
    February 19th, 2013 at 19:15 | #5

    @Ermis
    A minor correction, instead of Cortex-A8 i should have written armv7. Cortex-A8 is actually the first cpu based on this architecture.

  6. Tim Michals
    February 19th, 2013 at 21:23 | #6

    Running Xubuntu on an atom also provides better performance.

  7. onebir
    February 19th, 2013 at 22:57 | #7

    Thanks folks. I’m a bit clearer now. I remembered a lot of packages had to be recompiled for Raspbian, but realise now that was because the Debian/Ubuntu armhf was for a later arm version…

    (& I wonder how much the confusingness of Arm version naming has been in discouraging use of Arm processors outside of geekville… I just live in the suburbs :) )

  8. Armblock
    February 19th, 2013 at 23:02 | #8

    I could get about 140~150pts of glmark2-es2 score on the Fedora for ODROID-X2.
    Mali400 driver on Fedora made almost twice performace over Ubuntu.

    Anyway the eMMC gives the amazing user experience to ARM based platform.

  9. Armblock
    February 19th, 2013 at 23:06 | #9

    @Armblock
    Quake3 is also running well with the Mali400 driver in 1920×1080 Full HD resolution.
    http://youtu.be/qkeVCttWkWE

  10. The Cageybee
    February 20th, 2013 at 00:56 | #10

    Does the release of these drivers possibly help in getting mali linux acceleration on other chips?
    I.e. a10, rk3066

  11. sky770
    February 20th, 2013 at 01:34 | #11

    @The Cageybee

    :) Lima driver(for Mali 400) is on the way..

  12. February 20th, 2013 at 11:24 | #12

    @The Cageybee
    Normally not, it’s tied to the SoC. It seems AllWinner forgot to “lock” something so their drivers can also be used on other ARM SoC.
    There’s already GPU accel in Linux with A10 (http://www.cnx-software.com/2012/12/03/2d3d-graphics-linux-demo-x11-egl-gles2-qt4-on-allwinner-a10-tablet/), but I haven’t tested it myself. Using eMMC instead of SD Card is also an important part of the performance improvement with Linux.

  13. February 20th, 2013 at 11:27 | #13

    @The Cageybee
    Also see – http://linux-sunxi.org/Benchmarks#GPU. Not too far away from ODROID-X results, but they may have used Debian instead.

  14. m][sko
    February 20th, 2013 at 19:16 | #14

    Armblock :
    @Armblock
    Quake3 is also running well with the Mali400 driver in 1920×1080 Full HD resolution.
    http://youtu.be/qkeVCttWkWE

    sometimes it drop fps to 25fps :(

  15. Klaus
    February 25th, 2013 at 07:17 | #15

    Hi,

    I am stuck with no HDMI output after installing the image (with_HDMI) to an 8GB SD card. It seems to boot correctly one blue LED constantly on and the other blinking just like under Android – but nothing on the screen. When booting under Android I get the normal display…

    Any idea what I could try and look for on the SD card…?

    Thanks in advance

  16. February 25th, 2013 at 09:15 | #16

    @Klaus
    I suppose you are at “step 2″. Difficult to know what’s going on if you don’t have USB to TTL board to access the serial console.
    It could be your TV does not support the default output mode, but normally a message should show up on your TV.

  17. Klaus
    February 25th, 2013 at 14:46 | #17

    Yes, I am at step 2. I’ll try another monitor. You are probably right that it is my TV. Will report back as soon as I tried it. Thanks already!

  18. Klaus
    February 26th, 2013 at 01:45 | #18

    Hi again, just checked it on another monitor and same result. At sep 2 the system seems to boot from the SD card: one blue led on, the other blinking – but no display – it actually does not even wake up (the display). Next I will try another SD card but if someone has another idea I would be happy.

  19. Klaus
    February 26th, 2013 at 05:07 | #19

    Its me again, sorry!
    I tried now several Monitors (HDMI) and SD cards and I can’t get it to work. I do step 2:
    Download (several times) the HDMI version of the xz file
    unzip it (>5GB) and “burn” it to an SD card.

    As already said it gets quickly to the point of one blue LED on and the other one blinking. However,
    I think it gets stuck at this point. The cooling device of the processor stays cold (not the case with Android). Android boots normal

  20. February 26th, 2013 at 20:54 | #20

    remove the eMMC from the Odroid-X2 when booting from SD. Try to see if it makes a difference, might be a boot issue.

  21. Klaus
    February 27th, 2013 at 07:12 | #21

    Hello, I got quite far now. I am able to boot with openSuse for odroidx and I can run version: odroidx_20121015-linaro-precise-ubuntu-desktop_with_HDMI.img.gz. Actually I am impressed with the performance of the later! I am not able to run version: odroidx_20130128-linaro-ubuntu-desktop_SD_with_HDMI.img.xz. No display…

    Thank you for your feedback…

  22. James
    March 19th, 2013 at 18:01 | #22

    What is required to recompile the kernel, or more precisely… is there a reason it is compiled with “swap” disabled…

    Also, I’ve noticed that my odroid-x will also not wake up the screen while booting, I must turn the screen on manually and then boot the odroid for it to wake up the HDMI port.

  23. March 19th, 2013 at 19:28 | #23

    @James
    swap is probably disabled because it’s not recommended in this type of system as the flash would wear out faster, and it would greatly affect performance.

    Instructions to build the kernel can be found in hardkernel forums.

  24. March 27th, 2013 at 12:18 | #24

    @cnxsoft
    > It seems AllWinner forgot to “lock” something so their drivers can also be used on other ARM SoC.
    Totally late answer, but no, it is not Allwinner. Mali-400 libs are done like that, they are universal, you can use r3p2 from hardkernel on any Mali-400 compatible device, if you will update your platform definition (config.h & mali_platform.c) to match r3p2 kernel drivers. Info about how to do can be gathered from hardkernel repo, just checkout r2p4 drivers in 3.0.y and r3p2 in 3.5.y branches. You will see what changed and you can grab any device r2pX and update it to use hardkernel’s release of r3p2.

    P.S.: dont forget about EULA, include it, hardkernel worked hard-time to get libraries licensed to them.

  25. March 27th, 2013 at 14:20 | #25

    @Dmitriy Beykun
    Nice. So that means that in theory PicUntu developers could use Mali 400 driver released by Hardkernel on RK3066. Would that be legal though?

  26. daniele
    April 4th, 2013 at 16:22 | #26

    this is my score o odroid with:
    Linux linaro-ubuntu-desktop 3.0.63-odroidu2 #12 SMP PREEMPT Wed Feb 13 05:57:57 UTC 2013 armv7l armv7l armv7l GNU/Linux

    – cpu-freq governor performance
    – mali drivers http://dn.odroid.com/MALI400_R3P2/20130222/mali_packages.tar.gz

    =======================================================
    glmark2 2012.08
    =======================================================
    OpenGL Information
    GL_VENDOR: ARM
    GL_RENDERER: Mali-400 MP
    GL_VERSION: OpenGL ES 2.0
    =======================================================
    [build] use-vbo=false: FPS: 168 FrameTime: 5.952 ms
    [build] use-vbo=true: FPS: 157 FrameTime: 6.369 ms
    [texture] texture-filter=nearest: FPS: 139 FrameTime: 7.194 ms
    [texture] texture-filter=linear: FPS: 137 FrameTime: 7.299 ms
    [texture] texture-filter=mipmap: FPS: 137 FrameTime: 7.299 ms
    [shading] shading=gouraud: FPS: 158 FrameTime: 6.329 ms
    [shading] shading=blinn-phong-inf: FPS: 129 FrameTime: 7.752 ms
    [shading] shading=phong: FPS: 111 FrameTime: 9.009 ms
    [bump] bump-render=high-poly: FPS: 114 FrameTime: 8.772 ms
    [bump] bump-render=normals: FPS: 135 FrameTime: 7.407 ms
    [bump] bump-render=height: FPS: 125 FrameTime: 8.000 ms
    [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 44 FrameTime: 22.727 ms
    [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 28 FrameTime: 35.714 ms
    [pulsar] light=false:quads=5:texture=false: FPS: 142 FrameTime: 7.042 ms
    [desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 59 FrameTime: 16.949 ms
    [desktop] effect=shadow:windows=4: FPS: 131 FrameTime: 7.634 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: 64 FrameTime: 15.625 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: 125 FrameTime: 8.000 ms
    [jellyfish] : FPS: 66 FrameTime: 15.152 ms
    Error: SceneTerrain requires Vertex Texture Fetch support, but GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS is 0
    [terrain] : Unsupported
    [conditionals] fragment-steps=0:vertex-steps=0: FPS: 136 FrameTime: 7.353 ms
    [conditionals] fragment-steps=5:vertex-steps=0: FPS: 82 FrameTime: 12.195 ms
    [conditionals] fragment-steps=0:vertex-steps=5: FPS: 134 FrameTime: 7.463 ms
    [function] fragment-complexity=low:fragment-steps=5: FPS: 101 FrameTime: 9.901 ms
    [function] fragment-complexity=medium:fragment-steps=5: FPS: 64 FrameTime: 15.625 ms
    [loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 101 FrameTime: 9.901 ms
    [loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 101 FrameTime: 9.901 ms
    [loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 101 FrameTime: 9.901 ms
    =======================================================
    glmark2 Score: 110
    =======================================================

  27. April 4th, 2013 at 16:47 | #27

    @daniele
    That’s double my score. I can see you’re using slightly newer graphics drivers, and the faster CPU and GPU frequency in your ODROID-U2 certainly helps.

  28. daniele
    April 4th, 2013 at 21:21 | #28

    For performance governor:

    > apt-get install cpufrequtils
    > cpufreq-set -g performance

    Donno if needed but i also changed the file /etc/init.d/ondemand

    i replaced:
    > echo -n ondemand > $CPUFREQ
    in:
    > echo -n performance > $CPUFREQ

    just to be sure the performance governor is applied at startup.

  29. daniele
    April 9th, 2013 at 21:19 | #29

    Well since i did these tests from my unstable linaro on microsd before passing to the emmc :) i retried the tests.
    Consider in the sd i had a lot of self compiled drivers for X just to test the sixaxis (ps3 console).
    After passed to the emmc with standard installation I had:
    1) at first run it gave result glmark2 Score: 75 not so good so….

    so i was wondering for the reason… and… try to repeat the test in this manner (i do that from ssh console usually):
    – log as root
    > /etc/init.d/lightdm stop
    > export DISPLAY=:0.0
    > X&
    > glmark2-es2

    And now the results:

    =======================================================
    glmark2 2012.08
    =======================================================
    OpenGL Information
    GL_VENDOR: ARM
    GL_RENDERER: Mali-400 MP
    GL_VERSION: OpenGL ES 2.0
    =======================================================
    [build] use-vbo=false: FPS: 212 FrameTime: 4.717 ms
    [build] use-vbo=true: FPS: 300 FrameTime: 3.333 ms
    [texture] texture-filter=nearest: FPS: 269 FrameTime: 3.717 ms
    [texture] texture-filter=linear: FPS: 226 FrameTime: 4.425 ms
    [texture] texture-filter=mipmap: FPS: 220 FrameTime: 4.545 ms
    [shading] shading=gouraud: FPS: 240 FrameTime: 4.167 ms
    [shading] shading=blinn-phong-inf: FPS: 241 FrameTime: 4.149 ms
    [shading] shading=phong: FPS: 188 FrameTime: 5.319 ms
    [bump] bump-render=high-poly: FPS: 119 FrameTime: 8.403 ms
    [bump] bump-render=normals: FPS: 197 FrameTime: 5.076 ms
    [bump] bump-render=height: FPS: 174 FrameTime: 5.747 ms
    [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 48 FrameTime: 20.833 ms
    [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 30 FrameTime: 33.333 ms
    [pulsar] light=false:quads=5:texture=false: FPS: 275 FrameTime: 3.636 ms
    [desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 67 FrameTime: 14.925 ms
    [desktop] effect=shadow:windows=4: FPS: 183 FrameTime: 5.464 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: 72 FrameTime: 13.889 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: 182 FrameTime: 5.495 ms
    [jellyfish] : FPS: 65 FrameTime: 15.385 ms
    Error: SceneTerrain requires Vertex Texture Fetch support, but GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS is 0
    [terrain] : Unsupported
    [conditionals] fragment-steps=0:vertex-steps=0: FPS: 212 FrameTime: 4.717 ms
    [conditionals] fragment-steps=5:vertex-steps=0: FPS: 100 FrameTime: 10.000 ms
    [conditionals] fragment-steps=0:vertex-steps=5: FPS: 217 FrameTime: 4.608 ms
    [function] fragment-complexity=low:fragment-steps=5: FPS: 131 FrameTime: 7.634 ms
    [function] fragment-complexity=medium:fragment-steps=5: FPS: 74 FrameTime: 13.514 ms
    [loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 131 FrameTime: 7.634 ms
    [loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 131 FrameTime: 7.634 ms
    [loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 132 FrameTime: 7.576 ms
    =======================================================
    glmark2 Score: 164
    =======================================================

    So with no desktop environment i obtain….. 164
    Hope it is useful.
    :)

    Daniele

  30. April 15th, 2013 at 05:40 | #30

    Hi there! I have published a similar guide for ODROID-U2, thanks for the great post!

  31. rajashekar
    May 3rd, 2013 at 17:00 | #31

    Hi,

    >> Klaus
    >> I am stuck with no HDMI output after installing the image (with_HDMI) to an 8GB SD card. It seems to boot
    >> correctly one blue LED constantly.

    i am also stuck with same problem using linaro 12.11 HDMI image. when i was insert card into board, it display an error as “cannot display this video mode”.
    i was tried with different sd cards, and also with android image, but still am getting same error.

    But linaro 12.08 is working fine.

    please can anybody help me, i have to work with linaro 12.11.

    Advance Thanks,
    Rajashekar.

  32. rajashekar
    May 4th, 2013 at 19:29 | #32

    Hi all,

    previously problem is with my display configuration, after changing display configaration linaro 12.11 is working.

    and i followed all the steps said above, when i am trying to play videos using gstreamer with xvimagesink, it is showing error
    ” xvimagesink.c(1443): gst_xvimagesink_get_xv_support (): /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0:
    No port available” .

    and xvinfo command output is :

    X-Video Extension version 2.2
    screen #0
    no adaptors present

    can anybody help me, how can i play video using xvimagesink.

    Advance Thanks,
    Rajashekar

  33. May 4th, 2013 at 19:35 | #33

    @rajashekar
    I may be wrong, but I understand hardware video decoding is not currently supported in Linux on ODROID boards, so at best you’ll be able to use software decoding.

  34. rajashekar
    May 7th, 2013 at 20:36 | #34

    Thanks for your reply,

    Actually it seems, problem with renderer, because
    i am using software decoder only(ffdec_vp8) i.e.,

    $ gst-launch-0.10 filesrc location=2_part_015.ivf ! ivfparse ! ffdec_vp8 ! xvimagesink

    with the above pipeline, upto decoding process it is working, but problem with xvimagesink.
    I think it is unable to open 2D accelerator, may be i am wrong.

    Adavance Thanks,
    rajashekar.

  35. caro
    September 3rd, 2013 at 08:24 | #35

    hi, do you know if this ubuntu image will work on the samsung origen 4412 ?

  36. xiaoliu
    December 18th, 2013 at 15:56 | #36

    @rajashekar
    hi,
    now ,I met the same problem with the 2D accelerator open ,sametime,the 3D accelerator open yet.
    But I also get this:
    xvinfo command output
    X-Video Extension version 2.2
    screen #0
    no adaptors present
    I want to know the ODROID support the X-video or not under linaro 12.11 or linux ?
    now ,I am upgrating the kernel to odroid-3.8-y,but the kernel can not boot successfully yet
    please tell me someting ,3Q.

  1. February 26th, 2013 at 16:05 | #1
  2. June 18th, 2013 at 02:08 | #2
  3. January 2nd, 2014 at 23:40 | #3