Agreed. We spent 6 figures putting Linux 2.6 on top of our Medallion Linux (the oldest ARM-exclusive Linux distribution, and/or oldest ARM-Linux that hasn't been acquired by a HW company) for Freescale's i.MX28 processor. (this was years ago)
We don't play in the consumer space. The MX28 has adequate performance for 2D graphics on a WVGA 7" touch screen. (we've run XGA monitors from the MX28 as well, @ 1024x768, but it gets slower). We added dual Ethernet ports, serial support, USB messaging to a Cortex M3 running FreeRTOS for real-time control, but kept the base code "standard Linux" as much as possible.
So, we have a hybrid OS that's pure Linux at the bottom and Android for the GUIs. Adding serial support to Android was a pain (you may have noticed that cell phones do not have serial ports) but so were many other things, even stuff that should be simple like getting access to the USB Host ports from the application layer (USBs are locked down inside Android).
But it all worked. Oh, we're booting from a 128 Meg NAND and running from 128 Megs of DDR2. That's for the Linux/Android OS, customer's APPs, GUI support files, and data files.
Its amazing how small you can make Android when you cut out all the unnecessary fluff not needed for embedded controls. :)
Something got lost in translation, but I can clarify.
What Rafael meant to say is that he's running Android atop a more traditional, "embedded" Linux kernel and runtime environment rather than the Android ones.
The kernel itself is 99% the same, but the runtime environment is much different because Android's init system is highly optimized for Android, and isn't useful for much else. That's not a slight on Android---it's tuned for cell phones and the like, which don't look like generalized embedded systems at all. They were solving a different problem.
The above isn't quite as simple as it sounds: it's tedious to run two OSes alongside each other, but Android made it easier than it could have been. I should know, I teach people how to do it at EELive and elsewhere. ;-)
January 2016 Cartoon Caption ContestBob's punishment for missing his deadline was to be tied to his chair tantalizingly close to a disconnected cable, with one hand superglued to his desk and another to his chin, while the pages from his wall calendar were slowly torn away.122 comments