Archive

Posts Tagged ‘Linux’

Orange Pi Development Boards Are Raspberry Pi “Clones” based on Allwinner A20 and A31s

December 22nd, 2014 11 comments

After Raspberry Pi, Waxberry Pi, and Banana Pi boards, here come another fruit-named board with Orange Pi. There are actually three models, with Orange Pi and Orange Pi mini based on Allwinner A20, and Orange Pi Plus powered by a quad core Allwinner A31s processor.

Orange_Pi_Board

Orange Pi Board Description

I’ve drawn a comparison table with the specifications for the three models. Please note that Orange Pi Plus full specifications have not been released yet, so I don’t have all details.

Orange Pi Mini Orange Pi Orange Pi Plus
SoC Allwinner A20 dual core Cortex A7 processor up to 1GHz with Mali-400 MP2 GPU Allwinner A31s quad core Cortex A7 processor with PowerVR SGX544MP2 GPU
System Memory 1 GB DDR3
Storage 2x micro SD slot + SATA NAND Flash + micro SD slot + SATA TBD
Video Output HDMI, AV, and DSI I/F HDMI, AV, VGA, and DSI I/F HDMI, AV, and DSI I/F
Audio I/O HDMI, AV, and MIC HDMI, AV, and MIC HDMI and AV
Connectivity Gigabit Ethernet (RTL8211E/D) + Wi-Fi 802.11 b/g/n + optional Bluetooth Ethernet + 802.11 b/g/n Wi-Fi
Camera Parallel 8-bit I/F CSI connector CSI connector
USB 2x USB 2.0 host ports, 1x micro USB OTG 4x USB 2.0 ports, 1x micro USB OTG
Expansion 40-pin header 26-pin “R-Pi” header
18-pin extended interface
Misc Rest, power, and u-boot buttons
Power, Ethernet, and user LEDS
IR receiver
Rest, power, and u-boot buttons
Power, Ethernet, and user LEDS
IR receiver, RTC battery interface
Rest, power, and u-boot buttons
Power, Ethernet, and user LEDS
IR receiver
Power * 5V/2A via DC jack* 5V via micro USB OTG port * 5V/2A via DC jack
* 5V via micro USB OTG port
* Li-Po Battery
* 5V/2A via DC jack
* 5V via micro USB OTG port
Dimensions 94 x 86 mm 112 x 60 mm N/A
Weight 45 grams 60 grams N/A
Price + Shipping $42.11 $51.31 $76.37
Orange Pi Plus Board

Orange Pi Plus Board

Orange Pi boards appear to be software compatible with Banana Pi, and Banana Pi M2 boards, with support for Android 4.4, Debian, Ubuntu, Raspbian, and Scratch, and Orange Pi website is a close copy of lemaker.org, one of the companies promoting the Banana brand. They even have the same “Apply for Orange Pi“, where you can apply for a free board if you have a project, or want to help with Orange Pi “community”.

Orange Pi boards can be purchased for $42 to $76 including shipping on Shenzhen Xunlong Software Aliexpress store, which also includes cheap accessories such as a $5.90 camera.

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

CubieTruck Metal Case Kit Getting Started Guide and Review

December 21st, 2014 2 comments

I’ve received CubieTruck Metal Case kit just over a month ago, but just like for Ubuntu on ODROID-XU3 Lite, the board could not get HDMI EDID info from my Panasonic TV, which led to a crash at boot time. CubieTech has now fixed the issue, so I’ve finally been able to complete the review with Cubieez (Cubie Easy) distribution, pre-installed on the board, and based on Debian 7.6. You can get the full hardware specs on my previous post, but the kits is comprised of four parts: CubieTruck development based on Allwinner A20 dual core processor, a rugged metallic enclosure, a 128GB SSD, and a 5,300 mAh battery acting as a UPS. I’ll start by showing how to setup the board, test SATA and Gigabit Ethernet performance,  check if the battery acts as expected, try to use the board as a desktop replacement with LibreOffice, Chromium, and so on, and run Phoronix Benchmark. I’ll also explain how to mvoe the rootfs from NAND flash to SSD to extract more performance from the kit.

Getting Started with CubieTruck Board

Even though the board is pre-loaded with Cubieez 2.1, it’s still good to know how to flash the image by yourself, and do the initial setup.

There are some tutorials for CuebiTruck, but the one dedicated to Cubieez is completely empty at the time of writing.

But the important part is to know that the firmware can be found @ http://dl.cubieboard.org/model/cubietruck/Image/Cubieez/ with images for HDMI or VGA output, and NAND flash or SD card boot.

So this is what I had to do to reflash Cubieez (Cubieez 2.2 has been released since then, probably with a fix with my HDMI issue):

wget http://dl.cubieboard.org/model/cubietruck/Image/Cubieez/cubieez-hdmi-v2.1/cubieez-ct-nand-hdmi-v2.1.img.7z
7z x cubieez-ct-nand-hdmi-v2.1.img.7z

You’ll need LiveSuit (Linux or Mac), or PhoenixSuit (Windows) to flash the firmware, which you can download here. I’ve already explained how to install LiveSuit to flash firmware on A80 OptimusBoard, and the procedure is the same for all Allwinner devices. Once the installation is complete simply run:

