OE4T / tegra-demo-distro

Reference/demonstration distro for meta-tegra
MIT License
81 stars 75 forks source link

How to add meta-ros (ros 2 dashing), meta-qt5 and meta-boot2qt to demo-image-full on Nvidia Jetson TX2? #275

Closed Arshdsam closed 7 months ago

Arshdsam commented 1 year ago

I'am a newbie in Yocto Project, From the inputs given by the team members in this tegra-demo-distro repo, I was successfully able to built the "demo-image-full" (Dunfell) image and boot it on my Jetson TX2. My Host PC is running on Ubuntu 18.04 LTS. I tried adding meta-ros using the inputs from and from this link but ended up in errors. My bblayers.conf : BBLAYERS ?= " \ /home/hope/DunfellOS/tegra-demo-distro/layers/meta \ /home/hope/DunfellOS/tegra-demo-distro/layers/meta-tegra \ /home/hope/DunfellOS/tegra-demo-distro/layers/meta-tegra/contrib \ /home/hope/DunfellOS/tegra-demo-distro/layers/meta-oe \ /home/hope/DunfellOS/tegra-demo-distro/layers/meta-python \ /home/hope/DunfellOS/tegra-demo-distro/layers/meta-networking \ /home/hope/DunfellOS/tegra-demo-distro/layers/meta-filesystems \ /home/hope/DunfellOS/tegra-demo-distro/layers/meta-virtualization \ /home/hope/DunfellOS/tegra-demo-distro/layers/meta-tegra-community \ /home/hope/DunfellOS/tegra-demo-distro/layers/meta-mender-core \ /home/hope/DunfellOS/tegra-demo-distro/layers/meta-mender-tegra \ /home/hope/DunfellOS/tegra-demo-distro/layers/meta-tegra-support \ /home/hope/DunfellOS/tegra-demo-distro/layers/meta-demo-ci \ /home/hope/DunfellOS/tegra-demo-distro/layers/meta-tegrademo \ /home/hope/DunfellOS/tegra-demo-distro/layers/meta-ros/meta-ros2 \ /home/hope/DunfellOS/tegra-demo-distro/layers/meta-ros/meta-ros2-dashing \ /home/hope/DunfellOS/tegra-demo-distro/layers/meta-ros/meta-ros-backports-gatesgarth \ /home/hope/DunfellOS/tegra-demo-distro/layers/meta-ros/meta-ros-common \ " also. added these two lines at beginning of bblayers.conf : ROS_OE_RELEASE_SERIES = "dunfell" ROS_DISTRO = "dashing"

--> And i have added a demo-image-ros2.bb file in layers/meta-tegrademo/recipes-demo/images/demo-image-ros2.bb. demo-image-ros2.bb :

require demo-image-full.bb

SUMMARY = "An image including a bare-minimum installation of ROS 2 and including some basic pub/sub examples. It includes two DDS middleware implementations, FastDDS and Cyclone DDS" DESCRIPTION = "${SUMMARY}"

inherit rosdistro${ROS_DISTRO} inherit ${ROS_DISTRO_TYPE}_image

TOOLCHAIN_HOST_TASK:append = " nativesdk-packagegroup-cuda-sdk-host"

