-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Description
Description
On Raspberry Pi with kernel 6.12.47, the CDC ACM USB driver fails to properly create device nodes for USB CDC ACM devices (e.g., ArduPilot flight controllers). The driver reports successful registration in kernel logs, but the device node is never actually created, making the devices completely unusable.
Environment
- Kernel Version: 6.12.47+rpt-rpi-v8 var->green.length may be left uninitialized #1 SMP PREEMPT Debian 1:6.12.47-1+rpt1~bookworm (2025-09-16)
- Hardware: Raspberry Pi (aarch64)
- OS: Debian Bookworm
- Affected Device: ArduPilot SpeedyBeeF405WING (USB VID:PID 1209:5741)
Symptoms
-
Kernel logs show device creation:
[ 187.540902] cdc_acm 1-1.3:1.0: ttyACM0: USB ACM device -
/dev/ttyACM0 does not exist:
$ ls /dev/ttyACM* ls: cannot access '/dev/ttyACM*': No such file or directory
-
No sysfs entry is created:
$ find /sys/devices -name 'ttyACM*' # No output - device doesn't exist in sysfs
-
Driver shows as unbound:
$ cat /sys/kernel/debug/usb/devices | grep -A8 'Vendor=1209 ProdID=5741' I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=(none)
-
Device is visible in lsusb:
Bus 001 Device 007: ID 1209:5741 Generic SpeedyBeeF405WING
Steps to Reproduce
- Connect a USB CDC ACM device (e.g., ArduPilot flight controller with VID 1209, PID 5741)
- Check kernel logs:
dmesg | grep ttyACMshows device creation message - Check device node:
ls /dev/ttyACM*shows no device - Check USB debug:
cat /sys/kernel/debug/usb/devicesshows Driver=(none)
Analysis
The cdc_acm driver appears to have a silent failure where:
cdc_acm_probe()reports success and logs device creation- The TTY device is never actually registered with the kernel
- No error messages are generated
- The driver never binds to the USB interface
Manual attempts to bind the driver also fail silently:
$ echo '1-1.3:1.0' | sudo tee /sys/bus/usb/drivers/cdc_acm/bind
# Kernel logs show "ttyACM0: USB ACM device" but device still doesn't existImpact
- All USB CDC ACM devices are completely unusable on kernel 6.12.47
- This affects: ArduPilot/PX4 flight controllers, Arduino boards, 3D printer controllers, and other CDC ACM devices
- Users report this worked fine on earlier kernels (likely 6.6.x)
Related Information
- Multiple users report USB device failures after upgrading from kernel 6.6 to 6.12
- Similar issue reported: Kernel 6.12 makes external USB3 drive disappear. #6755 (USB3 drive disappearance on 6.12)
- Other reports of USB connectivity issues on kernel 6.12
Expected Behavior
The cdc_acm driver should:
- Bind to the USB CDC ACM interface
- Create the /dev/ttyACM0 device node
- Register the device in sysfs at /sys/class/tty/ttyACM0
Workaround
Using a USB-to-Serial adapter (FTDI/CH340) with different drivers works correctly on this kernel.
Request
Please investigate this regression and provide a fix or guidance on downgrading to a working kernel version (6.6.x).