Ubuntu 22.04 Jammy Jellyfish LTS breaks USB serial

I have Xubuntu, the XFCE spin. Everything was working before the 22.04 update.

Now the BRLTTY system component disconnects serial USB devices such as Arduino MCUs and BitScope. I entered a bug on Ubuntu Launchpad.

[483304.605719] usb 1-9: Manufacturer: FTDI
[483304.605721] usb 1-9: SerialNumber: A403HPBT
[483304.646081] usbcore: registered new interface driver ftdi_sio
[483304.646103] usbserial: USB Serial support registered for FTDI USB Serial Device
[483304.646186] ftdi_sio 1-9:1.0: FTDI USB Serial Device converter detected
[483304.646226] usb 1-9: Detected FT232RL
[483304.652846] usb 1-9: FTDI USB Serial Device converter now attached to ttyUSB0
	------- BRLTTY? -----------
[483306.626152] usb 1-9: usbfs: interface 0 claimed by ftdi_sio while 'brltty' sets config #1
[483306.637518] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[483306.637550] ftdi_sio 1-9:1.0: device disconnected

Seems like a Braille text reader helper for the blind.

Doing sudo apt remove brltty helps?

After a vacation, I did a fresh install, which includes updates, of Jammy Jellyfish on Xubuntu.

Now the USB works for Adafruit Metro Mini and ESP32-C3. Both of these use /dev/ttyUSB0.

However, I see permission denied for Adafruit M0 (SAMD) which uses /dev/ttyACM0.

Does it need something like a udev rule?

Did you install PIO’s udev rules, added yourself to the dialout group and restarted the system?


If you did, it may be that it does not yet have the USB PID/VIDs for the new boards.

1 Like

Yes, I installed the udev rules but there is only one case for ttyACM and that is specific to Teensy boards.

PIO was working fine until I accepted some Linux updates. Then the USB serial failed on Ubuntu and Manjaro… Perhaps there were kernel changes.

Now it works for some boards, but not all.

When you “for fun” run sudo pio device monitor in the CLI is it able to access the device?

I’ve seen that one before in BluePill stm32f103c8t6 USBSerial issues - #15 by thk.

So I removed the platformio files and reinstalled the latest. Now the Adafruit Feather M0 works with pio.

I find it really tedious to copy and paste from a set web pages. I think it is easier to write an installation script then it is to explain the installation. It should on one page. I wrote a script to automate the install.

# file: pio_install.sh 2022-aug-17
# Xubuntu and such
# dependencies: sudo apt install wget curl for internet files

# remove old pio files to avoid conflicts
rm -vf ~/.local/bin/pio
rm -vf ~/.local/bin/piodebuggdb
rm -vf ~/.local/bin/platformio
rm -rf ~/.platformio

# install the latest pio version
wget https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py -O get-platformio.py && \
    python3 get-platformio.py && \
    mkdir -p ~/.local/bin  && \
    ln -s ~/.platformio/penv/bin/platformio  ~/.local/bin/platformio  && \
    ln -s ~/.platformio/penv/bin/pio         ~/.local/bin/pio  && \
    ln -s ~/.platformio/penv/bin/piodebuggdb ~/.local/bin/piodebuggdb  && \
    curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/master/scripts/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules  && \
    sudo service udev restart  && \
    sudo usermod -a -G dialout $USER  && \
    echo "--- install completed ---" && \
    echo "Logout and Login again to use new profile" && \
    echo "cheers!"
exit 0