はじめに
usb シリアル変換器(FTDI)を繋げてATmega328pに書き込みをしようとしたが、すぐにデバイスが消えてしまう。 USBに接続した直後数分間はシリアル変換器を認識しているのだが、その後消えてしまうのだ。 困った。
ちなみに、使っているシリアル変換機はこれ。秋月で買ったよ。 akizukidenshi.com
permissionの問題か?
Linuxでシリアル変換器を使うときに、一番最初にぶち当たる問題はpermissonだろう。 Arduini IDEでシリアルモニターを開くときにエラーとなる。 そこでまずはpermissionを変更しておこう。シリアル変換器を接続して認識している間に実行してしまう。
$sudo chmod 666 /dev/ttyUSB0
だが、権限を変えても問題は解決しなかった。デバイスが消えてしまうのは権限の問題ではなさそう。
brlttyを削除する
しょうがないので、ちゃんと調べてみる。以下のコマンドを実行してシリアル変換器が認識されてから認識されなくなるまでの状態を見てみる。
$cat /sys/bus/usb-serial/drivers/ftdi_sio/new_id
brlttyがなにかを実行した後に、/dev/ttyUSB0がdisconnecte になっている。 brlttyが悪さをしているみたいだ。
brlttyってそもそもなんだ
点字を表示するためのアプリみたい。 brltty.app
BRLTTY is a background process (daemon) which provides access to the Linux/Unix console (when in text mode) for a blind person using a refreshable braille display.
refreshable braille displayはこんな↓デバイスだそう。知らなかった。 まあ私は使わないので、brlttyの設定変更や削除をしても問題はなさそう。
まずは設定を変更
brlttyの設定ファイルを編集して
sudo vim /usr/lib/udev/rules.d/85-brltty.rules
以下をコメント化してみる。
ENV{PRODUCT}=="1a86/7523/*", ENV{BRLTTY_BRAILLE_DRIVER}="bm", GOTO="brltty_usb_run"
再起動して設定を反映させる。
$sudo reboot now
だが、問題は解決せず。シリアル変換器を接続後数分で認識が消えてしまう。やはりアンインストールするしかなさそう。
remove brltty
以下のコマンドを実行してbrlttyを削除してみる。
$sudo apt-get remove brltty
削除したらしっかり認識されるようになった。
<参考文献>
Ubuntu 22.04 で USB-シリアル (/dev/ttyUSB0) が認識されない問題の対応
FTDIのUSB-RS232変換器を認識しない:半歩先:SSブログ
drivers - /dev/ttyUSB0 not present in Ubuntu 22.04 - Ask Ubuntu