umbrelos-pi4 1.7.x regression: UAS quirk for RTL9210 (0bda:9210) not applied, causes I/O errors and system instability
**Environment:**
- Hardware: Raspberry Pi 4
- Storage: NVMe via RTL9210-based USB 3.0 enclosure (USB ID `0bda:9210`)
- Working version: umbrelOS 1.5.0 (kernel `6.12.47+rpt-rpi-v8`)
- Broken version: umbrelOS 1.7.2 (kernel `6.12.75+rpt-rpi-v8`)
**Description:**
On umbrelOS 1.5.0, the RTL9210 NVMe enclosure works correctly — UAS is not bound to the device and I/O is stable. On umbrelOS 1.7.2, despite `usb-storage.quirks=0bda:9210:u` being present in `cmdline.txt`, the UAS driver binds to the device and causes I/O errors under load.
**On 1.5.0:**
```
$ dmesg | grep uas
usbcore: registered new interface driver uas
```
UAS is registered but does not bind to the device. I/O is stable.
**On 1.7.2:**
```
$ dmesg | grep uas
usbcore: registered new interface driver uas
scsi host0: uas
uas_submit_urbs+0x1e8/0x400
uas_queuecommand+0x10c/0x250
sd 0:0:0:0: [sda] tag#6 cmd submit err -12 uas-tag 12 inflight: s-cmd IN work
sd 0:0:0:0: [sda] tag#0 uas_eh_abort_handler 0 uas-tag 1 inflight: IN
```
UAS binds to the device. I/O errors follow under load:
```
sd 0:0:0:0: [sda] tag#0 UNKNOWN(0x2003) Result: hostbyte=0x07 driverbyte=DRIVER_OK
I/O error, dev sda, sector 3487588816 op 0x0:(READ) flags 0x80700 phys_seg 73 prio class 2
```
**cmdline.txt on 1.7.2:**
```
console=serial0,115200 console=tty1 rootfstype=ext4 fsck.repair=yes rootwait cgroup_enable=memory swapaccount=1 loglevel=3 panic=60 root=PARTUUID=3aee99b8-05 init=/usr/bin/rugpi-ctrl usb-storage.quirks=bda:9210:u
```
Note: the quirk uses `bda:9210` (without leading zero) — this is how it appears in the shipped `cmdline.txt` and may be relevant.
**Impact:**
Any app performing sustained disk I/O will hang. Bitcoin node hangs indefinitely at startup block verification due to blocked reads on the UAS device.
**Steps to reproduce:**
1. Install umbrelOS 1.7.2 on Raspberry Pi 4
2. Attach NVMe drive via RTL9210-based USB 3.0 enclosure
3. Boot and run `dmesg | grep uas` — UAS binds to the device despite the cmdline quirk
4. Observe I/O errors in `dmesg` under load
4 条评论