ROS_SYSROOT_BUILD_DEPENDENCIES = " \ ament-lint-auto \ ament-cmake-auto \ ament-cmake-core \ ament-cmake-cppcheck \ ament-cmake-cpplint \ ament-cmake-export-definitions \ ament-cmake-export-dependencies \ ament-cmake-export-include-directories \ ament-cmake-export-interfaces \ ament-cmake-export-libraries \ ament-cmake-export-link-flags \ ament-cmake-gmock \ ament-cmake-gtest \ ament-cmake-include-directories \ ament-cmake-libraries \ ament-cmake \ ament-cmake-pytest \ ament-cmake-python \ ament-cmake-ros \ ament-cmake-target-dependencies \ ament-cmake-test \ ament-cmake-uncrustify \ ament-cmake-flake8 \ ament-cmake-pep257 \ ament-copyright \ ament-cpplint \ ament-flake8 \ ament-index-python \ ament-lint-cmake \ ament-package \ ament-pclint \ ament-pep257 \ ament-pyflakes \ ament-uncrustify \ ament-xmllint \ cmake \ eigen3-cmake-module \ fastcdr \ fastrtps-cmake-module \ fastrtps \ git \ gmock-vendor \ gtest-vendor \ pkgconfig \ python-cmake-module \ python3-catkin-pkg \ python3-empy \ python3 \ python3-nose \ python3-pytest \ rcutils \ rmw-implementation-cmake \ rosidl-cmake \ rosidl-default-generators \ rosidl-generator-c \ rosidl-generator-cpp \ rosidl-generator-dds-idl \ rosidl-generator-py \ rosidl-parser \ rosidl-runtime-c \ rosidl-runtime-cpp \ rosidl-typesupport-c \ rosidl-typesupport-cpp \ rosidl-typesupport-fastrtps-cpp \ rosidl-typesupport-interface \ rosidl-typesupport-introspection-c \ rosidl-typesupport-introspection-cpp \ foonathan-memory-vendor \ libyaml-vendor \ "

IMAGE_INSTALL:append = " \ ros-base \ examples-rclcpp-minimal-action-client \ examples-rclcpp-minimal-action-server \ examples-rclcpp-minimal-client \ examples-rclcpp-minimal-composition \ examples-rclcpp-minimal-publisher \ examples-rclcpp-minimal-service \ examples-rclcpp-minimal-subscriber \ examples-rclcpp-minimal-timer \ examples-rclpy-executors \ examples-rclpy-minimal-action-client \ examples-rclpy-minimal-action-server \ examples-rclpy-minimal-client \ examples-rclpy-minimal-publisher \ examples-rclpy-minimal-service \ examples-rclpy-minimal-subscriber \ demo-nodes-cpp \ demo-nodes-cpp-rosnative \ demo-nodes-py \ cyclonedds \ rmw-cyclonedds-cpp \ tmux \ python3-argcomplete \ glibc-utils \ localedef \ rt-tests \ stress \ ${ROS_SYSROOT_BUILD_DEPENDENCIES} \ opencv-staticdev \ lttng-tools lttng-modules lttng-ust \ libstdc++ \ libstdc++-dev \ libnvvpi1 \ libnvvpi1-dev \ "

IMAGE_LINGUAS = "en-us" GLIBC_GENERATE_LOCALES = "en_US.UTF-8"

But these methods ended up in errors: Loading cache: 100% |#################################################################################| Time: 0:00:00 Loaded 4551 entries from dependency cache. ERROR: ExpansionError during parsing /home/hope/DunfellOS/tegra-demo-distro/layers/meta-tegra-community/recipes-test/eglstreams/eglstreams-kms-example_git.bb

I'am seeking the help from you guys for advicing me the ways on which i can built a demo-image-full without errors, so that when i ON my jetson TX2, it should directly boot to my Qt application using meta-boot2qt, which has dependecies on ROS2 and QT5 (Thats why Meta-ros, meta-qt5 and meta-boot2qt).

Thanks in Advance for you precious time and efforts !!!

Arshdsam commented 1 year ago

