I updated my BIOS for the first time in years, and now half of the GNU packages don’t work. Working examples: Firefox and Steam. Broken examples: VS Code and Obsidian. I tried rolling back to an earlier version of NixOS but with the same problems.
The obvious newbie solution is to remove and then reinstall any faulty programs, but that didn’t work. It’s something deeper. Maybe in hardware-configuration.nix?
I’m lost. Where should I start looking to find the root cause?
nix-shell -p nix-info --run "nix-info -m
system: "x86_64-linux"
host os: Linux 6.6.47, NixOS, 24.05 (Uakari), 24.05.4248.2527da1ef492
2024-08-31 20:04:04 Loading updated app package /home/ian/.config/obsidian/obsidian-1.6.7.asar
2024-08-31 20:04:04 Checking for update using Github
2024-08-31 20:04:04 Success.
2024-08-31 20:04:04 Latest version is 1.6.7
2024-08-31 20:04:04 App is up to date.
DRM kernel driver ‘nvidia-drm’ in use. NVK requires nouveau.
[8590:0831/140404.811290:ERROR:shared_image_representation.cc(316)] Unable to initialize SkSurface
[8590:0831/140404.811354:ERROR:gpu_service_impl.cc(1105)] Exiting GPU process because some drivers can’t recover from errors. GPU process will restart shortly.
[8303:0831/140404.827313:ERROR:gpu_process_host.cc(993)] GPU process exited unexpectedly: exit_code=8704
DRM kernel driver ‘nvidia-drm’ in use. NVK requires nouveau.
[8627:0831/140405.045219:ERROR:shared_image_representation.cc(316)] Unable to initialize SkSurface
[8627:0831/140405.045266:ERROR:gpu_service_impl.cc(1105)] Exiting GPU process because some drivers can’t recover from errors. GPU process will restart shortly.
[8595:0831/140405.047599:ERROR:command_buffer_proxy_impl.cc(127)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
[8303:0831/140405.061297:ERROR:gpu_process_host.cc(993)] GPU process exited unexpectedly: exit_code=8704
DRM kernel driver ‘nvidia-drm’ in use. NVK requires nouveau.
[8648:0831/140405.246260:ERROR:shared_image_representation.cc(316)] Unable to initialize SkSurface
[8648:0831/140405.246321:ERROR:gpu_service_impl.cc(1105)] Exiting GPU process because some drivers can’t recover from errors. GPU process will restart shortly.
[8595:0831/140405.248936:ERROR:command_buffer_proxy_impl.cc(319)] GPU state invalid after WaitForGetOffsetInRange.
[8303:0831/140405.263242:ERROR:gpu_process_host.cc(993)] GPU process exited unexpectedly: exit_code=8704
DRM kernel driver ‘nvidia-drm’ in use. NVK requires nouveau.
It appears Obsidian is actually launching, but the first window does not appear. If I open a second window, it appears. I’ve been getting these DRM kernel driver 'nvidia-drm' in use. NVK requires nouveau. consistently even before this mess. I can’t seem to solve Nvidia GPU issues completely, even with everything mostly working.
Strangely, if I log out of my profile, and into a dummy user, Obsidian launches normally.
Launching VS Code: [ian@nixos:~/.nixos_working]$ code .
Warning: ‘ozone-platform-hint’ is not in the list of known options, but still passed to Electron/Chromium.
Warning: ‘enable-features’ is not in the list of known options, but still passed to Electron/Chromium.
Code errors are different from Obsidian. It just doesn’t launch at all. Unless I’m getting the launch terms wrong. code . is what I used in windows before starting this migration.
And, just to keep things fun: a different set of errors for Discord: [ian@nixos:~/.nixos_working]$ discord
What other apps are broken, I’m noticing that all of these ones are electron apps (though i’m not sure what steam is?), maybe some electron dependency got screwed up with the change
1 and 2 do not seem like particularly fruitful options.
If they’re only electron apps affected, you can try deleting ~/.config/<whatever>/GPUCache, sometimes that helps (most electron apps store their data in ~/.config)
Tried: deleted the entire folder contents for Discord, Elements, and Obsidian as found in the ~/.config and ~./local folders
Result: no change. The contents were replaced after reboot and running the applications again.
I’m moving on to Option 3: erase the hard drive and start again.
UDPATE:
I’m closer to the problem. After wiping the drive and rebuilding system VS Code ran fine, except I was receiving a Keyring error. Something like “Keyring does not match login password”. It rejected my login password although it’s the only one I’ve set up since starting.
environment.variables.XDG_RUNTIME_DIR = "/run/user/$UID"; # set the runtime directory
I tried that, which then caused VS Code to stop working with the same error as previously: [ian@nixos:~/.nixos_working]$ code .
Warning: ‘ozone-platform-hint’ is not in the list of known options, but still passed to Electron/Chromium.
Warning: ‘enable-features’ is not in the list of known options, but still passed to Electron/Chromium.
I then removed the above line and ran nixos-rebuild, but the problem hasn’t resolved. Note, I also tried with, and without, the other code block referenced:
services.gnome.gnome-keyring.enable = true;
programs.seahorse.enable = true; # enable the graphical frontend
environment.systemPackages = [ pkgs.libsecret ]; # libsecret api needed
security.pam.services.gdm.enableGnomeKeyring = true; # load gnome-keyring at startup
which all seems to provide me with the correct keyring configuration ps aux | grep gnome-keyring-daemon