GSoC 2025 - Week 1,2 - Setting Up the Build
Firing up a powerful PC to compile Yocto ;)
Environment Setup
Having experience working with the Android Open Source Project and the Linux Kernel proved beneficial as it made managing larger sources more straightforward. Surfing and downloading sources was easier for me, though I understand it might be different for others.
To streamline the process, I procured a powerful PC, knowing that AOSP can take over two hours to compile. Patience, honed through previous experience, helped me tackle these challenges with ease.
Technical Environment Setup
Development System Specifications
My primary development environment:
- Hardware: Ryzen 7 7700X, 32GB RAM, 4TB SSD
- Primary OS: Ubuntu LTS 22.04
- Secondary OS: Windows 11
AGL and meta-ros version Selection
After extensive discussion with my mentors, we decided on:
- AGL Release: Super Salmon (latest stable at project start)
- meta-ros Layer: Scarthgap branch (compatible with AGL’s OE version)
- Target ROS Distribution: ROS2 Humble
This combination provides the best balance of stability and feature completeness for automotive applications.
Building Initial Images
Setting up the build environment was more complex than I anticipitated:
- AGL Setup
1 2 3
mkdir agl-gsoc && cd agl-gsoc repo init -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo repo sync
1 2
source meta-agl/scripts/aglsetup.sh -f -m raspberrypi4 -b raspberrypi4 agl-flutter agl-devel agl-demo bitbake agl-ivi-demo-flutter
You can find more details on dependencies here.
- ROS Layer build
1 2 3 4 5
mkdir ros-gsoc && cd ros-gsoc git clone -b build https://github.com/ros/meta-ros mkdir ros-out KAS_WORK_DIR=ros-out kas build meta-ros/kas/oeros-kirkstone-humble-raspberrypi4-64.yml
For more instructions, check the kas README.
I initially chose to build both the AGL and ROS layers independently on my machine. However, this process took much longer than expected. While I had many of the necessary dependencies already installed, I encountered numerous errors. These issues were particularly perplexing to my mentors, as they seemed related to conflicting dependencies from my previous Android cuttlefish setup, which caused errors I hadn’t anticipated.
Get Involved
Stay tuned for the detailed technical deep-dives in the upcoming blog posts. I am planning to include examples, code, etc, such that anyone can follow along with it.
Have questions about automotive software development or want to collaborate on open-source automotive projects? Reach out to me on my email
Next: Week 3: First Steps - Starting to Code
Journey: GSoC 2025 Journey