LoginSignup
8
5

More than 3 years have passed since last update.

Big Surにしたら、ArduinoでESP32が動かなくなったので対応した(ValueError: dlsym(RTLD_DEFAULT, kIOMasterPortDefault): symbol not found Failed to execute script esptool)

Last updated at Posted at 2020-12-12

はじめに

Big Surにしたら、ArduinoでESP32が動かなくなった。ぐぬぬ。

環境

MacOS: Big Sur
Arduino: 1.8.13
ESP32: M5StickC

エラー

こんなエラーがでる。

Traceback (most recent call last):
  File "esptool.py", line 57, in <module>
  File "/Library/Python/2.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module
  File "serial/tools/list_ports.py", line 29, in <module>
  File "/Library/Python/2.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module
  File "serial/tools/list_ports_posix.py", line 31, in <module>
  File "/Library/Python/2.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module
  File "serial/tools/list_ports_osx.py", line 32, in <module>
ValueError: dlsym(RTLD_DEFAULT, kIOMasterPortDefault): symbol not found
Failed to execute script esptool
exit status 255
/Applications/Arduino.app/Contents/Java/arduino-builder returned 255
Error compiling for board M5Stick-C.

Screen Shot 2020-12-12 at 21.17.14.png

調査

ここ2つがこのissueについて議論してるところっぽい。
すでに解決してそう。

MacOS Big Sur dlsym(RTLD_DEFAULT, kIOMasterPortDefault): symbol not found (ESPTOOL-82) · Issue #540 · espressif/esptool

esptool fails on MacOS Big Sur preview: Failure to import serial.tools.list_ports · Issue #509 · pyserial/pyserial

解決策

ここに、それっぽい解決方法が書かれてるのでためしてみる。

ここらのコマンドを実行した。
Pythonを入れ直して、esptool.pyを最新のとってきてるだけかな。

~ ❯❯❯ sudo rm -rf /Library/Developer/CommandLineTools                      ✘ 1 
~ ❯❯❯ sudo xcode-select --install
~/L/A/p/e/tools ❯❯❯ brew install --build-from-source python            
~/L/A/p/e/tools ❯❯❯ cd ~/Library/Arduino15/packages/esp32/tools/esptool_py
~/L/A/p/e/tools ❯❯❯ mv esptool esptool.old                                
~/L/A/p/e/tools ❯❯❯ mv ~/Downloads/esptool.py ./                          
~/L/A/p/e/tools ❯❯❯ chmod + esptool                           

pythonはここにインストールされたっぽい。シンボリックリンクみたいやけど。

~/L/A/p/e/t/e/2.6.1 ❯❯❯ which python3
/usr/local/bin/python3
~/L/A/p/e/t/e/2.6.1 ❯❯❯ python3 --version
Python 3.9.0

esptoolの最初の一行を以下のように変更する。

#!/usr/local/bin/python3                                                        

確認

それでも、なぜかうまくいかなかったりした。
Arduinoを再起動したり、Boardを選び直したりして、コンパイルを何度かしたらいけた。
再現性があるか謎。

いけたときのログはこんな感じ。

Sketch uses 214433 bytes (16%) of program storage space. Maximum is 1310720 bytes.
Global variables use 15436 bytes (4%) of dynamic memory, leaving 312244 bytes for local variables. Maximum is 327680 bytes.

Exampleを書き込んで動くことを確認した。
よかったよかった。

おわりに

Big Surにして、しばらく大丈夫やったけど、トラップがあった。
まあ、解決してそうでよかった。

追記

先人がいた。
python入れ直さなくてよかった疑惑・・・。

macOS Big SurでArduino IDEからESP32の書き込みができない件 - Qiita

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5