Android And Linux Porting Services For Embedded Systems
Porting of Android or Linux in Embedded Product: Advantages and Best Practices
Porting of open-source Linux and Android for embedded product development, instead of porting a proprietary operating systems offer several advantages.
Following are some of the advantages:
- Android and Linux OS is GPLv2.0 licensed. This means these are open-source software and hence one ends-up saving licensing cost
- Support and maintenance services for proprietary OS, device drivers and kernels may not be available free of cost.
- Porting Android or Linux operating systems provides flexibility to the project. Your developers can integrate customized and open-source software packages and components.
- Linux or Android porting, more often than not, results in reduced time-to-market. This is due to the availability of open-source software packages that may need minimum customisations
Before kick-starting your Android or Linux porting projects following are some of the best practices your embedded software development partner should take care of:
Android/Linux Software Porting Services for Embedded Solution Development
- End-to-end development and support for Bootloader, device driver, kernel development and root-file system integrations for Android or Linux porting.
- Expertise in customization and optimization of device drivers for bootloader and kernel
- Testing services: Expertise in open-source and proprietary tools for functional testing and sanity testing of each module. Expertise in writing customized test frameworks.
- System Profiling: Performance testing and optimization, memory optimization using static analysis of memory usage (trace-cmd, memInfo, TOP, nice, perf , valgrind, omapconf (TI Specific) and other benchmarking tools). Boot-time optimization for Android and Linux Operating Systems,
- Firmware and Software Update: development and support for Firmware Over the Air (FOTA) and/or Over the Air (OTA) updates for micro-controllers and Android/Linux OS respectively.
- Android porting expertise:
- Support for Android BSP porting to custom hardware platform and up-gradation to latest Android OS versions
- Support for Android CTS (Compatibility Test Suite) and Application development as per the CTS compliance.
- Customization of wireless Bluetooth Stacks like Bluez / Bluedroid
- Linux porting expertise:
- Support for Linux BSP porting to custom hardware platform and up-gradation to latest Linux OS versions
- Expertise in YOCTO buildroot framework.
- Customization, development and integration with new software stacks like OBD-II
- Expertise in Jenkins, CI and CB.
- Integration of Flash memories Like NAND and NOR
Meet Our IoT Leaders
IoT in Action: Customer Success Stories
Linux OS Porting for Fleet Management Solution Provider
- Business Challenge:
- Establish and Customize YOCTO Build System for different versions of hardware platform.
- Customizing u-boot, kernel and rootfs.
- Integration Of Open Source Drivers, 3rd party drivers and Vendor Provided device drivers.
- Implementing power management.
- Develop Hardware Abstraction Layer ( HAL)for modules GPS, GSM etc.
- Develop Validation Test Framework.
- Design and develop Firmware Over-The-Air (FOTA).
Porting of Android OS on Toradex SoM for a Smart Electric Scooter
- Business Challenge:
- Setting up the Build Environment
- Porting of Android 6.0 (Marshmallow) onto Toradex SOM which was running Linux 3.14
- Integration of Android with the required hardware and software modules
- User acceptance testing
FAQs on Android/Linux Porting Services
Q. Why do you recommended to design a two-stage Bootloader solution for Android/Linux porting projects?
- A. One-stage Bootloader, inherently by design becomes a very large single software package. It requires more memory space (this increases cost) and becomes difficult to manage and maintain. Thus, a multi-stage bootloader appears as a practical choice for dynamic embedded applications that involve managing multiple functionalities and operations.
- Managing System Start-up Applications: Some necessary start-up programs (that can’t be delayed until the entire OS is loaded) like display of OEM brand logo or branding animation, switching on the camera vision and more can be best managed using two-stage Bootloader software.
- Re-programming or Flashing of target devices: A two-stage Bootloader design facilitates more efficient flashing of field-deployed IoT devices. Your in-house or technology partner’s support team just needs to make necessary configurations in the 1-stage. Based on the instructions, Bootloader will then execute the new firmware image.
- Cost Optimization: Generally the 2nd stage of the Bootloader is designed using low cost memories like EPROM, EMMC, NOR flash memory, or SD cards. These memory types can also be reprogrammed more easily. This offers the flexibility to add more functions or features to your applications in the future, at lower costs.
- Error Recovery: In case of an error or exception, a multi-stage bootloader supports easy recovery of the system, as compared to a single stage bootloader. In multi-stage bootloader, the primary bootloader is booted into internal ROM & RAM. Meanwhile, a two-stage Bootloader can be loaded from any of the external memory medium. Thus, any failure occurring while booting a 2-stage loader from one external memory can be recovered by booting from another external memory medium.
Having two-stage Bootloader software offers you the following benefits:
Q. Can you share details regarding the various hardware platforms, for which you support OS porting and BSP customization?
- A. Electric Vehicles: Partnered for custom-development of BSP based on i.MX processors and Android/Linux Porting. This was part of our projects to develop industry grade infotainment, HUD solutions & industrial gateways.
- Experience in OS Porting and BSP development for Texas Instruments processors like Omap, Jacinto etc.
Q. Please share details regarding your experience with various production-grade hardware platforms for successful Porting of Android or Linux OS.
- A. Infotainment systems: We partnered with India’ s leading electric scooter startup for the Porting of Android OS 6.0 (Marshmallow) on Toradex SoM for their Infotainment application
Embitel solution involved:
- Setting up the Build Environment.
- Porting the Bootloader, kernel, Android file system, flashing mechanism to the Toradex platform.
- Integration of Android OS with the Toradex based modules: GSM(Ublox SARA-U270-00S) , GPS(Ublox EVA-M8M) , LSM9DS1 IMU module, LVDS, TI CC2564 based Bluetooth.
- Telematics system: We partnered with a Europe based provider of Telematics & Fleet Management Solution for Linux OS Porting.
Embitel solution involved:
- Customization of YOCTO Build System and u-boot, kernel and rootfile systems
- Integration Of various device drivers (Vendor Provided, 3rd party drivers, Open Source )
- Customization of Linux drivers
- Development of HAL for GPS, GSM modules
- Design and develop Firmware Over-The-Air( FOTA), Validation Test Framework
Q. What technology frameworks and tools (for Android/Linux Porting), does your team has hands-on experience with?
- A. The following the required details for both Android and Linux OS porting:
|Build Root Framework||Yocto||—|
|Testing & Validation||Custom Test Framework for Linux||Google CTS (Compatibility Test Suite ) Verifier|
Creating Linux Distribution Image with Yocto:
What is YOCTO?
The Yocto Project (YP) is an open source collaboration project, under the aegis of the Linux Foundation . It simplifies the process of custom building Linux distributions for embedded and IoT applications , independent of the underlying hardware architecture. The Yocto Project provides built-in toolchains, software stacks, board support for multiple architectures like ARM, MIPS, PPC, x86, x86-64 & more, configurations, emulation environment etc.
What are the steps involved in custom development of an embedded Linux Image, using the Yocto Project?
Learn about the workflow for creating a custom build embedded Linux image using the Yocto Project in this PDF.