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 .
Very nice article! But I would add a slight quibble. Only a slight one. I wouldn't call myself an "old timer", but I do thank people when they call me old school, and the look on their face is priceless. I can remember the "Good Old Days", computers based on 6809s, 68000s and other fun things. Back then, people were beginning to look at "Wintel" machines, and that seemed to be gaining ground. My friends had either 386 machines, a few even had the amazingly advanced 486 devices, up to a whopping 33MHz on the 486SX33. That was the time that I finally got my hands on the machine I wanted, an Acorn Archimedes A5000. My weekends were never the same afterwards "Look, you are fiddling with DOS to squeeze 10Kb of memory out of the machine to be able to play Doom, and then use DOS... Look! I'm using RISC OS! And it rocks!". Well, we know the end of that story; I'm writing this from an i7, but not on Windows, I'm a Linux user. We have arrived at a time where the CPU itself isn't actually a major factor, but more a choice. I decided to use an i7, and all my applications run well. Most of what I use is open source, and my distribution is already compiled for ARMv7. I just want someone to make an ARM-based computer, again, like I had in the old days. My A5000 tore through anything I could throw at it. I really, really want that day and age to come back. I want my Cortex-A57 based computer and laptop, or any of the awesome top-secret soon-to-be-revealed designs that ARM are busy working on. You know what I mean.
We'll start with IoT, and see how it goes. As already stated, this can boot up Ubuntu without a problem, I hope it is just a matter of time before we get bigger and bigger machines. Some might call this the ARM desktop era, I call it a welcome return to ARM desktops. In either case, great article, thanks!