It was not that long ago that embedded development meant working on an x86 PC with loads of memory and power hungry CPUs then running a cross-compiler to get code compiled for the target embedded architecture e.g. ARM. Those days of having to cross-compile from x86 to ARM are rapidly coming to an end with the advent of modern day computing platform running the most advanced ARM CPUs.
A great example of this migration can be observed with the latest Odroid-XU platform from Hardkernel which takes the latest Samsung Exynos 5410 SoC, used in International variants of the Samsung Galaxy S4, for example, and puts that into a very small, non-mobile, form factor adding critical interfaces required for a desktop class machine such as HDMI-Out, MicroSD, Ethernet, and of course several USB ports. The device comes with 2GB of RAM and you can purchase your own eMMC onboard storage anywhere from 8GB up to 64GB, not including any amount of additional storage you add through the MicroSD. Not bad for a device which base price is under $200!
Hardkernel offers both Ubuntu and Android as choice for operating systems. However choosing Ubuntu gives you a real “PC desktop” with a full KDE window environment with the ability to install your favorite open source browser such as FireFox or Chromium, Office Suites like LibreOffice, and Evolution for email giving you access to Microsoft Exchange. Of course apps don’t stop there as there is a whole host of software available to download through the Ubuntu Software Center – available with a click of the icon.
Performance inside of Ubuntu is extremely snappy with the login screen loading in few seconds and the desktop appearing almost instantaneously after login.
Coming back to the original point of using this as a desktop/workstation device, one of the best capabilities which you get with Ubuntu on the Odroid-XU is the inclusion of the GNU compiler. This means that one is able to compile from source right on the device.
As an example of how we put this device to use. ARM has worked with Cablelabs who has been developing a reference implementation for DLNA CVP2 utilizing QT Webkit and Gstreamer for the mediapipeline and were able to use the standard GNU compiler on the platform to build an image. Although Cablelabs did most of their development on a PC platform, we were able to take their code and compile this straight onto the Odroid without needing to setup a cross-compile environment. The amazing thing is that because of this ease of development to code, build, and test all on the same platform, this drastically reduces the time to go from prototype to development.
Odroid-XU DLNA CVP2 reference implementation paves the way of ARM partner ecosystem to jump start on providing low power and cost optimized and feature rich IP-STB (Set top Box) solutions to the market using the lastet mobile SoCs.
Starting with RUI-HTML5 (Remote User Interface) empowers service providers to install one UI for all devices. It allows IP-STB OEMs and SOC vendors to reduce R&D costs by extending one software stack across various Cable, Satellite, and Telcos. 3rd party providers like Myriad provide all the underlying RUI-HTML5 blocks on both Ubuntu and Android to enable Operators to customize UI on top of their engine. With the advent of DLNA CVP2 and W3C EME, the days of having to integrate propreitary middlewares for IP STBs are soon coming to an end. This spells good news for operators who can now choose from a diverse portfolio of ARM SoCs ranging from high volume, low cost mobile/tablet SoCs leverging the latest WiFi technology for network to traditional pay-TV centric SoCs integrating PHY interfaces such as MoCA.
Secure Video playback, DRM and content protection are key requirements for operators to ensure that they can deliver premium content on the device. Existing reference implementation makes use of Software DRM (“PlayReady”) and software Video decoder capable of decoding 720p H264 HP stream without taking advantage of Video hardware acceleration. A future area of further development is to take advantage of Trustzone and enable TEE (Trusted Execution environment) to enable secure video path, and take advantage of Hardware Video engine. There are multiple Security IP and system providers like InsideSecure, Elliptic who play a pivotal role along with SOC vendor in ensuring that they can build a secure solution.
Finally an area of future development and exciting opportunity is to have an Android version of the stack for IP-STB market. This enables the Android Phone/Tablet SOCs/OEMs to take advantage of Android BSPs for IP-STBs and reducing time to market and R&D costs, and also enables Android developers to target exciting and innovative Apps for IP-STB .
Developing on the board itself is basically how Linux started. It would be nice to see that become more common especially for an enthusiast community without a separate computer. So how good would Odroid be for doing that without extra hardware? For instance could one load a new kernel and then go back to the development system without having to keep on plugging in or taking out SD cards? Would it be straightforward to put a small routine into printk to output directly to a text screen without wait loops and possibly switch between it and the normal screen or put it in a window directly? Would one be able to do hot restarts if things go quiet so as to take a dump? In fact how much of the graphics drivers or anything else would be binary rather than source and how much could one do without them? Lots of questions but like the idea.