You are not logged in.
Hi, I have updated my Archlinux along with all other packages. After updating the package brltty to version 6.4-1, my arduino boards (both nano and uno, cloned CH340 chip) are not working. lsusb detects them but I can't see /dev/ttyUSBn devices anymore. The Arduino IDE also not detecting the boards.
Downgrading kernel didn't help. But downgrading brltty to 6.3-4 helped.
Current Kernel Info:
$ cat /proc/version
Linux version 5.14.7-xanmod1-cacule-1-edge (souravgoswami@archlinux) (clang version 12.0.1, LLD 12.0.1) #1 SMP PREEMPT Sun, 26 Sep 2021 08:15:11 +0000
Also tried kernel 5.14.2.
Last edited by Sourav (2021-09-27 22:18:16)
Offline
This has been a pretty frequent error recently.
If you don't need braille tty support, you can mask the udev rules for brltty using the instructions from this answer: https://unix.stackexchange.com/a/670637
Offline
I don't need Braille TTY support. And the package was installed by Qemu, which I don't need anymore. So after uninstalling brltty, the problem is gone.
Also the given solution on unix.stackexchange should work fine, but not sure if it breaks qemu.
Offline
I had the same issue with a clone Mega+wifi board and managed to get brltty to ignore my specific device (as I can't remove brltty completely as I do need to use QEMU).
The flag for me was in the dmesg output:
kernel: usb 3-2: new full-speed USB device number 10 using xhci_hcd
kernel: usb 3-2: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.54
kernel: usb 3-2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
kernel: usb 3-2: Product: USB2.0-Ser!
kernel: ch341 3-2:1.0: ch341-uart converter detected
kernel: ch341-uart ttyUSB0: break control not supported, using simulated break
kernel: usb 3-2: ch341-uart converter now attached to ttyUSB0
kernel: usb 3-2: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1 <-- This is the offending item
kernel: ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
kernel: ch341 3-2:1.0: device disconnected
brltty has a rule for "idVendor=1a86, idProduct=7523" which is the same as the CH340 serial converter on my Mega clone.
You can see your device id by using "lsusb" to get a list of your devices (unplug your arduino, run lsusb then plug in your arduino and run lsusb again to see which device appears).
In my case:
Bus 003 Device 005: ID 1a86:7523 QinHeng Electronics CH340 serial converter
Take a note of the ID and then open the brltty rules file:
"sudo nano /usr/lib/udev/rules.d/90-brltty-device.rules"
Search through the file until you find the entry for your ID:
# Device: 1A86:7523
# Baum [NLS eReader Zoomax (20 cells)]
ENV{PRODUCT}=="1a86/7523/*", ENV{BRLTTY_BRAILLE_DRIVER}="bm", GOTO="brltty_usb_run"
Now comment out the line:
# Device: 1A86:7523
# Baum [NLS eReader Zoomax (20 cells)]
# ENV{PRODUCT}=="1a86/7523/*", ENV{BRLTTY_BRAILLE_DRIVER}="bm", GOTO="brltty_usb_run"
Save and close the file then reboot.
After the reboot the /dev/ttyUSB0 port was available again in the Arduino IDE.
Offline
Hey @blackisle, I came across your post here: https://unix.stackexchange.com/question … 547#680547, and it's very helpful!
Two improvements:
- It's best not to modify system files in /usr/ since they will be overwritten upon package updates. Only Pacman should ever modify that part of the system. Instead, you can copy /usr/lib/udev/rules.d/90-brltty-device.rules into /etc/udev/rules.d/ and modify it there!
- you can use sudo udevadm control --reload-rules to reload the rules without a reboot if you'd like.
Offline