Yesterday, Hardkernel released the first version of Ubuntu for ODroid-X development board based on Linux 3.6-rc1 and Linaro Ubuntu Desktop 12.07.
This is still early work, but here’s the current status:
- Linux Kernel 3.6-rc1 with gcc 4.7.1 Linaro toolchain
- SMP driven Quad-Core processing
- PMIC device driver
- USB 2.0 High-speed Host driver for Exynos-4412 HSIC interface
- Ethernet + USB Hub device driver
- LCD display driver
- HDMI display driver (Very early version and it may have HDMI 1.4a compatibility issues with some monitors)
To do:
- Audio codec driver
- eMMC device driver
- Clock control driver
- 3D HW-GPU X11 driver (This may need couple of months)
- Power-off support
- WiFi module is not working with Ubuntu GUI. Hardkernel Wi-Fi module is not working due to missing driver
There are 2 images: one for LCD display kits, one for HDMI output that can be downloaded via:
- BitTorrent – One file with both images? Very slow for me.
- HTTP preferably to be used if BitTorrent is blocked by your ISP.
Once the download complete, uncompress the image and copy on a 8GB SD card or greater as follows:
1 |
sudo dd if=odroidx_20120807-linaro-precise-ubuntu-desktop_with_HDMI.img of=/dev/sdX |
where X is the letter of your SD card device on your system. If you’re using a 8GB SD card, there might be some slight differences in size, and you could see the following message:
1 |
dd: writing to '/dev/sdb': No space left on device |
If you still try to boot Ubuntu with this SD card, the boot will miserably fail to mount the rootfs:
1 2 3 4 5 6 7 8 |
[ 3.935000] EXT4-fs (mmcblk0p3): bad geometry: block count 1955584 exceeds size of device (1895424 blocks) [ 3.985000] List of all partitions: [ 3.985000] b300 7639040 mmcblk0 driver: mmcblk [ 3.990000] b301 4095 mmcblk0p1 00000000-0000-0000-0000-000000000000 [ 4.000000] b302 53248 mmcblk0p2 00000000-0000-0000-0000-000000000000 [ 4.005000] b303 7581696 mmcblk0p3 00000000-0000-0000-0000-000000000000 [ 4.015000] No filesystem could mount root, tried: ext4 [ 4.020000] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,3) |
Run the following command to fix and resize the rootfs partition:
1 2 |
sudo fsck.ext4 /dev/sdb3 sudo resize2fs /dev/sdb3 7000M |
Now you’re ready to insert the SD card in the board. Make sure the Jumper to boot from SD card is inserted and start the board. After slightly over 1 minute the Ubuntu desktop should appear.

Boot time would be greatly reduced with initramfs support and a Class 4 or 10 SD card. I’m using a cheap SD card and the system response is not that great at the moment, although it’s still usable. Hardkernel Wi-Fi module is using Ralink RT5370 chipset, and the driver was not included in this image. I’ve built the driver successfully, but memory allocation error at load time prevent it from working correctly. Without network, I’ve decided not to review Ubuntu just yet.
If you want to customize the kernel, Hardkernel made it available on github. If you don’t have it already installed the Linaro cross-toolchain in Ubuntu:
1 |
sudo apt-get install gcc-arm-linux-gnueabihf |
For other distributions, you can download the latest gcc-linaro binary image, and uncompress it to your system
Now you can retrieve the code and build it:
1 2 3 4 5 6 7 |
git clone https://github.com/hardkernel/linux.git cd linux git checkout odroidx-next -b odroidx-next make ARCH=arm odroidx_defconfig make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j 18 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules -j 18 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules_install INSTALL_MOD_PATH=./ -j 18 |
To copy arch/arm/boot/zImage to your SD-Card, use the following command in your host PC:
1 |
sudo dd iflag=dsync oflag=dsync if= ./arch/arm/boot/zImage of=/dev/sdX seek=1057 |
and copy the modules to the rootfs.

Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress