Post

GSoC 2025 - Week 1,2 - Setting Up the Build

Firing up a powerful PC to compile Yocto ;)

GSoC 2025 - Week 1,2 - Setting Up the Build

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

This post is licensed under CC BY 4.0 by the author.