I once again tried to add meta-ros layer (https://github.com/robwoolley/meta-ros.git, Dunfell Branch) to the existing "demo-image-full" image by editing the bblayers.conf and adding the below lines at the end. bblayers.conf: /layers/meta-ros/meta-ros2 \ /layers/meta-ros/meta-ros2-dashing \ /layers/meta-ros/meta-ros-backports-gatesgarth \ /layers/meta-ros/meta-ros-common \

And, then set up the environment with the following code: source ./setup-env --distro tegrademo --machine jetson-tx2-devkit build-testdistro

and, then using "bitbake demo-image-full", but ended up in errors: Loading cache: 100% |##############################################################################################################################| Time: 0:00:01 Loaded 4551 entries from dependency cache. Parsing recipes: 100% |############################################################################################################################| Time: 0:00:00 Parsing of 3215 .bb files complete (3214 cached, 1 parsed). 4551 targets, 222 skipped, 3 masked, 0 errors. NOTE: Resolving any missing task queue dependencies

Build Configuration: BB_VERSION = "1.46.0" BUILD_SYS = "x86_64-linux" NATIVELSBSTRING = "universal" TARGET_SYS = "aarch64-oe4t-linux" MACHINE = "jetson-tx2-devkit" DISTRO = "tegrademo-mender" DISTRO_VERSION = "3.1.27+snapshot" TUNE_FEATURES = "aarch64 armv8a crc" TARGET_FPU = "" DISTRO_NAME = "OE4Tegra Demonstration Distro with Mender" ROS_DISTRO = "dashing" ROS_VERSION = "2" ROS_PYTHON_VERSION = "3" meta = "HEAD:b1fdc92450ba1f3869116d88bd92a5a75b8e9f87" meta-tegra
contrib = "HEAD:133446740965f2ec7c97694d163d47db4009aa83" meta-oe
meta-python
meta-networking
meta-filesystems = "HEAD:b8b0b06821d4d4df0cce4f07fa31a8ca1dd38f46" meta-virtualization = "HEAD:0dbb8593fa38ac2a04fcac04ff3e35611e849824" meta-tegra-community = "HEAD:ec14043c4785268be16005dbb91c5e1018233c5a" meta-mender-core = "HEAD:35886d930a16ddf10a43e81a5f80d29bd6b33d16" meta-mender-tegra = "HEAD:dd4621ca3304cf536105416baff7be529b9f543a" meta-tegra-support
meta-demo-ci
meta-tegrademo = "dunfell:a8a50343a250119d10865d7c8ce92b7e4d7959dd" meta-ros2
meta-ros2-dashing
meta-ros-backports-gatesgarth meta-ros-common = "dunfell:cff8d036209f409a576d41c234925484f72b6d03"

Initialising tasks: 100% |#########################################################################################################################| Time: 0:00:07 Sstate summary: Wanted 2064 Found 0 Missed 2064 Current 1683 (0% match, 44% complete) NOTE: Executing Tasks ERROR: kbd-2.2.0-r0 do_compile: oe_runmake failed ERROR: kbd-2.2.0-r0 do_compile: Execution of '/home/hope/DunfellOS/tegra-demo-distro/build-testdistro/tmp/work/aarch64-oe4t-linux/kbd/2.2.0-r0/temp/run.do_compile.19949' failed with exit code 1 ERROR: Logfile of failure stored in: /home/hope/DunfellOS/tegra-demo-distro/build-testdistro/tmp/work/aarch64-oe4t-linux/kbd/2.2.0-r0/temp/log.do_compile.19949

Am I missing here something !!! Is "bitbake demo-image-full" the right code to make the image with all the ros2 recipes ? Pls give your valuable suggestions. Thanks in Advance !!!

dwalkes commented 1 year ago

Hi @Arshdsam

Disclaimer: I've never used meta-ros before, however I did follow the instructions at this link to setup a build on the dunfell branch of tegra-demo-distro targeting jetson-tx2-devkit. I'll post back when that completes and let you know if I reproduce any issues.

Regarding the last error you posted, refer to this section:

ERROR: kbd-2.2.0-r0 do_compile: oe_runmake failed
ERROR: kbd-2.2.0-r0 do_compile: Execution of '/home/hope/DunfellOS/tegra-demo-distro/build-testdistro/tmp/work/aarch64-oe4t-linux/kbd/2.2.0-r0/temp/run.do_compile.19949' failed with exit code 1
ERROR: Logfile of failure stored in: /home/hope/DunfellOS/tegra-demo-distro/build-testdistro/tmp/work/aarch64-oe4t-linux/kbd/2.2.0-r0/temp/log.do_compile.19949

This output suggests you should look into the mentioned log.do_compile file there for clues as to why the compile failed.

Is "bitbake demo-image-full" the right code to make the image with all the ros2 recipes

The image itself does not depend on ROS and doesn't specifically include any ROS recipes. However I'd expect you could add ROS recipies to it after including the layer.

dwalkes commented 1 year ago

Build succeeded for me with this config:


Build Configuration:
BB_VERSION           = "1.46.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "aarch64-oe4t-linux"
MACHINE              = "jetson-tx2-devkit"
DISTRO               = "tegrademo"
DISTRO_VERSION       = "3.1.27+snapshot-20230902"
TUNE_FEATURES        = "aarch64 armv8a crc"
TARGET_FPU           = ""
DISTRO_NAME          = "OE4Tegra Demonstration Distro"
ROS_DISTRO           = "dashing"
ROS_VERSION          = "2"
ROS_PYTHON_VERSION   = "3"
meta                 = "HEAD:b1fdc92450ba1f3869116d88bd92a5a75b8e9f87"
meta-tegra
contrib              = "HEAD:133446740965f2ec7c97694d163d47db4009aa83"
meta-oe
meta-python
meta-networking
meta-filesystems     = "HEAD:b8b0b06821d4d4df0cce4f07fa31a8ca1dd38f46"
meta-virtualization  = "HEAD:0dbb8593fa38ac2a04fcac04ff3e35611e849824"
meta-tegra-community = "HEAD:ec14043c4785268be16005dbb91c5e1018233c5a"
meta-tegra-support
meta-demo-ci
meta-tegrademo       = "dunfell:a8a50343a250119d10865d7c8ce92b7e4d7959dd"
meta-ros2
meta-ros-backports-gatesgarth
meta-ros-common
meta-ros2-dashing    = "dunfell:cff8d036209f409a576d41c234925484f72b6d03"

My guess is your build system crashed or something else happened during compile of the kbd recipe and you need a bitbake -c cleanall kbd command to recover. Take a look at the compile error first but I don't really understand how the ros layer would be related to this recipe.

Also if you haven't already verified tegra-demo-distro builds successfully on this your build system without ROS layers you may want to do this as well.

Arshdsam commented 1 year ago

Hai @dwalkes Could you pls describe the the steps you have undertaken for a successful built. Did you added any lines to the local.conf file or did you make a recipe x.bb file and then bitbake x ? What code did you used from this link: https://github.com/ros/meta-ros/wiki/OpenEmbedded-Build-Instructions#add-meta-ros-to-an-existing-openembedded-project to bitbake the image

Thanks in Advance !!!

Arshdsam commented 1 year ago

Build succeeded for me with this config:


Build Configuration:
BB_VERSION           = "1.46.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "aarch64-oe4t-linux"
MACHINE              = "jetson-tx2-devkit"
DISTRO               = "tegrademo"
DISTRO_VERSION       = "3.1.27+snapshot-20230902"
TUNE_FEATURES        = "aarch64 armv8a crc"
TARGET_FPU           = ""
DISTRO_NAME          = "OE4Tegra Demonstration Distro"
ROS_DISTRO           = "dashing"
ROS_VERSION          = "2"
ROS_PYTHON_VERSION   = "3"
meta                 = "HEAD:b1fdc92450ba1f3869116d88bd92a5a75b8e9f87"
meta-tegra
contrib              = "HEAD:133446740965f2ec7c97694d163d47db4009aa83"
meta-oe
meta-python
meta-networking
meta-filesystems     = "HEAD:b8b0b06821d4d4df0cce4f07fa31a8ca1dd38f46"
meta-virtualization  = "HEAD:0dbb8593fa38ac2a04fcac04ff3e35611e849824"
meta-tegra-community = "HEAD:ec14043c4785268be16005dbb91c5e1018233c5a"
meta-tegra-support
meta-demo-ci
meta-tegrademo       = "dunfell:a8a50343a250119d10865d7c8ce92b7e4d7959dd"
meta-ros2
meta-ros-backports-gatesgarth
meta-ros-common
meta-ros2-dashing    = "dunfell:cff8d036209f409a576d41c234925484f72b6d03"

My guess is your build system crashed or something else happened during compile of the kbd recipe and you need a bitbake -c cleanall kbd command to recover. Take a look at the compile error first but I don't really understand how the ros layer would be related to this recipe.

Also if you haven't already verified tegra-demo-distro builds successfully on this your build system without ROS layers you may want to do this as well.

I was successful in building the demo-image-full image. I also used the methods suggested in the https://github.com/ros/meta-ros/wiki/OpenEmbedded-Build-Instructions#add-meta-ros-to-an-existing-openembedded-project But when i did bibake -p ros-core, thsi was the result: ~/DunfellOS/tegra-demo-distro/build-testdistro$ bitbake -p ros-core Parsing recipes: 100% |######################################################################################################################| Time: 0:01:17 Parsing of 3189 .bb files complete (0 cached, 3189 parsed). 4600 targets, 220 skipped, 1 masked, 0 errors. (NOTHING MORE, NOTHING LESS) so, what do i need to do for the next step ?

Arshdsam commented 1 year ago

After entering "bitbake -p ros-core", i entered "bitbake ros-image-world" but ended up in earlier errors: $ bitbake ros-image-world Loading cache: 100% |########################################################################################################################| Time: 0:00:00 Loaded 4599 entries from dependency cache. Parsing recipes: 100% |######################################################################################################################| Time: 0:00:00 Parsing of 3189 .bb files complete (3188 cached, 1 parsed). 4600 targets, 220 skipped, 1 masked, 0 errors. NOTE: Resolving any missing task queue dependencies

Build Configuration: BB_VERSION = "1.46.0" BUILD_SYS = "x86_64-linux" NATIVELSBSTRING = "universal" TARGET_SYS = "aarch64-oe4t-linux" MACHINE = "jetson-tx2-devkit" DISTRO = "tegrademo" DISTRO_VERSION = "3.1.27+snapshot-20230902" TUNE_FEATURES = "aarch64 armv8a crc" TARGET_FPU = "" DISTRO_NAME = "OE4Tegra Demonstration Distro" ROS_DISTRO = "dashing" ROS_VERSION = "2" ROS_PYTHON_VERSION = "3" meta = "HEAD:b1fdc92450ba1f3869116d88bd92a5a75b8e9f87" meta-tegra
contrib = "HEAD:133446740965f2ec7c97694d163d47db4009aa83" meta-oe
meta-python
meta-networking
meta-filesystems = "HEAD:b8b0b06821d4d4df0cce4f07fa31a8ca1dd38f46" meta-virtualization = "HEAD:0dbb8593fa38ac2a04fcac04ff3e35611e849824" meta-tegra-community = "HEAD:ec14043c4785268be16005dbb91c5e1018233c5a" meta-tegra-support
meta-demo-ci
meta-tegrademo = "dunfell:a8a50343a250119d10865d7c8ce92b7e4d7959dd" meta-ros2
meta-ros2-dashing
meta-ros-backports-gatesgarth meta-ros-backports-hardknott meta-ros-common = "dunfell:cd2e0d0625385ca821aa5129d20805640ac80734"

Initialising tasks: 100% ################################################################################################################### Time: 0:00:21 Sstate summary: Wanted 6011 Found 388 Missed 5623 Current 1261 (6% match, 22% complete) NOTE: Executing Tasks ERROR: kbd-2.2.0-r0 do_compile: oe_runmake failed ERROR: kbd-2.2.0-r0 do_compile: Execution of '/home/hope/DunfellOS/tegra-demo-distro/build-testdistro/tmp/work/aarch64-oe4t-linux/kbd/2.2.0-r0/temp/run.do_compile.2000' failed with exit code 1 ERROR: Logfile of failure stored in: /home/hope/DunfellOS/tegra-demo-distro/build-testdistro/tmp/work/aarch64-oe4t-linux/kbd/2.2.0-r0/temp/log.do_compile.2000 Log data follows: DEBUG: Executing python function autotools_aclocals DEBUG: SITE files ['endian-little', 'bit-64', 'arm-common', 'arm-64', 'common-linux', 'common-glibc', 'aarch64-linux', 'common'] DEBUG: Python function autotools_aclocals finished DEBUG: Executing shell function do_compile NOTE: make -j 8 make all-recursive make[1]: Entering directory '/home/hope/DunfellOS/tegra-demo-distro/build-testdistro/tmp/work/aarch64-oe4t-linux/kbd/2.2.0-r0/build' Making all in src make[2]: Entering directory '/home/hope/DunfellOS/tegra-demo-distro/build-testdistro/tmp/work/aarch64-oe4t-linux/kbd/2.2.0-r0/build/src' Making all in libcommon

analyze.l: In function 'find_incl_file_near_fn': | analyze.l:141:24: warning: passing argument 2 of 'kbdfile_find' from incompatible pointer type [-Wincompatible-pointer-types] | In file included from ../../../kbd-2.2.0/src/libkeymap/keymap/kmap.h:36, | from ../../../kbd-2.2.0/src/libkeymap/keymap.h:8, | from ../../../kbd-2.2.0/src/libkeymap/analyze.c:1: | ../../../kbd-2.2.0/src/libkeymap/../libkbdfile/kbdfile.h:40:37: note: expected 'char ' but argument is of type 'const char ' | int kbdfile_find(char fnam, char dirpath, char suffixes, struct kbdfile fp); | ~^~~~~ | analyze.l:141:42: warning: passing argument 3 of 'kbdfile_find' from incompatible pointer type [-Wincompatible-pointer-types] | In file included from ../../../kbd-2.2.0/src/libkeymap/keymap/kmap.h:36, | from ../../../kbd-2.2.0/src/libkeymap/keymap.h:8, | from ../../../kbd-2.2.0/src/libkeymap/analyze.c:1: | ../../../kbd-2.2.0/src/libkeymap/../libkbdfile/kbdfile.h:40:53: note: expected 'char ' but argument is of type 'const char const' | int kbdfile_find(char fnam, char dirpath, char suffixes, struct kbdfile fp); | ~^~ | analyze.l: In function 'find_standard_incl_file': | analyze.l:168:22: warning: passing argument 2 of 'kbdfile_find' from incompatible pointer type [-Wincompatible-pointer-types] | In file included from ../../../kbd-2.2.0/src/libkeymap/keymap/kmap.h:36, | from ../../../kbd-2.2.0/src/libkeymap/keymap.h:8, | from ../../../kbd-2.2.0/src/libkeymap/analyze.c:1: | ../../../kbd-2.2.0/src/libkeymap/../libkbdfile/kbdfile.h:40:37: note: expected 'char ' but argument is of type 'const char const' | int kbdfile_find(char fnam, char dirpath, char suffixes, struct kbdfile fp); | ~^~~~~ | analyze.l:168:40: warning: passing argument 3 of 'kbdfile_find' from incompatible pointer type [-Wincompatible-pointer-types] | In file included from ../../../kbd-2.2.0/src/libkeymap/keymap/kmap.h:36, | from ../../../kbd-2.2.0/src/libkeymap/keymap.h:8, | from ../../../kbd-2.2.0/src/libkeymap/analyze.c:1: | ../../../kbd-2.2.0/src/libkeymap/../libkbdfile/kbdfile.h:40:53: note: expected 'char ' but argument is of type 'const char const' | int kbdfile_find(char fnam, char dirpath, char suffixes, struct kbdfile fp); | ~^~ | analyze.l:197:24: warning: passing argument 2 of 'kbdfile_find' from incompatible pointer type [-Wincompatible-pointer-types] | In file included from ../../../kbd-2.2.0/src/libkeymap/keymap/kmap.h:36, | from ../../../kbd-2.2.0/src/libkeymap/keymap.h:8, | from ../../../kbd-2.2.0/src/libkeymap/analyze.c:1: | ../../../kbd-2.2.0/src/libkeymap/../libkbdfile/kbdfile.h:40:37: note: expected 'char ' but argument is of type 'const char const' | int kbdfile_find(char fnam, char dirpath, char suffixes, struct kbdfile fp); | ~^~~~~ | analyze.l:197:42: warning: passing argument 3 of 'kbdfile_find' from incompatible pointer type [-Wincompatible-pointer-types] | In file included from ../../../kbd-2.2.0/src/libkeymap/keymap/kmap.h:36, | from ../../../kbd-2.2.0/src/libkeymap/keymap.h:8, | from ../../../kbd-2.2.0/src/libkeymap/analyze.c:1: | ../../../kbd-2.2.0/src/libkeymap/../libkbdfile/kbdfile.h:40:53: note: expected 'char ' but argument is of type 'const char const' | int kbdfile_find(char fnam, char dirpath, char suffixes, struct kbdfile fp); | ~^~ | analyze.l: In function 'find_incl_file': | analyze.l:210:27: warning: passing argument 2 of 'kbdfile_find' from incompatible pointer type [-Wincompatible-pointer-types] | In file included from ../../../kbd-2.2.0/src/libkeymap/keymap/kmap.h:36, | from ../../../kbd-2.2.0/src/libkeymap/keymap.h:8, | from ../../../kbd-2.2.0/src/libkeymap/analyze.c:1: | ../../../kbd-2.2.0/src/libkeymap/../libkbdfile/kbdfile.h:40:37: note: expected 'char ' but argument is of type 'const char const' | int kbdfile_find(char fnam, char dirpath, char suffixes, struct kbdfile fp); | ~^~~~~ | analyze.l:210:45: warning: passing argument 3 of 'kbdfile_find' from incompatible pointer type [-Wincompatible-pointer-types] | In file included from ../../../kbd-2.2.0/src/libkeymap/keymap/kmap.h:36, | from ../../../kbd-2.2.0/src/libkeymap/keymap.h:8, | from ../../../kbd-2.2.0/src/libkeymap/analyze.c:1: | ../../../kbd-2.2.0/src/libkeymap/../libkbdfile/kbdfile.h:40:53: note: expected 'char ' but argument is of type 'const char const' | int kbdfile_find(char fnam, char dirpath, char suffixes, struct kbdfile fp); | ~^~ | analyze.l:225:26: warning: passing argument 2 of 'kbdfile_find' from incompatible pointer type [-Wincompatible-pointer-types] | In file included from ../../../kbd-2.2.0/src/libkeymap/keymap/kmap.h:36, | from ../../../kbd-2.2.0/src/libkeymap/keymap.h:8, | from ../../../kbd-2.2.0/src/libkeymap/analyze.c:1: | ../../../kbd-2.2.0/src/libkeymap/../libkbdfile/kbdfile.h:40:37: note: expected 'char ' but argument is of type 'const char ' | int kbdfile_find(char fnam, char dirpath, char suffixes, struct kbdfile fp); | ~^~~~~ | analyze.l:225:36: warning: passing argument 3 of 'kbdfile_find' from incompatible pointer type [-Wincompatible-pointer-types] | In file included from ../../../kbd-2.2.0/src/libkeymap/keymap/kmap.h:36, | from ../../../kbd-2.2.0/src/libkeymap/keymap.h:8, | from ../../../kbd-2.2.0/src/libkeymap/analyze.c:1: | ../../../kbd-2.2.0/src/libkeymap/../libkbdfile/kbdfile.h:40:53: note: expected 'char ' but argument is of type 'const char const' | int kbdfile_find(char fnam, char dirpath, char suffixes, struct kbdfile fp); | ~^~ | In file included from analyze.l:10: | analyze.l: In function 'yylex': | analyze.l:466:19: error: format not a string literal and no format arguments [-Werror=format-security] | ../../../kbd-2.2.0/src/libkeymap/contextP.h:79:55: note: in definition of macro 'lk_log_cond' | lk_log(ctx, level, FILE, LINE, func, ##arg); \ | ^~~ | analyze.l:466:6: note: in expansion of macro 'ERR' | cc1: some warnings being treated as errors | Makefile:604: recipe for target 'analyze.lo' failed | make[4]: [analyze.lo] Error 1 | make[4]: Leaving directory '/home/hope/DunfellOS/tegra-demo-distro/build-testdistro/tmp/work/aarch64-oe4t-linux/kbd/2.2.0-r0/build/src/libkeymap' | Makefile:476: recipe for target 'all' failed | make[3]: [all] Error 2 | make[3]: Leaving directory '/home/hope/DunfellOS/tegra-demo-distro/build-testdistro/tmp/work/aarch64-oe4t-linux/kbd/2.2.0-r0/build/src/libkeymap' | Makefile:1083: recipe for target 'all-recursive' failed | make[2]: [all-recursive] Error 1 | make[2]: Leaving directory '/home/hope/DunfellOS/tegra-demo-distro/build-testdistro/tmp/work/aarch64-oe4t-linux/kbd/2.2.0-r0/build/src' | Makefile:471: recipe for target 'all-recursive' failed | make[1]: [all-recursive] Error 1 | make[1]: Leaving directory '/home/hope/DunfellOS/tegra-demo-distro/build-testdistro/tmp/work/aarch64-oe4t-linux/kbd/2.2.0-r0/build' | Makefile:402: recipe for target 'all' failed | make: *** [all] Error 2 | ERROR: oe_runmake failed | WARNING: exit code 1 from a shell command. | ERROR: Execution of '/home/hope/DunfellOS/tegra-demo-distro/build-testdistro/tmp/work/aarch64-oe4t-linux/kbd/2.2.0-r0/temp/run.do_compile.2000' failed with exit code 1 ERROR: Task (/home/hope/DunfellOS/tegra-demo-distro/layers/meta/recipes-core/kbd/kbd_2.2.0.bb:do_compile) failed with exit code '1' NOTE: Tasks Summary: Attempted 4063 tasks of which 3147 didn't need to be rerun and 1 failed.

Summary: 1 task failed: /home/hope/DunfellOS/tegra-demo-distro/layers/meta/recipes-core/kbd/kbd_2.2.0.bb:do_compile Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

Am I missing something here ? @dwalkes waiting for your response

dwalkes commented 1 year ago

@Arshdsam you are probaly getting into a discussion which would be better suited to ROS forum. As mentioned, I don't have experience with ROS on this or any platform.

However, after a quick read of the link you shared earlier I suspect this comment might be relevant:

A "best effort" has been made to keep the EOL-ed ROS 2 dashing and eloquent distros buildable, but some of the packages that are used to create the ros-image-world image do not build. However, the ros-image-core image does successfully build.

That said, I don't see an error in building kbd on my setup outlined above so there's probably something else different about your setup. I see a few differences in the setup you shared, including meta-ros-backports-hardknott layer which you've added and meta-ros-common = "dunfell:cd2e0d0625385ca821aa5129d20805640ac80734" which doesn't match the last commit on the dunfell branch at https://github.com/robwoolley/meta-ros/tree/dunfell - it looks like you've switched to https://github.com/ros/meta-ros/tree/dunfell - Perhaps that's related as well.

That said, with the setup I outlined above I'm able to build ros-image-core successfully for jetson-tx2-devkit and boot it. I'm definitely at the end of my existing ROS experience, so for advice about getting past this you might want to look for other forums dedicated to ROS.

If I were just starting out with ROS and trying to get an idea about what was available with NVIDIA + ROS I would probably not start here. Rather, I'd boot up a NVIDIA jetpack image, then try the ROS Dev Base container with a reference example. Once I undestood more about what I wanted to include in my image and how to use ROS for my application, I'd then use meta-tegra to build an image which would be suitable for production deployment and which included whatever ROS components were necessary for my application, OR simply included nvidia-docker and deployed my application as a container built on ROS Dev Base or another suitable ROS container.

Arshdsam commented 1 year ago

Thanks @dwalkes . Thankyou for your time in checking my issue.

bchoineubility commented 1 year ago

I have gone through build error for some recipes which are build successfully when I tried to build image with so many -j option and number of threads I configured my local.conf.

When I go through such error I built that recipe only it might build successfully. After that, building image would pass error.

I am not sure you case is the same as me and do not know exactly why.

BR, Mark