Post

GSoC 2025 - Week 5 - Testing the patchset

Resolving issues with missing ROS dependencies in the rootfs.

GSoC 2025 - Week 5 - Testing the patchset

In the past week, due to a lack of time, I was unable to test the compilation of the patchset. This week, I focused on testing the patchset compilation.

Build Configuration

First, I verified that meta-ros2 and meta-ros2-humble were getting picked up, and new environment variables appeared in my build configuration.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Build Configuration:
BB_VERSION           = "2.8.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "aarch64-agl-linux"
MACHINE              = "raspberrypi5"
DISTRO               = "poky-agl"
DISTRO_VERSION       = "19.0.2"
TUNE_FEATURES        = "aarch64"
TARGET_FPU           = ""
DISTRO_NAME          = "Automotive Grade Linux"
ROS_DISTRO           = "humble"
ROS_VERSION          = "2"
ROS_PYTHON_VERSION   = "3"
meta-raspberrypi     = "HEAD:3b27c95c163a042f8056066ec3d27edfcc42da7f"
meta-lts-mixins_u-boot = "HEAD:66ceeebd047d7fdfc8668b300319a76da8ae257d"
meta-selinux         = "HEAD:c4b059262089b74c8fbf8dd5fdf5fd7bc1deeddc"
meta-pipewire        
meta-agl-kuksa-val   
meta-agl-flutter     = "HEAD:c6064451dacccfb0d8c89fe3e5a606a98458b5ad"
meta-flutter         
meta-flutter-apps    = "HEAD:f12d340d5ac0bb5519e0bdb3d750c805501af308"
meta-app-framework   = "HEAD:c6064451dacccfb0d8c89fe3e5a606a98458b5ad"
meta-agl-ros2        = "HEAD:f9cd7a20cfc95004628c7e316a1fc55b124e6358"
meta-ros-common      
meta-ros2            
meta-ros2-humble     = "scarthgap:ebef2e1409307c7eb622d2fe85467f12cead9d89"
meta-agl-demo        = "HEAD:c05b06465e757a1c1cd57d66e244b5d9b55c44e9"
meta-networking      
meta-python          
meta-filesystems     
meta-multimedia      = "HEAD:e92d0173a80ea7592c866618ef5293203c50544c"
meta-clang           = "HEAD:eaa08939eaec9f620b14742ff3ac568553683034"
meta-qt6             = "HEAD:57fef415fcde6c3d70a028f42f318f455633dc97"
meta-oe              = "HEAD:e92d0173a80ea7592c866618ef5293203c50544c"
meta-agl-core        
meta-agl-bsp         = "HEAD:c6064451dacccfb0d8c89fe3e5a606a98458b5ad"
meta                 
meta-poky            = "HEAD:bab0f9f62af9af580744948dd3240f648a99879a"

Compilation

I then proceeded to compile by running the following command:

1
2
source meta-agl/scripts/aglsetup.sh -f -m raspberrypi5 -b raspberrypi5 agl-flutter agl-devel agl-demo agl-ros2
bitbake agl-ivi-demo-flutter

The build completed successfully, and I flashed the build onto the device. It booted up without issues.

Issue with ROS Dependencies

However, I realized that no ROS dependencies were built or installed into the root filesystem. Upon further investigation, I discovered that I needed to add or create an additional file to specify which dependencies should be compiled when the layer is included. My mentor pointed out this mistake, which I had overlooked in the rush.

But I did not realise and checked that there was no ros dependency that got built and installed into the rootfs. On further investigation I found out that there is an additional file we need to add or create, in order to add a set of dependency to be compiled when the layer is included, my mentor pointed this out which was a hurried mistake on my end.

Solution

To resolve the issue, I created the meta-agl-ros2/conf/include/agl-ros2.inc inside meta-agl-devel layer file with the following content:

1
IMAGE_FEATURES =+ " ros-core"

I included this file with an external layer. However, I wasn’t able to figure out the proper way to include this dependency. For now, I chose ros-core as the most basic dependency I could think of.

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 6: Comprehensive Testing and Validation
Journey: GSoC 2025 Journey

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