Network firmware broken

When i updated my nixos networking stopped working. I am on unstable. It looks like a firmware issue and these errors happened during boot: apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: loaded firmware rtw89/rtw8852c_fw-1.bin apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: enabling device (0000 -> 0003) apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: Firmware version 0.27.125.0 (526f84c0), cmd version 0, type 1 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: Firmware version 0.27.125.0 (526f84c0), cmd version 0, type 3 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: MAC has already powered on apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw bin size apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: parse fw header fail apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fwdl 0x1E0 = 0x1 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fwdl 0x83F0 = 0xdeadbeef apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x20000308 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1cc apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1c8 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1c8 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1c8 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1c8 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1c8 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1c8 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1d4 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1c8 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1c8 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1c8 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1c8 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1c8 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1c8 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw bin size apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: parse fw header fail apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fwdl 0x1E0 = 0x1 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fwdl 0x83F0 = 0xdeadbeef apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x200002b6 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000d4cc apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1c8 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x20005ccc apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1c8 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1c8 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1c8 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1c8 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1c8 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1cc apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000dd72 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1c8 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1cc apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1c8 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw PC = 0x2000c1c8 apr 21 18:28:04 desktop kernel: rtw89_8852ce 0000:06:00.0: [ERR]fw bin siz How would i go about fixing this? Thanks in advance!

Hi, have u solved this in the meantime? I’ve got the same issue and am still working on it. Will post a solution when i find it! best

It looks like this is an upstream issue in linux-firmware. There’s an open pull request for it here: Making sure you're not a bot!

1 Like

as a work-around i’ll try pinning to the last kernel version where it still worked with:

boot.kernelPackages = pkgs.linuxPackagesFor (pkgs.linux_6_12.override {
    argsOverride = rec {
      src = pkgs.fetchurl {
            url = "mirror://kernel/linux/kernel/v6.x/linux-${version}.tar.xz";
            sha256 = lib.fakeSha256;
      };
      version = "6.12.19";
      modDirVersion = "6.12.19";
      };
  });

but i havent tested it yet. will update soon.

Hi, i hacked an ugly fix to get it to work. I manually downloaded working firmware and copied it to the current running config.

wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/rtw89/rtw8852c_fw.bin -O /lib/firmware/rtw89/rtw8852c_fw.bin
zstd -lv ./rtw8852c_fw.bin.zst
cp rtw8852c_fw.bin /run/current-system/firmware/rtw89/rtw8852c_fw.bin
sudo modprobe -r rtw89_8852ce
sudo modprobe rtw89_8852ce

It was a more than a week ago since I fixed it so it is a bit fussy. But it was something along the lines of that. Hopefully it helps, and thanks for the code holding the kernel back!

Looks like an upstream fix merged: Revert "rtw89: 8852c: update fw to v0.27.125.0" (!518) · Merge requests · kernel-firmware / Linux Firmware · GitLab

In my config, I’ve just overridden linux-firmware to the previous version without pinning the kernel too: nix-workstations/flake.nix at cc810ea57070aaad90d7e9afa9b187bb23bfb5e1 · craigfurman/nix-workstations · GitHub

Works on my machine, at least…

2 Likes

cool, thanks for the info! silly question maybe but whats the most convienient way of finding out if kernel v6.13 is already downstream in nixpkgs?

and thanks for point out the linux-firmware override, i guess thats a much better workaround than pinning the kernel!

Not a silly question at all! I would look at NixOS Search to check the kernel version. Looks like 6.13 isn’t released in unstable yet.

Disclaimer: I’m a relatively new nixos user and there are always many ways of doing something!

I’ve learned from this thread, maybe I can try unpinning linux-firmware when kernel 6.13 is released, not just when a fixed firmware is released.

1 Like

thanks, this quick lookup was exactly what i was looking for!

btw: linux-firmware is at 20250509 and thus everything is working just fine again :slight_smile: