GSoC 2025 - Week 5 - Testing the patchset
Resolving issues with missing ROS dependencies in the rootfs.
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