-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bump nixpkgs to 24.11 #184
Conversation
234f702
to
19cd061
Compare
daf2861
to
71e50c1
Compare
2803098
to
c047b68
Compare
277c415
to
2988af3
Compare
All tests pass as of e640471 |
Documenting the current state of audio issue debugging:
This seems to hint at the fact the actual issue is not TODOs:
|
It seems that the I used https://bencentra.com/webaudio/test1.html (which uses Web Audio API to generate a simple sine wave) and it produces sound both on TODO:
|
Test with http://hpr.dogphilosophy.net/test/
Attempting to downgrade |
It doesn't. When attempting to play one of the unsupported DevTools inspector > Media > Messages contains this:
Most similar search results are around proprietary codec support (e.g. |
I can confirm this running the kiosk browser directly on my machine. Both on http://hpr.dogphilosophy.net/test/ and on dev-play OPUS fails to play. The I can still perform the sine wave test on ASUS (https://bencentra.com/webaudio/test1.html) to check whether there is a second issue with sink muting/routing/... |
Additional testing/checks:
This seems to imply that the issue is due to the |
Follow-up: unfortunately, switching back Qt packages to 6.6.0 is non-trivial, because the src versions are auto-generated and hard-coded in nixpkgs and the derivation setups have changed as well, so a simple overlay won't do. At this point I suggest to park this for a while and to wait - maybe someone will bump into similar problems and backport a fix. |
I think it's almost superfluous by now, but just adding these datapoints from testing on ASUS:
This produces sound output. (Caveat: Does not produce sound output when an additional USB device that registers as an "audio card" is plugged in. This is an orthogonal issue.) |
Thanks for documenting the knowns.
Hm, yes. There are these potentially relevant looking commits since 24.05:
This is an option, as we are unlikely to release before early next year either way. One thing that could be tried is to go to 24.05 for now after all. The main thing I would have wanted from 24.11 is connman 1.43. Maybe this can be overlayed instead? |
This custom patch has since been abandoned (NixOS/nixpkgs@d4f7b842c) when upgrading Qt 6.7.3 -> 6.8.0 Probably not the culprit, see below.
Confirmed the following:
So this seems to imply that the issue is not the ffmpeg upgrade (NixOS/nixpkgs@6192273), but rather something to do with the Qt / chromium upgrade. It seems that we have two paths forward:
|
Codec issue seems to be fixed with Qt 6.8.1, which is in staging-next: Edit: seems like it has been backported 24.11 and merged to staging-24.11 already: NixOS/nixpkgs#363695 Will attempt to re-test in a few weeks once it's in release-24.11 (or at least staging-next-24.11) |
The Qt 6.8.1 bump reached staging-next-24.11, here's the PR to track when it gets merged into release-24.11: NixOS/nixpkgs#369690 |
20d2982
to
ce2f0e1
Compare
|
This reverts commit 0f24fca.
This reverts commit 93ead4f.
nixpkgs 24.11 bumps pulseaudio version from 16.1 to 17.0 which brings a major change in ALSA -> PulseAudio device mapping: An extensive set of changes landed which modify how ALSA UCM configuration is mapped to PulseAudio profiles and ports. Notably: <..> Instead of different inputs/outputs being exposed as ports on a source/sink, they *will be exposed as separate sources/sinks*. From the changelog: https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/17.0/#updatestoalsaucm-basedsetups) This seems to imply that a HDMI cable plug/unplug, which was previously a port change and hence handled by module-switch-on-port-available, is now a sink change (and hence handled by module-switch-on-connect). However, since module-switch-on-connect by default blacklists any devices with "hdmi" in their name, this would not trigger a change.
Something changed with hostapd/network initialization after the latest nixpkgs bump and hostapd was failing to create the simulated APs because the wlan0 radio was soft-blocked with rfkill upon startup. Additionally, the service ordering with connman seems to cause weird issues, not sure if this always existed or is new.
Mostly for quickly checking whether a specific version of nixpkgs resolves the Qt/opus codec issues or not.
See https://bugreports.qt.io/browse/QTBUG-130273 for a discussion and the suggested "dirty workaround", which is applied here.
afeaaa0
to
9545067
Compare
We want to be able to assume a fixed set of soundcards for the standard devices, and don't currently need any extensibility for additional inputs or outputs. Disable all support for USB soundcards. This fixes an issue where USB peripherals could lead to unexpected numbering of sound cards and prevent successful configuration of sound output to HDMI.
I was right to be paranoid, but I wasn't paranoid enough. The live system booted from USB consistently was missing audio out via HDMI. Previously I had tested an installed system, and audio worked on that. I think the best thing to do is to just disable USB soundcards entirely (Disable USB soundcards). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks more or less ready to go, just need the release validation and manual tests to be performed.
I just finished both and we can finally merge this! 🌮 |
Tested
To do
reverted to internal speakernot working on ASUS:set-card-profile 0 ...
references the external USB card (usb-MEMS_TECH_ad03-00
) -should we blacklistblacklisting is not sufficient, does not affect ordering"usb"
inmodule-switch-on-connect
?/home/emerij/Development/playos/kiosk/kiosk_browser/browser_widget.py:148: SyntaxWarning: invalid escape sequence '\('
inpattern = re.compile('(Mozilla/5.0) \(([^\)]*)\)(.*)')
(should probably just ber'(Mozilla/5.0) \(([^\)]*)\)(.*)'
)./testing/manual/kiosk-dual-screen.nix
systemImage
/ test disk size has increasedlibcamera / video support?entirelyprofiles/minimal.nix
does not lead to significant changes.Checklist