NixOS minimal install doesn't have wifi firmware

I started to install NixOS on a new Dell XPS 13 9300 using a minimal install usb drive. It appears to run into this issue. I have the exact same message in dmesg.

   [ 5.632845] iwlwifi 0000:00:14.3: Failed to start RT ucode: -110
   [ 5.632849] iwlwifi 0000:00:14.3: Firmware not running - cannot dump error
   [ 5.645491] iwlwifi 0000:00:14.3: Failed to run INIT ucode: -110

Is it possible to get this firmware installed?

The installer has linux 5.4.41 so I believe the kernel will work but I need some help getting the firmware updated. How do I do this with the installer and then use that firmware in configuration.nix?

While not directly answering your question… I always have a cell phone with usb cable handy when installing any linux os that is wireless so I can tether to get the basic install working, and then install firmware after that. It is by far the most pragmatic solution I can think of.

Ok I tried a few things. First I tried adding the latest firmware. I did this by building an iso with the firmware and then writing to usb.

This wiki page was helpful.

{config, pkgs, ...}:
let
  killerWifiFirmware = pkgs.fetchzip {
     url = "https://wireless.wiki.kernel.org/_media/en/users/drivers/iwlwifi/iwlwifi-qu-48.13675109.0.tgz";
     sha256 = "1iq6fy50pv36zsd3qxbyjs3rn1x2541v8z74kcd3n0hqs6406xni";
  };

in {
  imports = [
    <nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix>

    <nixpkgs/nixos/modules/installer/cd-dvd/channel.nix>
  ];

  hardware.enableRedistributableFirmware = true;
  hardware.firmware = [
    (pkgs.runCommandNoCC "killerWifiFirmware" {} ''
      mkdir -p $out/lib/firmware
      cp ${killerWifiFirmware}/iwlwifi-Qu-*-48.ucode $out/lib/firmware
    '')
  ];
}

This did not work. After searching through this same issue in other distributions the problem seemed to always be with linux 5.4. It worked with 5.3. So I decided to just try `linuxPackages_latest’.

{config, pkgs, ...}:
{
  imports = [
    <nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix>

    <nixpkgs/nixos/modules/installer/cd-dvd/channel.nix>
  ];

  boot.kernelPackages = pkgs.linuxPackages_latest;
}

The live boot no longer has an error so I’m going to try continuing with the install.

3 Likes