~/Bin/LiveSuit/LiveSuit.sh

And load the uncompressed image (cubieez-ct-nand-hdmi-v2.1.img) as shown below:

LiveSuit_CubieTruck

Now connect a micro USB to USB cable between your computer, and CubieTruck OTG port, press the FEL button on the right side, power on the kit, and flash should complete automatically.

Then you can just reboot the board, and it should boot into LXDE, unfortunately for me, it did not work that way, and all I could see was the boot log on my HDMI TV.  So I asked some help on CubieBoard Google group, and got some help one or two days later pointing me in the right direction. However, it may have been better to ask on Cubieforums.com, these forums are more active than on Google group.

Nevertheless, the issue was a segfault reported in /var/log/Xorg.0.log:

[    47.423] (II) FBTURBO(0): using /dev/fb0
[    47.423] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[    47.423] (**) FBTURBO(0): Depth 24, (–) framebuffer bpp 32
[    47.423] (==) FBTURBO(0): RGB weight 888
[    47.423] (==) FBTURBO(0): Default visual is TrueColor
[    47.423] (==) FBTURBO(0): Using gamma correction (1.0, 1.0, 1.0)
[    47.424] (II) FBTURBO(0): hardware:  (video memory: 16200kB)
[    47.424] (**) FBTURBO(0): Option “fbdev” “/dev/fb0″
[    47.424] (**) FBTURBO(0): Option “SwapbuffersWait” “true”
[    47.427] (II) FBTURBO(0): processor: ARM Cortex-A7
[    47.429] (EE) FBTURBO(0): Unknown EDID version 0
[    47.429]
[    47.430] Backtrace:
[    47.430]
[    47.431] Segmentation fault at address 0x8
[    47.432]
Fatal server error:
[    47.432] Caught signal 11 (Segmentation fault). Server aborting
[    47.432]

The bold line showed that my TV did not return EDID information, and fbturbo did not check for this case. So CubieTech sent me an updated fbturbo_drv.so, which I copied to  /usr/lib/xorg/modules/drivers/, and I was finally able to access the login prompt in LXDE. I believe this fix must be included in Cubieez 2.2 image.

You can login with cubie / cubieboard, or root / cubieboard. I normally prefer running the system as a user, and run sudo when needed, so I logged in with cubie user.

Cubieez

Cubieez LXDE Desktop (Click for Original Size)

Cubieez features LXDE running on top of Debian 7.6 with Linux 3.4.79, and the default resolution is set to 1080p50, but you can click on Monitor Settings to change the resolution as needed.

The README recommends to run cubie-config in LXTerminal the first time, so let’s do that.

Cubie_configExpand Filesystem is only used for SD card images. Internationalisation Options lets you change the locale, timezone, and keyboard layout, and you can change the hostname, and enable/disable SSH in Advanced Options. Once you;’re done, select Finish, and you may have to reboot.

You’ll probably want to install some packages with apt-get or the Software Center, but the repositories are set to Spanish mirror, and changing the mirrors to one in your country may speed up download a lot. Changing from Spain to Thailand, increased the download speed with apt-get by 10 times in my case.

You can find the list of mirrors @ https://www.debian.org/mirror/list, once you have found the right mirror for your country, edit the source list:

sudo vi /etc/apt/sources.list

And replace

deb http://ftp.es.debian.org/debian stable main contrib non-free
deb http://ftp.debian.org/debian/ wheezy-updates main contrib non-free

by your country’s mirror. For example:

deb http://ftp.th.debian.org/debian stable main contrib non-free
deb http://ftp.th.debian.org/debian/ wheezy-updates main contrib non-free

Finally refresh the system with:

sudo apt-get update

You may want to install your favorite programs, for example:

sudo apt-get install libreoffice gimp nautilus

I found some XMBC binaries for an earlier version of Cubieez, that you need to extract to the root of the system. You have to install some dependencies, then run XBMC as shown below:

sudo apt-get install libssh-4 libmicrohttpd10 libtinyxml2.6.2 libyajl2 liblzo2-2 libpython2.7 libpcrecpp0 libhal1 libhal-storage1
/allwinner/xbmc-pvr-binhf/lib/xbmc/xbmc.bin

But unfortunately XBMC will crash, so this version is not suitable for Cubieez 2.1/2.2.

Finally, the SSD included in the kit is not partitioned nor formatted, so it’s also something you’ll want to do, but I’ll explain that in the next section.

SSD SATA Performance and Gigabit Ethernet

CubieTruck is certainly not one of the fastest ARM Linux system currently available, but its SATA interface and Gigabit Ethernet port could make it one of the best platform for storing and moving data around.

First let’s prepare the SSD for testing. Most people will make a single partition, but since the SSD may be use for Android SATA testing as well in the future, I’ve create two partitions, one formatted with NTFS and the other with EXT-4. To create the partitions, start a Terminal windows in CubieTruck, and type:

sudo fdisk /dev/sda

Now create primary partition(s) with by selecting ‘n’,  and type the start and end of the partition. If you want a single partition, that’s easy as fdisk will select the start and end for you, and you can just press enter to confirm the choice. Finally press ‘w’ to write the partition table and exit.

Format your partitions are needed, and in my case:

sudo mkfs.ntfs /dev/sda1
sudo mkfs.ext4 /dev/sda2

The SSD is now ready. Let’s mount the partitions:

sudo mkdir -p /mnt/sda1
sudo mkdir -p /mnt/sda2
sudo mount -t ntfs /dev/sda1 /mnt/sda1
sudo mount -t ext4 /dev/sda2 /mnt/sda2

In Linux, I’m normally using Bonnie / Bonnie++ to benchmark storage device:

sudo apt-get install bonnie++

By default, bonnie will write a file with double the size of your RAM to perform its testing, which is a way to reduce the influence of the cache, and provide more accurate results.

bonnie++ -d /mnt/sda1
Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
cubietruck       4G     3  13  8726  12  8640  14   424  99 50567  28 787.3  56
Latency              2352ms    1824ms    1807ms   21041us   17141us    2591ms
Version  1.96       ------Sequential Create------ --------Random Create--------
cubietruck          -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
16  1321  15  3549  19  1788  13  1344  16  3756  19  1769  14
Latency              5620us   10305us   49666us    8780us    8080us    5673us
1.96,1.96,cubietruck,1,1418961485,4G,,3,13,8726,12,8640,14,424,99,50567,28,787.3,56,16,,,,,1321,15,3549,19,1788,13,1344,16,3756,19,1769,14,2352ms,1824ms,1807ms,21041us,17141us,2591ms,5620us,10305us,49666us,8780us,8080us,5673us

bonnie++ -d /mnt/sda2
Version 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
cubietruck 4G 85 99 36310 30 23916 26 464 98 179457 89 1199 115
Latency 164ms 1974ms 214ms 39690us 15721us 104ms
Version 1.96 ------Sequential Create------ --------Random Create--------
cubietruck -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 5738 56 +++++ +++ 10671 82 8671 84 +++++ +++ 10397 83
Latency 891us 2857us 3987us 4931us 125us 5187us
1.96,1.96,cubietruck,1,1418828957,4G,,85,99,36310,30,23916,26,464,98,179457,89,1199,115,16,,,,,5738,56,+++++,+++,10671,82,8671,84,+++++,+++,10397,83,164ms,1974ms,214ms,39690us,15721us,104ms,891us,2857us,3987us,4931us,125us,5187us

Since bonnie output is not always easy to read, I’ve run the last line with bon_csv2html to have prettier results in HTML, also including the results for the NAND flash (bonnie++ -d /) as comparison.

Cubietruck_SSD_NAND_BonnieYou can check the full Bonnie++ results including sequential and random create results.

Sequential Output is write speed, and Sequential Input is write speed. Most of the time, Block speed is the important metric here. So first we see a large difference in performance between NTFS and EXT4 read and write speed on the SSD with respectively 8.7 MB/s and 50.5 MB/s for NTFS versus 36.31 MB.s, and 179.45 MB/s for EXT-4. That means CubieTruck can read data at 180MB/s from the SSD, or about 6 times faster than the typical performance of a USB 2.0 drive, and faster than the USB 3.0 drive connected to my Ubuntu computer (AMD FX8350) which achieves 115 MB/s read speed in the same test on its EXT-4 partition. As a side note, the maximum performance I’ve ever got from another ARM device via USB 3.0 was about 48 MB/s with ODROID-XU3 Lite, but this was in Android, and an NTFS partition, and with another tool (A1SD).

The NAND flash used in CubieTruck is also much slower than the SSD, writing at 6.4 MB/s and reading at 19.46 MB/s, and that’s why if you purchase this kit, you should probably move the rootfs to the SSD.

I’ve also tested raw Ethernet performance with the command line: iperf -t 60 -c 192.168.0.104 -d. Unfortunately Cubieboard Gigabit Ethernet performance (full duplex) is not that good, albeit still faster then Fast Ethernet.

CubieTruck_Gigabit_Ethernet_iPerf

Throughput in Mbps

Battery Life, Monitoring and UPS Function

This kit comes with a 5,300 mAh battery that’s mainly used as a UPS. So I’ve tried to disconnect the power while in used, and the system runs as expected. Once the battery is depleted, and the system off, as soon as the power comes back the system will boot again, so that part is also good in most cases, but not all…

I always wanted to check the battery life, to see how long the board could run on batteries. In my Ubuntu computer, I can run “last” to check the last power on./off event, bit with this firmware, it won’t work, complaining that /var/log/wtmp is missing. So instead I installed uptimed:

sudo apt-get install uptimed

Once I left the battery discharge over night, and after 3 hours, I assumed it was fully charged, and in idle mode, the battery lasted two hours. I had only connected the HDMI cable, an Ethernet cable, and connected to the board with SSH.

We can check the record uptimes with uprecords:

uprecords
     #               Uptime | System                                     Boot up
----------------------------+---------------------------------------------------
     1     0 days, 03:20:26 | Linux 3.4.79              Fri Dec 19 09:59:28 2014
     2     0 days, 02:00:40 | Linux 3.4.79              Fri Dec 19 13:20:32 2014
