bos-nvidia-setup installs a package Arch replaced, with no GPU check #32
Labels
No labels
P0
P1
P2
P3
audio
bakery
boot
breadbug
bug
build
ci
dependencies
design
disk
docs
encryption
final
firewall
graphics
hardware
idle
installer
keybinds
nvidia
packages
phase-1
polish
recovery
reliability
reproducibility
secure-boot
security
shell
signing
snapshots
supply-chain
swap
tech-debt
theming
ux
website
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Breadway/bos#32
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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
Line 124 runs
pacman -S nvidia nvidia-utils. In December 2025 Arch switched the main driver to the open kernel modules (nvidia-open) with driver 590, which also dropped Pascal (GTX 10-series) and older cards. The script doesn't detect the GPU generation, so on those cards it installs a driver that doesn't support them.Where
iso/airootfs/usr/local/bin/bos-nvidia-setup(install block around line 120). Alsobos-first-boot(it writes the offer JSON).Fix
lspci -d 10de: -nn) and classify it: Turing or newer:nvidia-open nvidia-utils; Pascal/Maxwell: refuse with a clear message pointing at thenvidia-580xxAUR packages (or install them via yay after a confirmation); older: unsupported.nvidia-openvsnvidia-open-dkmsbased on the installed kernels (linuxonly vs any other kernel; the latter also needs headers). Interacts with the fallback-kernel issue (BOS-33).nvidia-offer.jsonso Settings can show it.Acceptance
Dry-run mode (
--dry-run) prints the right package set for given mocked device IDs, and the real install works on a Turing+ card.Source: BOS v0.6.2 source review (tag dated 2026-09-19); line numbers refer to that tree. Read AGENTS.md first. One issue per branch/PR, match existing style. Add a CHANGELOG
[Unreleased]entry.Blocked before implementation: the available local BOS checkout only contains stale
mainataeb3c77222e85e6199384b16dd984ece01d4cc03; Forgejo currently reportsmainat67593d5887301a933170b5d0bbf4c0ba1149ecf4. Fetching currentmainfromssh://git@100.66.238.26:2222/Breadway/bos.gitfails in this environment withsocket: Operation not permitted/ssh: connect ...: failure. I did not modify the shared BOS-26 checkout or create a branch from stale trunk. Please retry when network access to Forgejo is available.Retry blocker: the saved Forgejo Tailscale URL is
ssh://git@100.66.238.26:2222/Breadway/bos.git, but direct fetch fails withsocket: Operation not permittedandssh: connect ...: failure. This shell also reportsfailed to connect to local tailscaled, and direct HTTPS cannot resolvegit.breadway.dev. I cannot obtain currentmainor push from this environment, so no code or branch changes were made.Retry still blocked: current shell has no running
tailscaled, andgit ls-remote ssh://git@100.66.238.26:2222/Breadway/bos.git refs/heads/mainfails withsocket: Operation not permittedandssh: connect ...: failure. The only localmainis stale, so I did not create a branch from it. No implementation changes were made.#76
Implemented exact PCI ID classification, open vs DKMS/header selection, safe dry-run JSON plan, and firstboot driver_plan recording. Actual CLI tests cover supported, legacy, old/unknown/mixed IDs, linux/LTS/zen and mock override rejection. Shell syntax and diff checks pass. Real Turing+ installation remains hardware acceptance for review; no host configs, packages or desktop were changed.
Independent review at
98c83a02d8found a firstboot integration defect: two NVIDIA display devices produce multiline lspci output, but json_escape does not encode newline characters. The resulting nvidia-offer.json is invalid JSON, making the newly required driver_plan unreadable. Reproduced the actual firstboot script with an isolated temporary HOME/state directory and stubs for all desktop probes and notifications. Fix the string serialization and add a safe firstboot test with multiple GPU lines.The CLI tests pass, and every 292 current and 160 legacy PCI ID matches its pinned official NVIDIA supported-products table. Hardware installation remains outstanding. No CI statuses are configured. Returning to TODO for this fix while keeping the PR open.
PR: #76
Independent source and safe integration review PASS at
df298c2a4b. The previously reported multiline PCI JSON defect is fixed. Independently ran the actual CLI and firstboot integration tests: two supported cards and mixed current/legacy cards produce parseable offer JSON with the expected driver_plan, preserving newline, quote, backslash and tab characters. Earlier independent comparison verified all 292 current and 160 legacy IDs exactly match the pinned official NVIDIA tables. Linux-only and DKMS/header selection, mock override rejection, shell syntax and diff checks pass. No configured CI statuses. Real Turing+ driver installation remains outstanding hardware acceptance; this review does not claim physical hardware was tested.PR: #76