diff options
Diffstat (limited to 'todo.org')
| -rw-r--r-- | todo.org | 160 |
1 files changed, 98 insertions, 62 deletions
@@ -46,69 +46,42 @@ below): input-side-spec.org (DRAFT, four decisions open). * Archsetup Open Work -** DONE [#B] Ship the Framework 13 AMD internal-mic workaround in the installer :bug:velox:audio:solo: -CLOSED: [2026-10-06 Tue] -:PROPERTIES: -:CREATED: [2026-10-06 Tue] -:LAST_REVIEWED: 2026-10-06 -:END: -Shipped 2026-10-06 as archsetup commit =5189b7c=. =configure_framework_amd_internal_mic= runs in -=desktop_environment= right after the pipewire/wireplumber package loop, -gated by =is_framework_13_ryzen_ai_300= (DMI: vendor Framework, product_name -carrying "Laptop 13" and "AMD Ryzen AI 300"; ratio's "AI Max 300", the Intel -13, the 7040 13, and the 16 all miss). It installs -=configs/wireplumber/50-disable-ucm.conf= with =install -Dm644=. The shipped -file matches the PDM card by name pattern (=~alsa_card.pci-.*-platform-acp-pdm-mach=) -rather than the one PCI path home's hand-written version pinned, so a -renumbered bus on the same board is still caught; the live velox file was -replaced with the shipped one and wireplumber restarted, with the card set and -default source unchanged. The audio failure taxonomy gained the bug's row and -a Cluster 5 note so the doctor's use-ucm remedy treats the drop-in as the fix, -not an offending config. No wireplumber restart from the installer -(no user session bus during install), so it applies at the next wireplumber -start. Fixture test: =tests/installer-steps/test_configure_framework_amd_internal_mic.py=, -17 cases across the gate and the step; full =make test-unit= green, 57 -suites. Verified live: the gate fires on velox's real DMI, the step's output -matches the live file byte for byte, the default source is the analog-stereo -one, and a 4 s capture with the source briefly unmuted settled at rms about -0.05 (room noise at +30 dB capture gain) after a 0.6 s unmute transient, not -the 0.99999 rail. The source was muted at the PipeWire level before and -after; that state was restored. -From home's 2026-10-06 handoff, verified live the same morning. On velox -(Framework 13, Ryzen AI 9 HX 370, linux-lts 6.18.55, BIOS 04.02) the internal -microphone was dead in every app. Root cause is a known upstream kernel bug in -the AMD ACP PDM digital-mic path on the Ryzen AI 300 Framework 13: the DMIC -card (=acp-pdm-mach=, =hw:acppdmmach=) emits a constant full-scale rail (rms -0.99999) instead of audio, and with UCM on PipeWire exposes only that broken -DMIC as the internal mic (Framework community threads 81866 and 75748). -Workaround home applied by hand, now live on velox: -=/etc/wireplumber/wireplumber.conf.d/50-disable-ucm.conf= sets -=monitor.alsa.properties { alsa.use-ucm = false }= and a =monitor.alsa.rules= -entry with =device.disabled = true= for -=alsa_card.pci-0000_c1_00.5-platform-acp-pdm-mach=, then =systemctl --user -restart wireplumber=. The ALC285 falls back to its analog-stereo profile whose -Internal Microphone pin (0x12) carries real audio; the default source is -=alsa_input.pci-0000_c1_00.6.analog-stereo=, port =analog-input-internal-mic=, -with the source volume lowered because the analog path stacks +30 dB capture -on +30 dB boost. Revert: delete the file and restart wireplumber. - -What the installer needs: write that drop-in on this hardware only (gate on -the =acp-pdm-mach= card or the Framework 13 AMD board id, not on the -hostname), beside the existing pipewire/wireplumber package install, with a -fixture test in the installer-steps suite. The live file on velox is the -reference content. The audio failure taxonomy already lists =use-ucm= both -ways as an audio-doctor AUTO remedy -([[file:docs/design/2026-07-10-audio-failure-taxonomy.org][docs/design/2026-07-10-audio-failure-taxonomy.org]]), so the -doctor's remedy and this drop-in should agree. The standing re-check after -each kernel update (remove the drop-in once the upstream fix lands, UCM back -on) lives in velox's machine notes, the KB node "velox's internal mic needs -UCM off and the ACP PDM card disabled until the AMD digital-mic kernel bug is -fixed", linked from the velox hardware node's neighbourhood, not in this -one-shot task. - -Verify: =pactl get-default-source= names the analog-stereo source, and a -short =arecord= of the internal mic has an rms well below 0.99. +** TODO [#C] Settings-panel brightness drum skips digits from x5 levels :bug:dotfiles:solo: +:PROPERTIES: +:CREATED: [2026-10-07 Wed] +:LAST_REVIEWED: 2026-10-07 +:END: +Found 2026-10-06 while investigating Craig's report that the desktop-settings +panel will not take 60 percent. Confirmed defect in +=~/.dotfiles/settings/src/settings/=: =bench.drum_of= uses Python's =round()=, +which rounds halves to even, and =gui._commit_drums= applies a drag only when +the dragged digit differs from =drum_of(live percent)=. At a live level of 55 +or 65 percent (the XF86 keys step by 10 from the 5 percent floor, so x5 levels +are normal) the drum already reads 6, a drag to 6 is a no-op, and 60 is +unreachable without passing through 5 or 7 first. Same at 35 and 45, which +both read 4. The backend is fine: =brightness.set_percent(60)= read back 60 +live on velox, the sysfs file is the udev rule's root:video 664, and the keys +work. + +Grading: Minor severity (a specific level can't be hit from the panel; a +detour through the next digit works) x some users sometimes (only from an x5 +level) = P3 = [#C]. + +Fix: in =_commit_drums=, compare =bench.percent_of(screen)= against the live +percent rather than digit against digit (or round half up in =drum_of=; the +comparison fix is the smaller change and keeps the display honest). Unit +tests live in =~/.dotfiles/tests/settings/= (=test_presenters.py= has the +drum-rounding cases). Per the archsetup-owns-dotfiles rule, make the change +from here, run the settings tests, commit and push dotfiles, and drop a note +in =~/.dotfiles/inbox/=. + +Not the same thing: the screen reading 10 percent all afternoon on 2026-10-06 +was hypridle's 60 s dim stage (=brightnessctl -s set 10%= with =-r= on resume; +the saved pre-dim level in =/run/user/1000/brightnessctl/= was 100 percent). +*** VERIFY What does the panel do on a drag to 6: no movement, lands on 6 with no screen change, or snaps back? +If it lands on 6 with no change, the rounding defect above is the cause and +the fix can go in as written. ** TODO [#B] calendar-sync fails headless after every boot until authinfo is unlocked :bug:dotfiles:gpg: :PROPERTIES: @@ -5846,3 +5819,66 @@ has passed. Where each of the seven items went: Next Session Focus. 7. The orchestrator sequence-pin gap → filed 2026-09-17 as [#C] Orchestrator sequence pin misses an added step. +** DONE [#B] Ship the Framework 13 AMD internal-mic workaround in the installer :bug:velox:audio:solo: +CLOSED: [2026-10-06 Tue] +:PROPERTIES: +:CREATED: [2026-10-06 Tue] +:LAST_REVIEWED: 2026-10-06 +:END: +Shipped 2026-10-06 as archsetup commit =5189b7c=. =configure_framework_amd_internal_mic= runs in +=desktop_environment= right after the pipewire/wireplumber package loop, +gated by =is_framework_13_ryzen_ai_300= (DMI: vendor Framework, product_name +carrying "Laptop 13" and "AMD Ryzen AI 300"; ratio's "AI Max 300", the Intel +13, the 7040 13, and the 16 all miss). It installs +=configs/wireplumber/50-disable-ucm.conf= with =install -Dm644=. The shipped +file matches the PDM card by name pattern (=~alsa_card.pci-.*-platform-acp-pdm-mach=) +rather than the one PCI path home's hand-written version pinned, so a +renumbered bus on the same board is still caught; the live velox file was +replaced with the shipped one and wireplumber restarted, with the card set and +default source unchanged. The audio failure taxonomy gained the bug's row and +a Cluster 5 note so the doctor's use-ucm remedy treats the drop-in as the fix, +not an offending config. No wireplumber restart from the installer +(no user session bus during install), so it applies at the next wireplumber +start. Fixture test: =tests/installer-steps/test_configure_framework_amd_internal_mic.py=, +17 cases across the gate and the step; full =make test-unit= green, 57 +suites. Verified live: the gate fires on velox's real DMI, the step's output +matches the live file byte for byte, the default source is the analog-stereo +one, and a 4 s capture with the source briefly unmuted settled at rms about +0.05 (room noise at +30 dB capture gain) after a 0.6 s unmute transient, not +the 0.99999 rail. The source was muted at the PipeWire level before and +after; that state was restored. +From home's 2026-10-06 handoff, verified live the same morning. On velox +(Framework 13, Ryzen AI 9 HX 370, linux-lts 6.18.55, BIOS 04.02) the internal +microphone was dead in every app. Root cause is a known upstream kernel bug in +the AMD ACP PDM digital-mic path on the Ryzen AI 300 Framework 13: the DMIC +card (=acp-pdm-mach=, =hw:acppdmmach=) emits a constant full-scale rail (rms +0.99999) instead of audio, and with UCM on PipeWire exposes only that broken +DMIC as the internal mic (Framework community threads 81866 and 75748). + +Workaround home applied by hand, now live on velox: +=/etc/wireplumber/wireplumber.conf.d/50-disable-ucm.conf= sets +=monitor.alsa.properties { alsa.use-ucm = false }= and a =monitor.alsa.rules= +entry with =device.disabled = true= for +=alsa_card.pci-0000_c1_00.5-platform-acp-pdm-mach=, then =systemctl --user +restart wireplumber=. The ALC285 falls back to its analog-stereo profile whose +Internal Microphone pin (0x12) carries real audio; the default source is +=alsa_input.pci-0000_c1_00.6.analog-stereo=, port =analog-input-internal-mic=, +with the source volume lowered because the analog path stacks +30 dB capture +on +30 dB boost. Revert: delete the file and restart wireplumber. + +What the installer needs: write that drop-in on this hardware only (gate on +the =acp-pdm-mach= card or the Framework 13 AMD board id, not on the +hostname), beside the existing pipewire/wireplumber package install, with a +fixture test in the installer-steps suite. The live file on velox is the +reference content. The audio failure taxonomy already lists =use-ucm= both +ways as an audio-doctor AUTO remedy +([[file:docs/design/2026-07-10-audio-failure-taxonomy.org][docs/design/2026-07-10-audio-failure-taxonomy.org]]), so the +doctor's remedy and this drop-in should agree. The standing re-check after +each kernel update (remove the drop-in once the upstream fix lands, UCM back +on) lives in velox's machine notes, the KB node "velox's internal mic needs +UCM off and the ACP PDM card disabled until the AMD digital-mic kernel bug is +fixed", linked from the velox hardware node's neighbourhood, not in this +one-shot task. + +Verify: =pactl get-default-source= names the analog-stereo source, and a +short =arecord= of the internal mic has an rms well below 0.99. |