->   3     0 days, 00:08:11 | Linux 3.4.79              Fri Dec 19 15:31:12 2014

However, afterwards I had a doubt whether I had a full charge or not, so let it run all day, and tested it again, and this time, the battery lasted for over four hours and 20 minutes, meaning the first time, the battery was not fully charged, and it might take many hours to charge the battery:

uprecords
     #               Uptime | System                                     Boot up
----------------------------+---------------------------------------------------
     1     0 days, 07:43:48 | Linux 3.4.79              Fri Dec 19 14:31:12 2014
     2     0 days, 04:26:36 | Linux 3.4.79              Sat Dec 20 11:51:35 2014
     3     0 days, 04:12:17 | Linux 3.4.79              Sat Dec 20 16:20:07 2014

LXDE desktop will not run the system run on batteries (or I missed that), but you can monitor the battery status, health, voltage and more with sysfs:

cat /sys/class/power_supply/battery/health
Good
cat /sys/class/power_supply/battery/status
Discharging
cat /sys/class/power_supply/battery/voltage_now
3729000

So that means your program, or a script, could detect when the battery is charging or discharging, check the health status and/or voltage, and decide to run in lower power mode, and cleanly turn off the system when the voltage drops too low.

More options can be found on power_supply_class.txt kernel documentation.

Installing Debian rootfs to the SSD

Have we’ve seen above the read speed of the SSD is about 9 times faster than the NAND flash, and the write speed nearly 6 times faster, so you should really move the rootfs to the SSD, unless you have specific reasons not to do so. Another advantage will be the increased space for programs.

Let’s check the rootfs usage n the NAND flash first:

cubie@cubietruck:~$ df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 6.9G 2.8G 3.9G 42% /
/dev/root 6.9G 2.8G 3.9G 42% /

So we have a 6.9GB rootfs out of the 8GB flash, with 3.9GB free after I installed a few programs.

The rootfs is located in /dev/nandb partition, and you’ll want to move it to /dev/sda1 (in my case /dev/sda2, but I’ll use sda1 in this section, as it’s what most people will do). I’ll assume here that you have already partitioned and formatted the SSD as specified in the SSD SATA performance section.

First we have to copy the rootfs in the NAND flash to the SSD partition:
sudo mkdir -p /mnt/nandb
sudo mount -t ext4 /dev/nandb /mnt/nandb
sudo mount -t ext4 /dev/sda1 /mnt/sda1
cd /mnt/nandb
sudo cp -a . /mnt/sda1

Then we have to tell the system the root filesystem is located in the SSD, by changing uEnv.txt located in nanda partition of the flash:

sudo mkdir -p /mnt/nanda
sudo mount /dev/nanda /mnt/nanda
cd /mnt/nanda

sudo vi /mnt/nanda/uEnv.txt

Where you’ll need to change:

nand_root=/dev/nandb

by

nand_root=/dev/sda1

Now unmount the partitions, sync, and reboot

umount /mnt/sda1
umount /mnt/nand*
sync
reboot

After login, you can check that the rootfs is now on the SSD with close a 120GB partition (in my case 60G since I have two partitions):

cubie@cubietruck:~$ df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 59G 2.9G 53G 6% /
/dev/root 59G 2.9G 53G 6% /

Using CubieTruck Metal Kit as a Desktop PC

Just like I did with ODROID-XU3 Lite and Ugoos UM3, I’ve tried to use this Linux computer as a desktop computer, and shot a video with:

  1. Boot time from SSD: 42 seconds. Note that the LED on the front panel take about 10 seconds to lit up.
  2. Checking UPS function by disconnecting the power
  3. cubie-config utility for setup
  4. List of installed applications
  5. LibreOffice (Writer)
  6. Chromium – Multi-tabs, YouTube (embedded / full screen; VP9 / H.264/AVC1), and Candy Crush Saga (Flash game) in Facebook
  7. Video Playback with GNOME Player
  8. Power off

CubieTruck (Cubieboard 3) can be used as a desktop computer for Office tasks, but web browsing may become an issue with high CPU usage in Chromium, and watching YouTube video amounts to torture. Video playback (software decode) appears to be relatively OK up to 720P using GNOME player, but 1080p/H.264 video are not watchable. There are now VPU driver for Allwinner A10/A20, but these do not seem to be in use in this image, same for Mali drivers for 2D/3D GPU acceleration.

Phoronix Benchmarks

I’ve also run some of Phoronix Test Suite benchmarks:

sudo apt-get install php5-cli php5-gd php5-gd libpcre3-dev
wget http://phoronix-test-suite.com/releases/repo/pts.debian/files/phoronix-test-suite_5.4.0_all.deb
sudo dpkg -i phoronix-test-suite_5.4.0_all.deb

After configuring batch test, I’ve run MP3 encode, 7-zip compression, and Apache server tests:

phoronix-test-suite batch-benchmark pts/encode-mp3 pts/compress-7zip pts/apache

Contraty to ODROID-XU3 Lite, where compress-7zip failed because of a lack of memory, all three tests could complete successfully. I find Openbenchmarking website very confusing to use, and I did not find a way to compare to old results. So I included CubieTruck NAND, CubieTruck SSD, and ODROID-XU3 Lite in the picture below.

Cubietruck (NAND / SSD) vs ODROID-XU3 Lite (Click to Enlarge)

Cubietruck (NAND / SSD) vs ODROID-XU3 Lite (Click to Enlarge)

You can also click on the pages on OpenBenchmarking for Cubietruck (NAND), CubieTruck (SSD), and ODROID-XU3 Lite (eMMC) for full details.

I was not expecting the SSD to make much difference with the MP3 encoding, and 7-zip compression benchmarks, but I though it would yield a significant increase in performance for the Apache test. I was wrong, as the Apache test only improved from 771.6 requests per second to 785.20 rps, so it must mean this benchmark is not a I/O bound test. As should be expected ODROID-XU3 Lite is much faster for both MP3 encoding (45 seconds vs 165 seconds), and Apache (2382 rps vs 785 rps).

CubieTruck Metal Case kit includes CubieTruck board, a 120GB SSD, a 5,300 mAh battery, a rugged metallic enclosure, a 5V/2.5A power, and relevant cables. It can be purchased for $169 on Seeedstudio, or 149 Euros exc. VAT on EmbeddedComputer.nl.

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

Giada F110D and Asus E210 Fanless mini PCs Feature Intel Bay Trail Celeron N2807 Processor

December 19th, 2014 9 comments

We’ve seen many small computer based on Intel Atom Bay Trail-T (Tablet) Z3735F/G processor lately including MINIX NEO Z64 and MeegoPad T01, which should ship by the end of the month (it keeps getting postponed). But Intel also makes Bay Trail-M (Mobile) processor for laptops, including Celeron N2807 dual core processor found in ECS Liva. Two new products based on N2807 processor has recently surfaced: Giada F110D and Asus E210. According to CPU Boss (see Google cache if link has problem), Z3735F has slightly greater multi-core performance than N2807, but the latter has better single thread performance based on Passmark. One key advantage of the Celeron processors over the Atom ones is that they support up to 4GB RAM instead of 1 or 2 GB for the Bay Trail-T processor. Giada F110D also has one version with a more powerful Intel Bay Trail-D (Desktop) Celeron J1900 quad core processor.

Giada F110D

Giada_F110D

Specifications:

  • SoC – Intel Celeron N2807 (Bay Trail M) dual core processor @ 1.58 GHz (Burst: 2.16 GHz – 4.5W TDP) or Intel Celeron J1900 (Bay Trail D)  quad core processor @ 2.0 GHz (Burst: 2.14 GHz – TDP 10W), both with Intel HD graphics.
  • System Memory – Not included. Supports up to 4GB RAM
  • Storage – Not included. Support 2.5″ SATA drive, or mSATA SSD, and comes with 4-in-1 (SD/MMC/MS/MS PRO) card reader.
  • Video Output – 1x HDMI, 1x VGA
  • Audio – HDMI, and Audio In and Out jacks
  • Connectivity – 2x Gigabit Ethernet. Optional 802.11 b/g/n Wi-Fi, and Bluetooth 4.0 module.
  • USB – 1x USB 3.0 port, 4x USB 2.0 ports
  • Misc – 2x COM ports, IR receiver
  • Power – N/A
  • Dimensions – 190 x 149 x 26 mm
It will run Windows 7/8.1, and Linux operating systems, pricing and availability have not been announced.

Asus E210

Asus_E210

Specifications:

  • SoC – Intel Celeron N2807 (Bay Trail M) dual core processor @ 1.58 GHz (Burst: 2.16 GHz) – 4.5W TDP
  • System Memory – 2GB to 4GB RAM via 1x SO-DIMM
  • Storage – Up to 128GB SSD, 4-in-1 card reader
  • Video Output – 1x HDMI, 1x VGA
  • Audio – HDMI, and headphone and microphone jacks
  • Connectivity – 1x Gigabit Ethernet, 802.11 b/g/n Wi-Fi with external antenna
  • USB – 1x USB 3.0 port, 3x USB 2.0 ports
  • Misc – 1x COM ports, 1x Kesington Lock
  • Power Consumption – 6.36W (idle)
  • Dimensions – 219 x 172.5 x 29 mm
  • Weight – 690 grams

Asus mini PC is sold with a keyboard, mouse, an AC adapter with a power cord, a warranty card, a quick manual, and a VESA mount kit. It will ship with Windows Embedded 8 Standard, Windows Embedded Standard 7, or DOS (FreeDOS?). The latter is probably to let you install your preferred operating systems by yourself. Price and availability are unknown at this tage.More details can be found on Asus E210 product page.

Based on the specs both Giada and Asus models are probably targetting business users first, but there’s no reason why you would not able to use these for private use. Ubuntu is running on ECS Liva, albeit with some caveats, so it should also run on these two models. but possibly without Wi-Fi support. Having said that, Giada claims Linux support so they must have the right drivers…

Via NoteBook Italia, Liliputing, and Fanless Tech

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

Linaro 14.12 Release with Linux 3.18 and Android 5.0

December 19th, 2014 No comments

Linaro usually releases images and source code on the last Thursday of the month, but since most people will have long holidays for Chritsmas and New Year, the last working Thrusday of this month was yesterday (18th). Linaro 14.12 release includes Linux kernel 3.18 (baseline), Linux 3.10.62 & 3.14.26 (LSK, same versions as last month), and Android 5.0.1 Lollipop.

Here are the highlights of this release:

  • Linux Linaro 3.18-2014.12
    • Based on v3.18 release
    • GATOR topic: version 5.20
    • updated topic from Qualcomm LT (includes IFC6410 board support)
    • updated integration-linaro-vexpress64 topic by ARM LT (FVP Base and Foundation models, and Juno support)
    • updated LLVM topic (uses the community llvmlinux-latest branch)
    • included ILP32 patch set v3  rebased on 3.18. Boot tested with aarch64 userland. Work is in progress to test with aarch64-ilp32 userland.
    • config fragments updated – SELinux related config options enabled in linaro-base.conf, device tree runtime self tests enabled in distribution.conf
  • Linaro builds of AOSP 14.12
    • built with AOSP toolchain
    • All the Android builds have been updated to 5.0.1
    • Audio on Versatile Express TC2 is fixed (Android 5.0.1)
    • DNS issue fixed on Juno, FVP models and Versatile Express TC2 (Android 5.0.1)
    • daily CI updated to include benchmarks for Versatile Express TC2 and Juno
  • Linaro OpenEmbedded 2014.12
    • integrated Linaro GCC 4.9-2014.11 and Linaro binutils 2.24-2014.11
    • switched from eglibc to Linaro glibc 2.20-2014.11
    • improved external toolchain support
    • improved ACPI tooling
    • added python-numpy to images for LAVA tests
    • upstreaming:
  • Linaro Ubuntu 14.12 – updated packages: juno-pre-boot, LSK 3.10.62/3.14.26 and linux-linaro 3.18 kernels
  • CI loop for testing the pre-built Linaro toolchain using the OpenEmbedded external toolchain support has been reactivated
  • ARMv8 Ubuntu engineering build for Enterprise is available
  • CI bring up: HiSilicon Hi3716cv200
  • CI bring up: EAS (Energy Aware Scheduling) development – integration branch testing
  • Publish OpenSDK images on snapshots.linaro.org
  • Ship board recovery image into hwpack for Juno

You can visit https://wiki.linaro.org/Cycles/1412/Release for a list of known issues, and further release details about the LEB, LMB (Linaro Member Builds), and community builds, as well as Android, Kernel, Graphics, Multimedia, Landing Team, Platform, Power management and Toolchain components.

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

OpenELEC For Amlogic Media Players – MXIII, Tronsmart Vega S89, TV110 and CX-S806 (S812)

December 18th, 2014 23 comments

XBMC / Kodi is now working pretty well on Android devices, and even automatic frame rate switching is available on some Android platforms such as MINIX NEO X6. But if you want a pure XBMC experience, you may consider XBMC/Kodi Linux distributions such as OpenELEC also providing support for some USB DVB tuner dongles and PVR function, both of which are currently unavailable in Kodi for Android. We’ve also seen OpenELEC released for M8 TV Box, but  Kerber, a Russian developer (or at least a Russian speaking developer) has also released OpenELEC 4.97.x for MXIII (Amlogic S802), Tronsmart Vega S89 (Amlogic S802), TV110 (Amlogic S805) , and CX-S806 (Amlogic S812) media players.

CX-S806_OpenELECThe forum post is dated on August 2014, but it has been updated on December 12 with more up-to-date images:

Download is a little slow, so I haven’t checked the content of the zipped firmware, but if it is the same as OpenELEC for M8, these should be “OTA update” files where you just need to copy to an SD card or a USB flash drive, and enter recovery mode to complete the update.

Rough instructions to enable PVR in OpenELEC:

  1. Select and enable one of two backends from OpenELEC repository:  VDR or tvheadend
  2. Configure VDR with pvr frontend VNSI add-on, or tvheadend with TVH / HTS client
  3. If you use tvheadend backend, you’ll get a Web based user interface @ ip_address:9981

Let us know if you try these, and your feedback in the comments section.

Thank to Ovidiu for the information.

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

Giayee Atom PC is a Rockchip RK3288 Mini PC with a VGA Port, Multiple Placement Options (Crowdfunding)

December 17th, 2014 7 comments

You may know that Rockchip and Intel have a partnership to design Atom Sofia processors, but Giayee Atom PC has nothing to do with this initiative at all, and it’s just a pretty standard Rocchip RK3288 based mini PC, except it includes a VGA port, and various “placement” options namely horizontal position, vertical position, and TV/monitor mount.

Giayee_Atom_PCAtom PC specifications:

  • SoC – Rockchip RK3288 Quad Core Cortex A17 up to 1.8GHz with ARM Mali-T764 GPU supporting OpenGL ES1.1/2.0/3.0, Open VG1.1, OpenCL, DirectX11
  • System Memory – 2GB DDR3
  • Storage – 8 GB NAND flash (16 to 32 GB optional)
  • Video Output- HDMI up to 1080p (no 4K?), and VGA up to 1920×1080 @  60 Hz
  • Audio Output / Input – HDMI, 3.5 mm jacks for Audio In and Out
  • Connectivity – 10/100M Ethernet, 802.11 b/g/n Wi-Fi. Options: Dual band Wi-Fi, GPS, NFC, and Bluetooth
  • USB – 4x USB Host ports, 1x micro USB host port
  • Other Optional Functions – Camera, LCD, 3G, UART, LVDS, MIPI…
  • Misc – Power button
  • Power Supply – 5V/2A
  • Power Consumption – > 7 Watts

