Compare commits
No commits in common. "fix/preload-uas-module" and "main" have entirely different histories.
fix/preloa
...
main
2 changed files with 0 additions and 71 deletions
|
|
@ -128,42 +128,6 @@ sudo usbguard list-devices
|
||||||
sudo usbguard allow-device <id>
|
sudo usbguard allow-device <id>
|
||||||
```
|
```
|
||||||
|
|
||||||
### Removable storage (UAS preload)
|
|
||||||
|
|
||||||
`veilor-modules-lock.service` flips `kernel.modules_disabled=1` 30s after
|
|
||||||
graphical boot. Any kernel module not loaded by then is permanently blocked
|
|
||||||
for the session. `usb-storage` ships built into the kernel and auto-loads,
|
|
||||||
but `uas` (USB Attached SCSI) is a separate module that the kernel only
|
|
||||||
loads on demand when a UAS-capable USB-SATA bridge appears at boot. If no
|
|
||||||
such device is present at boot, `uas` never loads, the lock engages, and
|
|
||||||
hot-plugging an ASMedia / JMicron / Realtek UAS enclosure later fails — the
|
|
||||||
bridge's interface descriptor advertises both BBB and UAS alt-settings,
|
|
||||||
the kernel prefers UAS, and `usb-storage` stands down expecting `uas` to
|
|
||||||
claim. Result: device authorizes in USBGuard but no `sd*` node appears.
|
|
||||||
|
|
||||||
Fix shipped in overlay: `/etc/modules-load.d/veilor-storage.conf` lists
|
|
||||||
`uas` + `usb-storage` for `systemd-modules-load.service` to preload at
|
|
||||||
boot, before the modules lock engages.
|
|
||||||
|
|
||||||
To verify after install:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
lsmod | grep -E '^uas|^usb_storage' # both should show
|
|
||||||
cat /proc/sys/kernel/modules_disabled # 1 after 30s post-graphical
|
|
||||||
```
|
|
||||||
|
|
||||||
If a future enclosure still fails to bind, the runtime workaround (no
|
|
||||||
reboot) is to force `usb-storage` to claim by quirking UAS off for that
|
|
||||||
vendor:product:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
echo "<vid>:<pid>:u" | sudo tee /sys/module/usb_storage/parameters/quirks
|
|
||||||
sudo bash -c 'echo 0 > /sys/bus/usb/devices/<dev>/authorized; sleep 2; echo 1 > /sys/bus/usb/devices/<dev>/authorized'
|
|
||||||
```
|
|
||||||
|
|
||||||
Persistent quirk for known-bad enclosures: add
|
|
||||||
`usb-storage.quirks=<vid>:<pid>:u` to the kernel cmdline.
|
|
||||||
|
|
||||||
## Disabled services
|
## Disabled services
|
||||||
|
|
||||||
`abrt*`, `cups`, `cups-browsed`, `geoclue`, `avahi-daemon`,
|
`abrt*`, `cups`, `cups-browsed`, `geoclue`, `avahi-daemon`,
|
||||||
|
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
# veilor-os — preload USB mass-storage drivers at boot.
|
|
||||||
#
|
|
||||||
# Why this exists:
|
|
||||||
# veilor-modules-lock.service sets kernel.modules_disabled=1 about 30s
|
|
||||||
# after graphical.target. Any module not loaded by then is permanently
|
|
||||||
# blocked for the rest of the session. usb-storage is built into the
|
|
||||||
# default Fedora kernel image and auto-loads at boot, but uas is a
|
|
||||||
# separate module that the kernel only loads on demand when a UAS-
|
|
||||||
# capable USB-SATA bridge is enumerated. If no such device is present
|
|
||||||
# at boot, uas never loads, the lock engages, and any later hot-plug
|
|
||||||
# of an ASMedia / JMicron / Realtek UAS bridge (e.g. 174c:55aa,
|
|
||||||
# 152d:*, 0bc2:*) fails:
|
|
||||||
#
|
|
||||||
# usb 7-1: Device is not authorized for usage
|
|
||||||
# modprobe: ERROR: could not insert 'uas': Operation not permitted
|
|
||||||
#
|
|
||||||
# The interface descriptor on these enclosures advertises both BBB
|
|
||||||
# (bulk-only, 08:06:50) and UAS (08:06:62) alt-settings. Kernel
|
|
||||||
# prefers UAS, so usb-storage stands down expecting uas to claim.
|
|
||||||
# Without uas loaded, neither driver binds and the block device
|
|
||||||
# never appears.
|
|
||||||
#
|
|
||||||
# Fix:
|
|
||||||
# Preload uas (and usb-storage as belt+braces) via systemd-modules-
|
|
||||||
# load.service at boot, before veilor-modules-lock runs. Both modules
|
|
||||||
# are then resident and can bind hot-plugged devices for the entire
|
|
||||||
# session.
|
|
||||||
#
|
|
||||||
# Incident: 2026-05-13, onyx, SK Hynix SC311 in ASMT105x enclosure.
|
|
||||||
# References:
|
|
||||||
# - usb-storage(4), systemd-modules-load.service(8)
|
|
||||||
# - /etc/systemd/system/veilor-modules-lock.service
|
|
||||||
|
|
||||||
uas
|
|
||||||
usb-storage
|
|
||||||
Loading…
Reference in a new issue