2022年7月17日日曜日

Ubuntu22.04でArduino IDEやPlatformIOからプログラムを書き込む処理はbrlttyと競合するらしい


要約

Ubuntu22.04でArduinoなどに対してプログラムを書き込めない場合は、下記コマンドがを実行してUSBを抜き差しすると、不具合が解消する可能性があります。
sudo apt remove brltty

書き込めない不具合の経緯

PCにUbuntu22.04をインストールしたので、

PlatformIOをインストールし、
sudo apt install -y python3-pip
pip install -U platformio
echo "export PATH=$PATH:$HOME/.local/bin" >> ~/.bashrc

udev rulesを設定し、
sudo apt install -y curl
curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/master/scripts/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules

USBポートが所属するdialoutグループに自身を追加し、
sudo adduser $USER dialout

PlatformIOのプロジェクトをビルドして装置に書き込もうとしたところ、USBポートを特定できないエラーが発生しました。
cd [PlatformIOのプロジェクト]
pio run -t upload
Error: Please specify `upload_port` for environment or use global `--upload-port` option.
For some development platforms it can be a USB flash drive (i.e. /media/<user>/<device name>)
*** [upload] Explicit exit, status 1

装置のUSB接続を抜き差しすると差した後は居るのですが、書き込みコマンドを入力すると消える挙動を確認しました。
ls -la /dev/ttyUSB0
crw-rw-rw- 1 root dialout 188, 0  7月 17 18:22 /dev/ttyUSB0

Arduino IDEでも同様の問題が発生するらしくbrlttyが原因らしい

対応方法を検索して調べたところArduino IDEを利用する場合でも同様に問題が発生しているようでした。

[SOLVED] Tools > Serial Port greyed out in ubuntu 22.04 LTS

それの解決方法の一つとしてbrlttyという点字表示機向けのプログラムの削除が提案されていました。
sudo apt remove brltty

上記コマンドを実行してUSBを抜き差しして試したところ、期待通りにプログラムを書き込めました。

終わり

Ubuntu22.04でPlatformIOを利用したプログラム書き込みができなくて戸惑いましたが、対応方法が分かって良かったです。

参考

[SOLVED] Tools > Serial Port greyed out in ubuntu 22.04 LTS
/dev/ttyUSB0 not present in Ubuntu 22.04

0 件のコメント :