🔖
Ubuntuで、Arduino IDEからデバイスのPortが見えなくなったのを直した
Weimo D1 R32というesp32が使えるデバイスで、USBをPCに差しても認識されなくなりました。(1年くらい間があいていて、その間にUbuntu16.04から22.04にクリーンインストールしてます)
結論
これで直りました。/dev/ttyUSB0
が見えるようになりました。
sudo apt-get remove brltty
(追記:パーミッションの問題は下に書きました)
状況
- Weimo D1 R32をUbuntu機に差してもUSBのポートがIDEで出てこない
- そのまま実行すると出るエラーは
A fatal error occurred: Could not open /dev/ttyUSB0, the port doesn't exist
というもの - 過去には使えていた機材でやっている
- 他のデバイス(Arduino、M5Stack)では認識される
確認
これで確認して、
sudo dmesg -c
USBを差したり外したりした記録が出ますが、brltty
が何やらやっているようです。
[83227.070679] usb 1-2: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.54
[83227.070693] usb 1-2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[83227.070699] usb 1-2: Product: USB2.0-Serial
[83227.072948] ch341 1-2:1.0: ch341-uart converter detected
[83227.074222] usb 1-2: ch341-uart converter now attached to ttyUSB0
[83227.653365] input: BRLTTY 6.4 Linux Screen Driver Keyboard as /devices/virtual/input/input68
[83227.769895] usb 1-2: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[83227.770478] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[83227.770495] ch341 1-2:1.0: device disconnected
参考
パーミッションを設定する
たとえば、/dev/ttyACM0
のパーミッションがおかしいときの確認(/dev/ttyUSB0
も同様)
ll /dev/ttyACM*
crw-rw---- 1 root dialout 166, 0 Dec 30 21:13 /dev/ttyACM0
chmod
ユーザーに権限を与える
sudo chmod a+rw /dev/ttyACM0
crw-rw-rw- 1 root dialout 166, 0 Dec 30 21:13 /dev/ttyACM0
(AruinoなどのUSBを抜き差しするとリセットされる場合がある)
ユーザーをグループdialoutに入れる
dialout にはrw が元から与えられているので、ユーザーをここに入れます。
usermod -a -G dialout username
確認は
groups username
Discussion