micro-ROS / micro-ROS/micro_ros_setup
menuconfig tool causes "flags.make:8: *** missing separator. Stop." error when building.
还没有人认领这个 Issue。
- 主要语言
- Shell
- 星标
- 509
- 派生
- 183
- 平均合并
- 22 小时 26 分钟
- 30 天内合并 PR
- 7
描述
## 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/ &
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
使用 micro_ros_setup 的入口 create_firmware_ws.sh、configure_firmware.sh 和 build_firmware.sh 复现 ESP32 构建,并比较带有和不带有 menuconfig 参数的运行结果。检查 esp-idf/main/CMakeFiles/__idf_main.dir/flags.make 第 8 行,并确定 menuconfig 生成无效 make 语法的原因。配置后的固件能够成功构建即视为完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- cmake, shell, ubuntu
- 领域
- build-system, embedded-iot
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100