Change:
When booting with a kernel, my wifi card () fails to get its firmware loaded: With , the firmware load works: I appreciate your previous work on this. Do you think our build recipe () could be changed to only depend on upstream sources + patches that we maintain within nixpkgs?
I totally agree! I just continued making the repository available and merge the firmware repos together like wkennington did. Do you want to work on this? We need this for 17.09 which we will release in the next few days. :)
I might give it a shot, but can you tell me a bit about it? Does it need to be a merged repository? i.e. could we also build and separately? Are there any patches in there, that are from neither upstream? also calling on in case you're still interested in helping with this ..
Should've explained what to do, sorry. :) Only these tho repos are needed: These two shouldn't be needed to be built together, just linked togethe in one directory like we do with the NixOS option. But at least for 17.09 we should install the contents of both repos with because that's what we've done before. At some point we removed broken firmware but this was also removed upstream shortly after. So there should be no changes compared to the upstream repos.
I don't understand why firmware loading fails for you as we have the following firmware files in : The revision 27 seems to be loaded by 4.12. There aren't any updates for iwlwifi-8265 in neither linux-firmware nor iwlwifi's linux-firmware. :cry:
I was thinking the same thing, but my hope was for the critical fix to not be in the ucode, but in the loading stub ... I hope to be able to try this later in the evening
I am about to push the 4.13.4 kernel, it has a fix for something iwlwifi related, maybe that will fix this?!
Try with
I finally got my wifi card working again, after the iwl release yesterday. Strange thing is: I had to enable , for the updated package to even be built. I definitely haven't had to do this before. And I'm still not sure, if I even need the updated release. Did the default for this change, somehow? What's the best course forward? Should we enable redistributable firmware by default?
This may have caused (QCA9882 firmware crashes).

Discussion:
<del> { stdenv, fetchFromGitHub }: </del> <ins> { stdenv, fetchgit, runCommand, git, cacert, gnupg }: </ins> stdenv.mkDerivation rec { name = "firmware-linux-nonfree-${version}"; <del> version = "2017-07-05"; </del> <ins> version = "2017-10-09-${src.iwlRev}"; </ins> <del> # This repo is built by merging the latest versions of </del> <ins> # The src runCommand automates the process of building a merged repository of both # </ins> # http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/ <del> # and </del> # http://git.kernel.org/cgit/linux/kernel/git/iwlwifi/linux-firmware.git/ <del> # for any given date. This gives us up to date iwlwifi firmware as well as </del> <ins> # # This gives us up to date iwlwifi firmware as well as </ins> # the usual set of firmware. firmware/linux-firmware usually lags kernel releases # so iwlwifi cards will fail to load on newly released kernels. <del> src = fetchFromGitHub { owner = "fpletz"; repo = "linux-firmware"; rev = version; sha256 = "0vlk043y7c32g4d9hz93j64x372qqrwsq65mh8s5s5xrvamja2if"; }; </del> <ins> # # To update, go to the above repositories and look for latest tags / commits, then # update version to the more recent commit date src = runCommand "firmware-linux-nonfree-src-merged-${version}" { # When updating this, you need to let it run with a wrong hash, in order to find out the desired hash baseRev = "bf04291309d3169c0ad3b8db52564235bbd08e30"; iwlRev = "iwlwifi-fw-2017-11-03"; # randomly mutate the hash to break out of fixed hash, when updating outputHash = "11izv1vpq9ixlqdss19lzs5q289d7jxr5kgf6iymk4alxznffd8z"; outputHashAlgo = "sha256"; outputHashMode = "recursive"; buildInputs = [ git gnupg ]; NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; } '' git init src && ( cd src git config user.email "build-daemon@nixos.org" git config user.name "Nixos Build Daemon $name" git remote add base git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git git remote add iwl git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/linux-firmware.git git fetch base $baseRev git checkout -b work FETCH_HEAD git fetch iwl $iwlRev git merge FETCH_HEAD) rm -rf src/.git cp -a src $out ''; </ins> preInstall = '' mkdir -p $out