Atom_PC_BoardThe specifications are rather underwhelming, and it’s probably only interesting if you need VGA output, and/or microphone input, and TV / monitor mount (is that VESA mount?, not sure…) combined with the power for RK3288 processors. Optional features such as GPS, NFC, MIPI could make it interesting, and it looks like an RTC battery slot might even be available, but none of these are available in perks listed in the crowdfunding campaign. Some of the specifications are probably wrong, as I hope they us an eMMC flash, instead of a slower NAND flash in their system, and HDMI should support up to 4K30. Android 4.2.2 and Ubuntu 12.04.5 operating are said to be supported. I can’t even remember ever seeing Android 4.2 running in any RK3288 device, so most probably they’ll provide Android 4.4 (and maybe Android 5.0) together with Ubuntu 14.04 or greater.

Atom_PC_Mounting_OptionsThe company has launched the project on Indiegogo, and expects to raised a lowly $10,000, but if they’ve spent as many efforts and attention to detail on product development as they’ve spent on their campaign page, it does not inspire confidence. Pricing is not exactly aggressive either, as the early bird pledge starts at $119 with a 5V/3A power adapter, a base for vertical orientation, and including shipping by DHL to anywhere in the world, with delivery scheduled for March 2015.

You can check the Android and Ubuntu demo below.

Thanks to Nanik for the tip.

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

U-Boot and Linux Source Code for ODROID-C1 Board Has Been Released

December 16th, 2014 7 comments

Hardkernel ODROID-C1 board, a more powerful $35 alternative to the Raspberry Pi, garnered a lot of attention when it was announced last week. At the time source code was not available, but as scheduled, U-boot and Linux source code is now available, and the full Android SDL should be released on February 2015. Instructions to get the code, and build both Linux and U-boot are available on ODROID-C1 Wiki, and I’ve just given a try to Linux instructions myself to see if I would encounter any issues in Ubuntu 14.04.

ODROID-C1-Linux

  1. Download Linaro GCC 4.7 toolchain from Linaro or Odroid website.
  2. Install the toolchain. They install it on /opt/toolchain, but instead I’ve installed in ~/opt/toochain, so I don’t need superuser permissions:

    mkdir -p ~/opt/toolchains
    tar xvf gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux.tar.bz2 -C ~/opt/toolchains/

  3. Add the following lines to ~/.bashrc

    export ARCH=arm
    export CROSS_COMPILE=arm-linux-gnueabihf-
    export PATH=~/opt/toolchains/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin:$PATH

  4. To apply change, log out and log in, or run:
    source ~/.bashrc
  5. Double check Linaro GCC 4.7 is installed properly:

    arm-linux-gnueabihf-gcc -v
    Using built-in specs.
    COLLECT_GCC=arm-linux-gnueabihf-gcc
    COLLECT_LTO_WRAPPER=/home/jaufranc/opt/toolchains/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/../libexec/gcc/arm-linux-gnueabihf/4.7.3/lto-wrapper
    Target: arm-linux-gnueabihf
    Configured with: /cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/src/gcc-linaro-4.7-2013.04/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-linux-gnueabihf --prefix=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/install --with-sysroot=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/install/arm-linux-gnueabihf/libc --enable-languages=c,c++,fortran --enable-multilib --with-arch=armv7-a --with-tune=cortex-a9 --with-fpu=vfpv3-d16 --with-float=hard --with-pkgversion='crosstool-NG linaro-1.13.1-4.7-2013.04-20130415 - Linaro GCC 2013.04' --with-bugurl=https://bugs.launchpad.net/gcc-linaro --enable-__cxa_atexit --enable-libmudflap --enable-libgomp --enable-libssp --with-gmp=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-mpfr=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-mpc=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-ppl=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-cloog=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-libelf=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static --with-host-libstdcxx='-L/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/.build/arm-linux-gnueabihf/build/static/lib -lpwl' --enable-threads=posix --disable-libstdcxx-pch --enable-linker-build-id --enable-gold --with-local-prefix=/cbuild/slaves/oorts/crosstool-ng/builds/arm-linux-gnueabihf-linux/install/arm-linux-gnueabihf/libc --enable-c99 --enable-long-long --with-mode=thumb
    Thread model: posix
    gcc version 4.7.3 20130328 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.04-20130415 - Linaro GCC 2013.04)

  6. Both Linux and Android Linux are available, and depending on which kernel should want to get checkout the code from the right branch:
    git clone https://github.com/hardkernel/linux.git -b odroidc-3.10.y-android

    or

    git clone https://github.com/hardkernel/linux.git -b odroidc-3.10.y
  7. I selected the Linux branch. Time to configure the build for ODROID-C1:
    cd linux
    make odroidc_defconfig
  8. Install u-boot-tools for mkimage, and build the kernel image
    sudo apt-get install u-boot-tools
    make uImage -j8
  9. And the device tree file for ODROID-C1:
    make meson8b_odroidc.dtd
    make meson8b_odroidc.dtb
  10. I’ve stopped there, but if you have a board you’ll want to copy / flash the files arch/arm/boot/uImage and arch/arm/boot/dts/amlogic/meson8b_odroidc.dtb to a bootable eMMC or SD card
    • For Linux – Copy uImage and meson8b_odroidc.dtb to the FAT32 partition of your boot device, replacing the existing files
    • For Android – Use fast boot as follows:
      sudo apt-get install android-tools-fastboot 
      sudo fastboot flash boot <path/of/your/uImage>
      sudo fastboot flash dtb <path/of/your/meson8b_odroidc.dtb>
  11. Have fun :)

