micro-ROS / micro-ROS/micro_ros_setup

menuconfig tool causes "flags.make:8: *** missing separator. Stop." error when building.

Đang mở
#580 17 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Ngôn ngữ chính
Shell
Star
509
Fork
183
Merge trung bình
22 giờ 26 phút
Pull request đã merge (30 ngày)
7

Mô tả

Issue template

  • Hardware description: ESP32
  • RTOS: FreeRTOS
  • Installation type: micro_ros_setup, basic examples programmed through VM Ubuntu 22.04
  • Version or commit hash: Humble ROS2

I've encountered an issue when trying to compile and configure a micro_ros example and would be very grateful for any help with this, I'm not so familiar with the issue reporting section on github so please excuse me if this post is a bit long winded.

Steps to reproduce the issue

Fresh VM using Ubuntu 22.04 and ROS2 Humble, when following the basic micros ros tutorial found at https://micro.ros.org/blog/2020/08/27/esp32.

When running the command "ros2 run micro_ros_setup build_firmware.sh menuconfig" the following command "ros2 run micro_ros_setup build_firmware.sh" then produces the error found below. However, if the "ros2 run micro_ros_setup build_firmware.sh menuconfig" command is not executed and "ros2 run micro_ros_setup build_firmware.sh" is ran instead the example compiles without any issues.

In any case the menuconfig tool makes the following build process fail, even if the menu is exited without saving, this seems to be an issue even if I change micro controller and if serial is used rather than UDP. There is an error found in with flags.make every time, does anyone have any suggestions?

Many thanks!

Expected behaviour

Commands:
ros2 run micro_ros_setup create_firmware_ws.sh freertos esp32
ros2 run micro_ros_setup configure_firmware.sh int32_publisher --transport serial #-t udp -i 192.168.1.120 -p 8888
ros2 run micro_ros_setup build_firmware.sh

Terminal output (Working output without running menuconfig):

[100%] Built target gen_project_binary
make -f CMakeFiles/app.dir/build.make CMakeFiles/app.dir/depend
make[2]: Entering directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
cd /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build/CMakeFiles/app.dir/DependInfo.cmake --color=
make[2]: Leaving directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
make -f CMakeFiles/app.dir/build.make CMakeFiles/app.dir/build
make[2]: Entering directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
make[2]: Nothing to be done for 'CMakeFiles/app.dir/build'.
make[2]: Leaving directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
[100%] Built target app
make[1]: Leaving directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
/usr/bin/cmake -E cmake_progress_start /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build/CMakeFiles 0

Actual behaviour

Commands:
ros2 run micro_ros_setup create_firmware_ws.sh freertos esp32
ros2 run micro_ros_setup configure_firmware.sh int32_publisher --transport serial #-t udp -i 192.168.1.120 -p 8888
ros2 run micro_ros_setup build_firmware.sh menuconfig
ros2 run micro_ros_setup build_firmware.sh

