micro-ROS / micro-ROS/micro_ros_setup

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

Aperta
#580 17 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
Shell
Stelle
509
Fork
183
Merge medio
22h 26m
PR unite (30g)
7

Descrizione

## 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/ &

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Riprodurre la build di ESP32 usando gli entry point di micro_ros_setup create_firmware_ws.sh, configure_firmware.sh e build_firmware.sh, confrontando le esecuzioni con e senza l'argomento menuconfig. Ispezionare esp-idf/main/CMakeFiles/__idf_main.dir/flags.make alla riga 8 e determinare perché menuconfig produce una sintassi make non valida. Il lavoro è completato quando il firmware configurato viene compilato correttamente.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cmake, shell, ubuntu
Ambito
build-system, embedded-iot
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.