This source code release for ODROID-C1 should also open the way for Linux Kernel ports, and Ubuntu / Debian or other Linux distributions for other Amlogic S805 devices such as MK808B Plus, MXQ S85, or MINIX NEO X6.

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

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

December 14th, 2014 15 comments

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:

wget http://odroid.in/ubuntu_14.04lts/ubuntu-14.04.1lts-lubuntu-odroid-xu3-20141105.img.xz
sudo apt-get install xz pv
xz -d ubuntu-14.04.1lts-lubuntu-odroid-xu3-20141105.img.xz
dd if=ubuntu-14.04.1lts-lubuntu-odroid-xu3-20141105.img | pv | sudo dd of=/dev/sdX

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.

ODROID-XU3_Lite_Boot_Switch

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

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/mmcblk0p2  4.9G  4.4G  310M  94% /

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:

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/mmcblk0p2   15G  4.4G  9.4G  32% /

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:

sudo apt-get install libreoffice nautilus

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:

root@odroid:~# dmesg | grep BIN                                                 
[    0.355271] [c6] CPU Info : Samsung Exynos5422 Soc is BIN2

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 throrough.

sudo apt-get install php5-cli php5-gd php5-gd
wget http://phoronix-test-suite.com/releases/repo/pts.debian/files/phoronix-test-suite_5.4.0_all.deb
sudo dpkg -i phoronix-test-suite_5.4.0_all.deb

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:

phoronix-test-suite batch-benchmark pts/encode-mp3 pts/compress-7zip pts/apache pts/iozone

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:

[c4] Out of memory: Kill process 9593 d
[16693.088181] [c4] Killed process 9593 (7za) total-vm:1844536kB, anon-rss:1509B

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.

sudo apt-get install libncurses5-dev gcc make git exuberant-ctags
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
cd linux-stable
git checkout -b stable v3.18

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:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9

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.

root@odroid:~/linux-stable# ls -l  arch/arm/boot/dts | grep odr                 
-rw-r--r-- 1 root root   8334 Dec 14 14:11 exynos4412-odroid-common.dtsi        
-rw-r--r-- 1 root root   1310 Dec 14 14:11 exynos4412-odroidu3.dts              
-rw-r--r-- 1 root root    829 Dec 14 14:11 exynos4412-odroidx2.dts              
-rw-r--r-- 1 root root   1691 Dec 14 14:11 exynos4412-odroidx.dts

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

make exynos_defconfig
time make -j8 CC=gcc-4.9
...
real    5m43.746s
user    31m25.235s
sys     4m11.130s

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.

sudo apt-get install libav-tools
time avconv -i big_buck_bunny_1080p_MPEG2_MP2_25fps_6600K.MPG \
-vcodec libx264 -minrate 300k -maxrate 300k -bufsize 1835k bbb-h.264.avi
avconv version 9.16-6:9.16-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav s
built on Aug 10 2014 18:32:09 with gcc 4.8 (Ubuntu/Linaro 4.8.2-19ubuntu1)
Guessed Channel Layout for  Input Stream #0.1 : stereo
Input #0, mpeg, from 'big_buck_bunny_1080p_MPEG2_MP2_25fps_6600K.MPG':
Duration: 00:00:44.74, start: 0.240000, bitrate: 7159 kb/s
Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 1920x1080 [PAR 1:1 Dc
Stream #0.1[0x1c0]: Audio: mp2, 44100 Hz, stereo, s16p, 160 kb/s
[libx264 @ 0x6c9c0] using SAR=1/1
[libx264 @ 0x6c9c0] MB rate (734400000) > level limit (2073600)
[libx264 @ 0x6c9c0] using cpu capabilities: ARMv6 NEON
[libx264 @ 0x6c9c0] profile High, level 5.2
Output #0, avi, to 'bbb-h.264.avi':
Metadata:
ISFT            : Lavf54.20.4
Stream #0.0: Video: libx264, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], q=-1--1c
Stream #0.1: Audio: libmp3lame, 44100 Hz, stereo, s16p
Stream mapping:
Stream #0:0 -> #0:0 (mpeg2video -> libx264)
Stream #0:1 -> #0:1 (mp2 -> libmp3lame)
Press ctrl-c to stop encoding
frame= 1035 fps= 8 q=55.0 size= 30701kB time=40.52 bitrate=6206.7kbits/s

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.

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