えいあーるれいの技術日記

ROS2やM5 Stack、Ubuntuについて書いています

Ubuntu22でM5Stackなどのデバイスと接続ができない場合

マイコンのプログラム開発・実行する環境がUbuntu-desktop上だと、22.04-Desktopで初期設定した後、なぜか/dev/ttyUSB0に認識されない問題が発生します。

正確には、「差した直後は認識されるけどすぐ消える」状態です。

マイコン開発はWindowsMacでもできなくは無いですが、元々Ubuntuを普段使いしている勢からすれば大変な問題です。


原因:点字ディスプレイドライバ「brltty」との競合

これは、M5Stackシリーズのシリアル変換チップに対してUbuntu22側が勝手に点字キーボードドライバと認識しているからです。


Ubuntu22-desktopは、新しいアクセシビリティツールとして点字ディスプレイをデフォルトでサポートするようになりました。

点字ディスプレイとは、以下の情報を点字を用いて知らせるものです。

  • 文字情報
  • カーソル位置(一部機種)


このアップデートはさらに多くの人を受け入れる非常に良いものですが、M5Stackなどのシリアル変換モジュールも勝手に認識されてしまい、普段の開発では邪魔になってしまいます。

これについて少し調べたところ、その解決策が載っているものを見つけました。

askubuntu.com

どうやら/usr/lib/udev/rules.d/85-brltty.rulesがFTDIチップを自動的にデバイス点字ディスプレイとして認識させているようで、そのルールを無効化すればよさそうです。

serialとして認識されるルールは60番なので、時間差で上書きしているのでしょうか?

確か、ルールが競合した場合はソート後の最も後のルールが適用されたはずです。


解決策

点字ディスプレイを使用しない場合はアンインストールすれば良いです。残す場合は、85-brltty.rulesの一部分をコメントアウトするといいです。(上のaskubuntu.comの最初の回答より)

# アンインストール
sudo apt remove brltty

USBデバイスをもう一度差し直すと認識されるようになります。