Downgrading iwlwifi
Solution 1
The Linux firmware sources are being developed in a Git repository, so it's easy to go back in time for all older releases of the firmware.
- Install git
-
Clone the repository (cgit web page):
git clone http://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
-
cd
into the repository:cd linux-firmware
-
Locate the firmware for your device as per the iwlwifi development page or legacy (scroll down), e.g.
iwlwifi-3945-2.ucode
.find . -name "iwlwifi*"
Notice that for some devices multiple versions are kept as separate files, for the compatibility of older kernel versions.
-
Have a look at the history of the file:
git log iwlwifi-3945-2.ucode
shows (removed some irrelevant lines):
commit d90a18c9e7eef19ab978c4c0bb2d2d4b8fa49dce Date: Thu May 14 18:15:50 2009 +0100 linux-firmware: Update Intel Wireless Wifi 3945 firmware Version is now 15.32.2.9 commit caef650a8c909f557ed7f6b23c413401d6994fdb Date: Tue Jan 20 21:37:48 2009 +0000 linux-firmware: Add Intel Wireless Wifi firmware
-
The revision at the top is the version in your working directory. To retrieve an older version of the same file, do this:
git show caef650a8c909f557ed7f6b23c413401d6994fdb iwlwifi-3945-2.ucode > ~/some/destination/iwlwifi-3945-2.ucode
see also: How to retrieve a single file from specific revision in Git?
However, most firmware files only have a single revision in the repository and are versioned by just having multiple filenames.
-
Install the firmware in
/usr/local/lib/firmware
(location for manually installed firmware files) by copying the file there:sudo cp /path/to/iwlwifi-3945-2.ucode /usr/local/lib/firmware/
-
Remove and re-insert the kernel module(s):
rmmod iwldvm && rmmod iwlwifi modprobe iwlwifi && modprobe iwldvm
And look at
dmesg
to see if the firmware gets loaded.
In case you wonder if any files have been removed from the repository, try this:
git log --diff-filter=D --summary | grep delete
At the time of writing, no Intel firmware has been deleted ever.
Solution 2
At
you can find firmware for Intel wireless chips.
But I don't know if you can find a older version for your specific chip.
Related videos on Youtube
Carlo Felicione
Updated on September 18, 2022Comments
-
Carlo Felicione over 1 year
I asked this question, but I'm becoming more and more certain that my problem stems from a faulty
iwlwifi
firmware version. Rather than muddy the water there, I'd like to ask if it's possible to downgrade my islwifi firmware to a previous version.If it's possible, can you tell me specifically how? I'm not really great with generic instructions. Or is there a website that I've missed?
-
Carlo Felicione almost 11 yearsThanks. I'm trying it now, and I'll let you know what happens.
-
Carlo Felicione almost 11 yearsThe particular firmware still didn't work for me to solve the problem, but the methodology was perfect. (I believe it's a hardware issue and will take it apart soon.) Two questions: (1) I needed to sudo rmmod and modprobe. Is that typical? (2) My firmware was installed in /lib/firmware not /usr/local/lib/firmware. Does it matter? Thanks again!
-
Carlo Felicione almost 11 yearsI saw those earlier and definitely used them. I just wanted something earlier if possible. Thanks.
-
gertvdijk almost 11 years1) Reloading the kernel modules will load the firmware. Just replacing the files won't affect a running system. 2) Not really, it's just a convention to install user-supplied firmwares (not by package management) in
/usr/local/lib/firmware
(likewise,/usr/local/bin
for local-installed binaries). Generally, you should not touch anything in system directories - that will confuse the package management. Be aware that the file will be overwritten on the next package update now!