Advantages: Porting Android/Embedded Linux for Fleet Management, Telematics, Infotainment Applications
Porting of open-source Linux and Android, (instead of porting a proprietary operating systems) 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 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:
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: 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 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 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
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 architectures(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.
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 EmbitelSuhas Tanawade, Senior Delivery and Account Manger, IoT
Customer Success Stories
Linux OS Porting for Fleet Management Solution Provider
- Business Challenge:
- Our customer, a global leader in fleet management solutions with headquarters in Belgium, had one of their successful commercial telematics products designed on Windows CE OS.
- But Windows being a proprietary OS meant that our customer had to pay high costs every time the Windows OS had to be installed or updated.
- So, they wanted to switch to a more robust and open source platform such as Linux, which is available for zero license cost, is more flexible.
- Embitel Solution:
- 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).
Android Porting on Toradex SoM for a Smart Electric Scooter
- Business Challenge:
- Our customer, a prominent electric vehicle startup, has embarked on the journey of 'Make in India’. This company of young entrepreneurs is designing Smart Electric Scooters, from the ground up, in India.
- Their flagship electric scooter ‘s in-built infotainment platform was developed on a Toradex SOM and was running on the Linux 3.14.28, initially.
- But owing to the growing popularity of Android as a dominant OS that caters to a wide array of Android Apps, the customer wanted to perform porting of Android 6.0 (Marshmallow) onto their Toradex SOM with carrier card.
- Here the challenge was that the Toradex module does not inherently offer support for Android OS porting.
- Embitel Solution:
- 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
Video Explaining How to DRIFT your Android OS Porting Projects!
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 a open-source, commercial, and automated test suite, provided by Google. This test suite for Android applications is an automated “mechanism” to test compatibility (testing the compatibility of a particular Android application during the development process).
- Android CTS consists of number of test cases, that can be used to evaluate the software and hardware components of your Android device. Android CTS helps in detecting any Android incompatibilities at the development phase itself.