Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save danascape/65d683d265d0f9fcb694e16f0da53ed5 to your computer and use it in GitHub Desktop.
Save danascape/65d683d265d0f9fcb694e16f0da53ed5 to your computer and use it in GitHub Desktop.

The Linux Foundation GSoC 2025 Proposal

Contact Information

  1. Project : Automotive Grade Linux (AGL)
  2. Idea : meta-ros integration (Robotic framework)
  3. Project Size : 350 hours
  4. Candidate Name : Mohammad Saalim Arshad Quadri
  5. Candidate Email : [email protected]
  6. Country : India
  7. Github ID : danascape
  8. LinkedIn : https://www.linkedin.com/in/saalim-quadri/
  9. Mentors : Jan-Simon Möller, Walt Miner

Table of Contents

  1. Introduction
  2. Organization Information
  3. Project Interested
  4. Why this project?
  5. Deliverables
  6. Project Description
  7. Timeline
  8. Commitment & Availability
  9. Post GSoC Period
  10. Why am I the right person?
  11. Open Source Contributions & Experiences

1. Introduction:

  • I am Mohammad Saalim, a final-year student at Dayananda Sagar College of Engineering, India, pursuing a Bachelor's degree in Electronics and Communication Engineering. My curiosity about low-level systems, from the initial Boot ROM code to running user-space applications, has driven my passion for embedded systems and Linux development.
  • Over the years, I have gained extensive experience working with embedded Linux, particularly in bootloaders, kernel development, and board bring-up. I have worked on various embedded platforms, including Raspberry Pi 3B/4B+/5 and TI AM625, developing custom BSPs and integrating device drivers.
  • My core technical skills include C/C++, Bash, Python, and I have hands-on experience with Yocto, Poky, Automotive Grade Linux (AGL), U-Boot, cross-compiling, SSH, device tree configuration, SPI, I2C, and IIO APIs. I have actively contributed to open-source projects such as the Linux Kernel, Automotive Grade Linux (AGL), and PostMarketOS. Additionally, I have worked with multiple organizations on Linux board bring-up, kernel driver development, and embedded firmware.
  • I have previously participated in The Linux Foundation Mentorship Program, where I got an opportunity to work under Shuah Khan to deepen my understanding of kernel development workflows. My work spans diverse areas, including upstreaming kernel drivers, integrating AB partitioning in U-Boot, and implementing OTA update mechanisms in embedded Linux distributions.
  • With my experience in Yocto, AGL, and BSP development, I am excited about the opportunity to contribute to the meta-ros project under the Linux Foundation's Automotive Grade Linux (AGL) group. My goal is to integrate the meta-ros layer to create a demonstration image combining ROS with AGL, enhancing AGL's capabilities for robotics applications in the automotive domain.

2. Organization Information: The Linux Foundation

Linux Foundation is a non-profit organization that supports and promotes the growth of Linux and open-source software. The Linux Foundation is dedicated to advancing the development as well as adoption of open-source technologies. Some of its key initiatives include the Linux Operating System, Cloud Native Computing Foundation, The SPDX Project and many more. In addition to these, the Linux Foundation also provides training, certification, and events to support the open-source community. They are designed to help developers and professionals to develop their skills and advance in their careers. Working with Linux Foundation can provide me with several benefits and motivations, including collaboration with open-source communities that will help me connect with other students and mentor, giving me the opportunity to work professionally and explore latest technologies. This will also help me build connections world-wide and get to know IT professionals and experts in various fields.

3. Project Interested: (idea page)

  • meta-ros Integration
    • Work on meta-ros integration. (Robotic framework). Goal is a demo image integrating ROS + AGL.
    • Write a AGL/Flutter Application and integrate with meta-ros libraries, with sensor integration.

4. Why this project?

  • The integration of Robot Operating System (ROS) Layer with Automotive Grade Linux (AGL) through the meta-ros layer is an important step in upgrading vehicle technology using automotive systems. This project is important for several reasons:
    • Bridging the Gap Between Robotics and Automotive Software: AGL is widely used in the automotive industry for IVI (In-Vehicle Infotainment) and telematics adding native support for ROS, is essential for robotic applications in ADAS (Advanced Driver Assistance Systems), sensor fusion, and autonomous driving. By integrating meta-ros with AGL, this project enables deployment of robotics-based functionalities on embedded platforms.
    • Expanding AGL’s Capabilities: Modern vehicles require AI-driven automation and sensor-based intelligence. ROS integration will allow AGL to support robotics applications, making it a versatile platform for future self-driving and AI-assisted vehicles.
    • Advancing Open-Source Development: Since, AGL is the most wide open-source platform, this project aligns with the Linux Foundation’s vision of expanding open-source contributions in automotive systems.
    • Enhancing Real-World Use Cases: ROS is widely used for sensor integration, real-time perception, and AI-driven decision-making. This project can contribute to Autonomous Driving (path planning, obstacle detection), ADAS (collision avoidance, lane detection, object recognition), V2X Communication (vehicle-to-vehicle and vehicle-to-infrastructure interaction), Real-time Sensor Processing (integrating LiDAR, radar, GPS, and IMU sensors).
    • Providing a Scalable and Reproducible Solution: The meta-ros layer will be modular, making it easy to extend and maintain for future AGL versions and different automotive hardware. The demo image created from this project can serve as a reference implementation for future developments in robotics within AGL.
  • I have also been participating and actively interacting and engaging in the AGL community, regularly attending the Weekly Developer Calls, and further understanding the organization’s development and production pipeline and developer’s tool and practices.
  • Local development system specifications :
    • PC Setup - Ryzen 7 7700X , 32 GB RAM, 1 TB SSD
    • Operating System -
      • Primary - Ubuntu LTS 22.04
      • Secondary - Windows 11
  • I truly believe Open Source is the future and the best technique of learning is by doing. The perks, opportunities and prestige that are associated with Google Summer of Code (GSoC) are just added benefits to this.
  • This project would give the necessary experience and rigor to contribute meaningfully and efficiently.

5. Deliverables:

  • The primary aim of the project is to ensure a successful integration of meta-ros with Automotive Grade Linux (AGL), resulting in a functional demo image that supports ROS applications.
    • A fully functional AGL image that includes the meta-ros layer, enabling the execution of ROS-based applications within AGL.
      • Integrate meta-ros into the build system of AGL.
      • Ensure compatibility with AGL’s stack and dependencies.
      • Test and validate ROS package compilation and execution within AGL.
    • Bitbake Recipes and Layer Customization
      • Write Yocto recipes to package ROS components for AGL.
      • Modify and override meta-ros recipes to meet AGL’s requirements.
      • Ensure correct dependency resolution for ROS and AGL components.
    • Demo Application: AGL + ROS Sensor Integration
      • Develop a basic AGL + ROS application (e.g., sensor data processing).
      • Implement sensor integration (e.g., camera, GPS, IMU).
      • Showcase real-time ROS node communication within AGL.
    • Documentation and Contribution to AGL Community
      • Step-by-step installation and build guide for setting up ROS in AGL.
      • Troubleshooting guide for dependency issues and build errors.
      • Contribution of patches and modifications to the AGL/meta-ros repositories.
  • Write a Getting Started page and Developer guides documentation along with writing new documentation into the following clear and bullet-proof structure :
    • Tutorials: a lesson that allows the newcomer to get started with ROS.
      • Example : teaching a small child how to cook
    • How-to Guides: a series of steps that show how to solve a specific problem.
      • Example : a recipe in a cookery book
    • Reference: a technical description describing the appropriate workflow processes.
      • Example : a reference encyclopedia article
    • Explanation: discursive explanation explaining code / workflow structure in detail
      • Example : an article on culinary social history
  • Ultimately, this project will bridge the gap between Automotive Grade Linux (AGL) and robotic frameworks by successfully integrating meta-ros, enabling seamless deployment of ROS applications on automotive platforms and laying the foundation for future advancements in autonomous driving, ADAS, and AI-driven vehicle systems.

6. Project Description:

  • Abstract :
    • The integration of robotic frameworks with Automotive Grade Linux (AGL) marks a significant upgrade in enabling autonomous and vehicle solutions. This project focuses on integrating the meta-ros layer into AGL to create a demo image that integrates the Robot Operating System (ROS) libraries with AGL.
    • The meta-ros layer provides the necessary components, libraries and dependencies to compile, deploy, and run ROS-based applications on embedded automotive platforms. This project will involve a detailed analysis of the build system of AGL, modification and integration of the meta-ros layer, resolution of dependency and compatibility issues, and extensive testing to ensure proper functionality.
    • By the end of the project, the primary deliverable will be a fully functional AGL image capable of running ROS-based applications, including Demo Applications to test ROS Components.
  • Analysis :
    • The rapid advancement in autonomous sectors and AI-driven applications, has highlighted the need for an ecosystem that can integrate real-time data processing, sensor fusion, and decision-making. Automotive Grade Linux (AGL) has emerged as a leading open-source platform for in-vehicle infotainment (IVI), telematics, and automotive systems, it currently lacks native support for robotic middleware such as Robot Operating System (ROS). This project aims to bridge this gap by integrating meta-ros yocto layer into AGL, unlocking new capabilities for robotic applications, ADAS (Advanced Driver Assistance Systems), autonomous navigation, and AI-driven perception systems within vehicles. Whilst people can write complex applications to perform the same algorithms, having a dedicated layer will help trimming down various pre-requirements.
    • The meta-ros layer is a Yocto layer that enables cross-compilation and deployment of ROS packages on embedded Linux platforms.
    • Importance:
      • ROS has a modular architecture, middle-ware capabilities and real-time sensor data processing.
      • Integrate support for cameras, LiDAR, and radar for environmental awareness.
      • A wide range of libraries and components for making ROS integration.
    • Challenges:
      • Dependency Management – Handling different components and system libraries between ROS and AGL.
      • Cross-Compilation – Ensuring that ROS packages are correctly compiled and optimized for automotive hardware.
      • Performance & Stability – Testing real-time execution of ROS applications within the AGL ecosystem on embedded platforms.
  • This proposed workflow will help AGL seamlessly integrate ROS functionalities, enabling advanced robotics and automation capabilities within AGL applications while maintaining compatibility with the existing build system.

7. Timeline:

  • Community Bonding Period - 8th May - 1st June :
    • Engage more with mentors, attent weekly call.
    • Explore existing meta-ros documentation and understand its bitbake recipes.
    • Set up development environment (AGL build setup, meta-ros repositories).
    • Take suggestions from mentors about integration of meta-ros layer with existing yocto build.
    • Plan about which specific parts of meta-ros to efficiently integrate the yocto layer.
    • A validation of development setup before coding starts
  • Week-1 : 2nd June - 8th June :
    • Identify possible hardware for testing (TI AM62XX, R-Car, Raspberry Pi 4, x86_64 VM)
    • Prepare an early documentation draft outlining the integration strategy.
    • Setup the initial repository and integrate demo recipes to AGL.
    • Write scripts to for easier development and testing.
  • Week-2 : 9th June - 15th June :
    • Test out the initial build, and check any dependency issues.
    • Resolve build failures and missing package dependencies.
    • Ensure ROS 2 core libraries (rclcpp, std_msgs, ros2cli) build properly.
  • Week-3 : 16th June - 22nd June :
    • Identify and resolve any library conflicts with AGL.
    • Modify and override recipes if necessary.
    • Initial submission of meta-ros integration patches on gerrit.
  • Week-4 : 23rd June - 29th June :
    • Test AGL + meta-ros integration on QEMU or a possible hardware.
    • Take reviews from the AGL community about the initial integration.
    • Work on improving the dependencies and compile all related libraries.
  • Week-5 : 30th June - 6th July :
    • Verify if meta-ros dependencies are correctly resolved.
    • Start setting up Raspberry Pi to improve the testing for the same.
  • Week-6 : 7th July - 13th July :
    • Conduct thorough functionality testing of ROS inside AGL.
    • Fix any issues blocking ROS nodes from running inside AGL.
    • Debug the Raspberry Pi build and take reviews from the AGL community about necessary bugs.
  • Week-7 : 14th July - 20th July :
    • Submit Phase 1 Deliverables, including a working build and test report.
    • Discuss Work on AGL GUI Application for visualizing ROS data.
  • Week-8 : 21st July - 27th July :
    • Write a basic AGL Application to showcase ROS data.
    • Implement a basic ROS node in AGL to interact with hardware.
    • Ensure a successful communication between ROS nodes inside AGL.
  • Week-9 : 28th July - 3rd August :
    • Test real-time data exchange within application and hardware.
    • Add support for reading sensor data.
  • Week-10 : 4th August - 10th August :
    • Test sensor data node calls within application in AGL.
  • Week-11 : 11th August - 17th August :
    • Optimize ROS application/recipes for efficiency.
    • Conduct extensive performance testing on different hardware setups.
    • Discuss techniques for multiple sensor integration in meta-ros.
  • Week-12 : 18th August - 24th August :
    • Write down a resource list that future documenters and developers can follow to write and improve documentation.
    • Write down and submit the final project report.
  • Week-13 : 25th August - 1st September :
    • Submit the personal evaluation on success of the project and experience working with AGL mentors and community.

