🔖

Ubuntuで、Arduino IDEからデバイスのPortが見えなくなったのを直した

2022/12/31に公開

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

参考

https://forum.arduino.cc/t/no-ttyusb0-on-ubuntu-studio-22-04/987522/2

パーミッションを設定する

たとえば、/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