Terminal output (Fails):
Consolidate compiler generated dependencies of target __idf_openssl
make[2]: Leaving directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
make -f esp-idf/openssl/CMakeFiles/__idf_openssl.dir/build.make esp-idf/openssl/CMakeFiles/__idf_openssl.dir/build
make[2]: Entering directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
make[2]: Nothing to be done for 'esp-idf/openssl/CMakeFiles/__idf_openssl.dir/build'.
make[2]: Leaving directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
[ 97%] Built target __idf_openssl
make -f esp-idf/spiffs/CMakeFiles/__idf_spiffs.dir/build.make esp-idf/spiffs/CMakeFiles/__idf_spiffs.dir/depend
make[2]: Entering directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
cd /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions /home/verk/Desktop/microros_ws/firmware/toolchain/esp-idf/components/spiffs /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build/esp-idf/spiffs /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build/esp-idf/spiffs/CMakeFiles/__idf_spiffs.dir/DependInfo.cmake --color=
Consolidate compiler generated dependencies of target __idf_spiffs
make[2]: Leaving directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
make -f esp-idf/spiffs/CMakeFiles/__idf_spiffs.dir/build.make esp-idf/spiffs/CMakeFiles/__idf_spiffs.dir/build
make[2]: Entering directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
make[2]: Nothing to be done for 'esp-idf/spiffs/CMakeFiles/__idf_spiffs.dir/build'.
make[2]: Leaving directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
[ 98%] Built target __idf_spiffs
make -f esp-idf/unity/CMakeFiles/__idf_unity.dir/build.make esp-idf/unity/CMakeFiles/__idf_unity.dir/depend
make[2]: Entering directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
cd /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions /home/verk/Desktop/microros_ws/firmware/toolchain/esp-idf/components/unity /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build/esp-idf/unity /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build/esp-idf/unity/CMakeFiles/__idf_unity.dir/DependInfo.cmake --color=
Consolidate compiler generated dependencies of target __idf_unity
make[2]: Leaving directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
make -f esp-idf/unity/CMakeFiles/__idf_unity.dir/build.make esp-idf/unity/CMakeFiles/__idf_unity.dir/build
make[2]: Entering directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
make[2]: Nothing to be done for 'esp-idf/unity/CMakeFiles/__idf_unity.dir/build'.
make[2]: Leaving directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
[ 99%] Built target __idf_unity
make -f esp-idf/wifi_provisioning/CMakeFiles/__idf_wifi_provisioning.dir/build.make esp-idf/wifi_provisioning/CMakeFiles/__idf_wifi_provisioning.dir/depend
make[2]: Entering directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
cd /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions /home/verk/Desktop/microros_ws/firmware/toolchain/esp-idf/components/wifi_provisioning /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build/esp-idf/wifi_provisioning /home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build/esp-idf/wifi_provisioning/CMakeFiles/__idf_wifi_provisioning.dir/DependInfo.cmake --color=
Consolidate compiler generated dependencies of target __idf_wifi_provisioning
make[2]: Leaving directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
make -f esp-idf/wifi_provisioning/CMakeFiles/__idf_wifi_provisioning.dir/build.make esp-idf/wifi_provisioning/CMakeFiles/__idf_wifi_provisioning.dir/build
make[2]: Entering directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
make[2]: Nothing to be done for 'esp-idf/wifi_provisioning/CMakeFiles/__idf_wifi_provisioning.dir/build'.
make[2]: Leaving directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
[100%] Built target __idf_wifi_provisioning
make -f esp-idf/main/CMakeFiles/__idf_main.dir/build.make esp-idf/main/CMakeFiles/__idf_main.dir/depend
make[2]: Entering directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
esp-idf/main/CMakeFiles/__idf_main.dir/flags.make:8: *** missing separator. Stop.
make[2]: Leaving directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
make[1]: *** [CMakeFiles/Makefile2:3835: esp-idf/main/CMakeFiles/__idf_main.dir/all] Error 2
make[1]: Leaving directory '/home/verk/Desktop/microros_ws/firmware/freertos_apps/microros_esp32_extensions/build'
make: *** [Makefile:139: all] Error 2
[ros2run]: Process exited with failure 2

Additional information

To install micro_ros after installing ROS2 I run the following script:

sudo apt update
sudo apt install git -y
source /opt/ros/$ROS_DISTRO/setup.bash

Create a workspace and download the micro-ROS tools

cd /home/verk/Desktop
mkdir microros_ws
cd microros_ws
git clone -b $ROS_DISTRO https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup

sudo apt install python3-rosdep2 -y

Update dependencies using rosdep

sudo apt update && rosdep update
rosdep install --from-paths src --ignore-src -y

Install pip

sudo apt-get install python3-pip -y
sudo apt-get install python3-vcstool -y

rosdep update

Build micro-ROS tools and source them

colcon build
source install/local_setup.bash
echo 'source /home/verk/Desktop/microros_ws/install/local_setup.bash' >> ~/.bashrc

#Install USB drivers for VM
sudo apt-get install minicom -y
sudo apt install build-essential flex bison libssl-dev libelf-dev dwarves libncurses-dev -y

sudo usermod -a -G dialout verk
sudo usermod -a -G tty verk

ros2 run micro_ros_setup create_firmware_ws.sh freertos esp32

sudo apt update

x-www-browser https://micro.ros.org/blog/2020/08/27/esp32/ &
x-www-browser https://micro.ros.org/docs/tutorials/core/first_application_rtos/freertos/ &

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Tái hiện quá trình build ESP32 bằng các entry point của micro_ros_setup là create_firmware_ws.sh, configure_firmware.sh và build_firmware.sh, đồng thời so sánh các lần chạy có và không có đối số menuconfig. Kiểm tra esp-idf/main/CMakeFiles/__idf_main.dir/flags.make ở dòng 8 và xác định lý do menuconfig tạo ra cú pháp make không hợp lệ. Hoàn thành khi firmware đã cấu hình build thành công.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
cmake, shell, ubuntu
Lĩnh vực
build-system, embedded-iot
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.