8. Commitment & Availability:

  • I have always been keen to learn more, especially about Embedded Linux and Open Source Software Development. An opportunity like Google Summmer of Code with The Linux Foundation seems like the perfect path for it. The mentors have been very kind, patient and helpful to all my queries. I would be honored to continue working with them.
  • I am sure that I would be able to devote 40+ hours per week to this cause. My work timings are very flexible, but I usually start working after 14:00 all the way till 23:00 in UTC+5:30.
  • I expect to give my full participation during the GSoC period and have no prior engagements during this period, except that I'm in my final year, so there might be time when I would be unavailable due to academic commitments.
  • I would suggest we start working a little earlier than the original GSoC timeline in order to avoid any unforeseen notices by my university regarding academic examinations.

9. Post-GSoC Period:

  • I will maintain meta-agl-ros integration framework and also add to Automotive Grade Linux’s documentation repositories for the foreseeable future and work on continually improving it.
  • I will keep contributing and help other new contributors to explore and learn projects (especially the documentation) in this organisation.

9. Why am I the right Person?

  • With experience in embedded Linux, Yocto, AGL, BSP development, and Linux kernel, I am confident in my ability to handle the meta-ros integration with Automotive Grade Linux (AGL). My background in Yocto, AGL, cross-compiling, and hardware integration directly aligns with the project's requirements.
  • As an Embedded Developer, I aim to deepen my expertise in Embedded Linux Systems to work with and adapt to a wider range of hardware devices. Working on robotic frameworks will allow me to gain a deeper understanding of hardware and sensor interactions, which are crucial for real-time and automotive applications.

11. Open Source Contributions & Experiences:

  • Contributions to Open Source :
    • Automotive Grade Linux (AGL) : Added support for TI AM62X series BSP in AGL, and working on drm-lease to improve display rendering.
    • Linux Kernel Mainline : Contributed 15+ patches to the Linux kernel in dt-bindings and Industrial I/O (IIO) subsystems, involving device tree fixes and driver upstreams.
    • StormBreaker Project : Founded StormBreaker, an open-source Linux kernel optimization project with 500,000+ downloads. Worked on upstreaming OEM-supplied kernels with stable Linux updates and integrating features from higher upstreams, such as: vDSO32, s-random, schedulers and TCP.
    • PostMarketOS (pmOS) : Mainlined MSM8937 and SM6350 chipsets in PostMarketOS, enabling support for a broader range of smartphones. Developed basic framebuffer and USB debugging support for these platforms. Worked on Global Clock Controller (gcc-clk) drivers and MDSS-DSI panel drivers to enable display support.
  • Experiences :
    • Raptee Energy - Embedded Firmware Developer : Led the development of a custom embedded Linux distribution using Automotive Grade Linux (AGL). Integrated RAUC (Robust Auto-Update Controller) with Zoho Cloud Suite, enabling secure OTA updates for embedded devices. Developed Yocto recipes for Embedded Flutter to support graphical interfaces in automotive applications.
    • Vispero - BSP Engineer : Worked on U-Boot for Raspberry Pi 4B/5, integrating AB partitioning for Android-based embedded devices. Developed a custom U-Boot environment, improving boot reliability and redundancy in embedded Android systems.
    • The Rainmakers - Linux Kernel Developer : Upstreamed the Linux Memory Extractor (LiME) driver for newer Android kernels, enabling volatile memory acquisition for forensic and debugging purposes. Developed a custom Linux kernel driver to extract the physical offset of a file within a disk, improving low-level file system analysis.
    • Nimo Planet - Linux Kernel Developer : Developed and upstreamed a Linux kernel driver for the Azotek IQS5xx touchpad. Participated in the development of a 6-Axis Inertial Motion Unit (IMU) sensor driver, supporting accelerometer, gyroscope, pedometer, and tilt detection.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment