Advantages: Porting Android/Embedded Linux for Fleet Management, Telematics, Infotainment Applications
Porting of open-source Linux and Android instead of porting a proprietary operating system for Connected Car, Telematics, Head-Up Display applications, offer several advantages.
Following are some of the advantages:
- Apache v2.0 licensed. This means these are open-source software and hence, one ends up saving licensing costs.
- 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 customizations.
Before kick-starting your Android or Linux porting projects, these are some of the best practices your embedded software development partner should take care of:
Selecting a Robust Hardware Platform
While selecting a SoC or SoM/SBC, one should consider:
- Business Requirements of the application
- Power consumption specifications
- BoM cost, Life-time of Chipset and support
- Memory and Speed capabilities of the processor
Bootloader, Device Drivers & Kernel
- Design a two-stage bootloader – primary and secondary bootloader
- Bootloader design should have low memory footprint
- Develop robust, bug-free and maintainable drivers as per Linux/Android coding standards
- Plan and implement efficient faults-handling, reporting and recovery from errors
- Device drivers should not contain any dead code or unused variable
- Optimise usage of memory space after code compilation
Android/Linux OS Porting Services We Offer: Kernel Programming, Device Driver & BSP Development
- End-to-end support for:
- Bootloader development
- Android/Linux Device driver development
- Android/Linux Kernel development
- Root-file system integrations for successful 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 BSP customization for successful Android Porting to custom hardware platform and upgradation to latest Android OS versions
- Support for Android CTS (Compatibility Test Suite) and Application development as per CTS compliance
- Customization of wireless Bluetooth Stacks like Bluez / Bluedroid
- Linux porting expertise:
- Support for Linux BSP porting to custom hardware platform and upgradation to latest Linux OS versions
- Expertise in the YOCTO Project – a Build Framework for Embedded Linux Systems
- 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
Customer Success Stories
Creating Linux Distribution Image with Yocto Project:
What is Yocto Project?
The Yocto Project (YP)
- An open source collaboration project, under the aegis of the Linux Foundation
- Enables creation of custom Linux distributions for embedded & IoT applications, which are architecture-agnostic
- The Yocto Project works on any embedded architecture (PowerPC, ARM, MIPS, x86, x86-64, etc.)
- Provides built-in toolchains, software stacks, board support for multiple architectures, 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.
Android Porting Videos
Meet Our IoT Leaders
With 19+years of experience in Embedded Systems Engineering, Emmanuel is our veteran Solution Architect. He plays a key role in translating the customer’s Product Vision into a cutting-edge solution.
Known for his humility and team spirit, Emmanuel has mastered the art of establishing and maintaining solid communication channels (across stakeholders) in order to achieve team goals.Emmanuel P John, Solution Architect – IoT
Suhas has over 25 years of experience in Embedded Engineering & Software Development. He is well-known, among his peers and customers, for his ability to ensure timely delivery of IoT projects. He has been instrumental in the successful completion of some very challenging and large scale IoT projects at Embitel.Suhas Tanawade, Senior Delivery and Account Manager, IoT
FAQs on Android/Linux Porting Services
Ans. 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.
Having two-stage Bootloader software offers you the following benefits:
- 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.
- 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.
- 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
Ans. 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|
What is Android CTS?
- Android CTS (Compatibility Test Suite) is an open-source, commercial, and automated test suite, provided by Google. This test suite for Android applications is an automated “mechanism” to test compatibility of a particular Android application during the development process.
- Android CTS consists of a number of test cases, that can be used to evaluate the software and hardware components of an Android device. Android CTS helps in detecting all Android incompatibilities during the development phase itself.
What is Android Automotive?
- Android Automotive is an Android-OS based platform that executes pre-installed In-Vehicle Infotainment System applications. Android Automotive provides an open-source codebase for automotive infotainment that is completely free of cost. It can be directly installed on the in-vehicle hardware. Automotive software engineers can also customize and implement new features on the platform to develop unique products.
- One of the many advantages of using Android Automotive for Infotainment system development is the fact that software engineers have access to a huge repository of reusable software created by Android developers worldwide. Development expertise and guidance is also available easily.