fix(overlay): preload uas so UAS enclosures bind post-modules-lock #13
Open
s8n
wants to merge 1 commit from
fix/preload-uas-module into main
pull from: fix/preload-uas-module
merge into: veilor-org:main
veilor-org:main
veilor-org:feat/cpu-io-slice-isolation
veilor-org:feat/memory-pressure-tuning
veilor-org:v0.7-bluebuild-spike
veilor-org:backup/pre-rename-2026-05-07/v0.7-bluebuild-spike
veilor-org:backup/pre-rename-2026-05-07/main
veilor-org:backup/pre-rename-2026-05-07/feat/runner-fix-node20-pinning
veilor-org:feat/runner-fix-node20-pinning
veilor-org:backup/pre-rename-2026-05-07/feat/a1-forgejo-ci-adapt
veilor-org:feat/a1-forgejo-ci-adapt
veilor-org:backup/pre-rename-2026-05-07/feat/sec-apparmor-v06-stubs
veilor-org:feat/sec-apparmor-v06-stubs
veilor-org:backup/pre-rename-2026-05-07/feat/sec-threat-model-polish
veilor-org:feat/sec-threat-model-polish
veilor-org:backup/pre-rename-2026-05-07/feat/runner-fix-docker-sock-and-node20
veilor-org:feat/runner-fix-docker-sock-and-node20
veilor-org:backup/pre-rename-2026-05-07/feat/sre-cosign-sbom-attestation
veilor-org:feat/sre-cosign-sbom-attestation
veilor-org:backup/pre-rename-2026-05-07/feat/docs-test-run-v0.5.32
veilor-org:feat/docs-test-run-v0.5.32
veilor-org:backup/pre-rename-2026-05-07/feat/docs-method-changelog-forgejo
veilor-org:backup/pre-rename-2026-05-07/feat/ux-installer-v06-polish
veilor-org:feat/docs-method-changelog-forgejo
veilor-org:feat/ux-installer-v06-polish
veilor-org:backup/pre-rename-2026-05-07/feat/a1-bluebuild-pin
veilor-org:feat/a1-bluebuild-pin
veilor-org:backup/pre-rename-2026-05-07/feat/docs-readme-forgejo
veilor-org:feat/docs-readme-forgejo
veilor-org:backup/pre-rename-2026-05-07/feat/build-auto-install-test
veilor-org:feat/build-auto-install-test
veilor-org:backup/pre-rename-2026-05-07/feat/ux-installer-gum-v051
veilor-org:feat/ux-installer-gum-v051
veilor-org:backup/pre-rename-2026-05-07/feat/build-v05-gum-graft
veilor-org:feat/build-v05-gum-graft
veilor-org:backup/pre-rename-2026-05-07/worktree-agent-a58570fcad8267774
veilor-org:worktree-agent-a58570fcad8267774
veilor-org:backup/pre-rename-2026-05-07/feat/build-v06-cli-tools
veilor-org:feat/build-v06-cli-tools
veilor-org:backup/pre-rename-2026-05-07/feat/sre-fix-shellcheck-tuned
veilor-org:feat/sre-fix-shellcheck-tuned
veilor-org:backup/pre-rename-2026-05-07/feat/build-v03-wiring
veilor-org:feat/build-v03-wiring
veilor-org:backup/pre-rename-2026-05-07/worktree-agent-a26f5b1b693c96469
veilor-org:backup/pre-rename-2026-05-07/worktree-agent-a771d00c8c021d106
veilor-org:backup/pre-rename-2026-05-07/worktree-agent-acca710603573e9d0
veilor-org:worktree-agent-a26f5b1b693c96469
veilor-org:worktree-agent-a771d00c8c021d106
veilor-org:worktree-agent-acca710603573e9d0
veilor-org:backup/pre-rename-2026-05-07/feat/ux-installer-assets
veilor-org:feat/ux-installer-assets
veilor-org:backup/pre-rename-2026-05-07/feat/sre-fix-brand-lint
veilor-org:feat/sre-fix-brand-lint
veilor-org:backup/pre-rename-2026-05-07/worktree-agent-a58c74edcfad211cb
veilor-org:backup/pre-rename-2026-05-07/worktree-agent-ad14237bc3b7986eb
veilor-org:worktree-agent-a58c74edcfad211cb
veilor-org:worktree-agent-ad14237bc3b7986eb
veilor-org:backup/pre-rename-2026-05-07/worktree-agent-a29df459f63568ed8
veilor-org:worktree-agent-a29df459f63568ed8
veilor-org:backup/pre-rename-2026-05-07/worktree-agent-aeb7695cc1b294236
veilor-org:worktree-agent-aeb7695cc1b294236
veilor-org:backup/pre-rename-2026-05-07/worktree-agent-a0b3704687c5d0876
veilor-org:worktree-agent-a0b3704687c5d0876
veilor-org:backup/pre-rename-2026-05-07/feat/sre-release-signing
veilor-org:feat/sre-release-signing
veilor-org:backup/pre-rename-2026-05-07/worktree-agent-a304f853c4ef28acc
veilor-org:backup/pre-rename-2026-05-07/worktree-agent-a889fae99e2c827e4
veilor-org:worktree-agent-a304f853c4ef28acc
veilor-org:worktree-agent-a889fae99e2c827e4
No reviewers
Labels
Clear labels
No items
No labels
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference: veilor-org/veilor-os#13
Reference in a new issue
No description provided.
Delete branch "fix/preload-uas-module"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
veilor-modules-lock.servicesetskernel.modules_disabled=1~30s aftergraphical.target.uasis not built into the kernel image and only loads on demand when a UAS-capable USB-SATA bridge appears at boot. If no such device is present at boot,uasnever loads, the lock engages, and any later hot-plug of an ASMedia / JMicron / Realtek UAS bridge fails:The enclosures interface descriptor advertises both BBB (
08:06:50) and UAS (08:06:62) alt-settings. Kernel prefers UAS, sousb-storagestands down expectinguasto claim. Result: device authorizes in USBGuard, nosd*node appears, drive unreachable.Reproduced 2026-05-13 on onyx with SK Hynix SC311 1TB in an ASMT105x (
174c:55aa) enclosure during a VeraCrypt recovery session.Fix
Ship
/etc/modules-load.d/veilor-storage.confvia the overlay, listinguasandusb-storage.systemd-modules-load.serviceruns at boot, beforeveilor-modules-lock, so both modules are resident for the entire session and can bind hot-plugged devices freely.Files
overlay/etc/modules-load.d/veilor-storage.conf(new) — preload list with explanatory comment blockdocs/HARDENING.md— new "Removable storage (UAS preload)" subsection under USB with verification + runtime quirks fallback for future bad enclosuresTest plan
lsmod | grep -E ^uas|^usb_storage→ both presentcat /proc/sys/kernel/modules_disabled→1sd*enumerates without manual quirkOut of scope (follow-up)
docs/HARDENING.mdsays USBGuard ships with "empty allowlist" butoverlay/etc/usbguard/rules.confactually carries a HID allow rule. Doc drift, separate PR.usbguard generate-policyis documented as a manual first-boot step but not invoked byveilor-firstboot. Could be automated post-pw-set so new installs arent left with bare HID allowlist + everything else blocked.View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.