Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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?

share|improve this question
    
upvote for WANTING to work around it instead of beat your way through it. –  hbdgaf Jun 23 '13 at 4:29

2 Answers 2

up vote 2 down vote accepted

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.

  1. Install git Install git
  2. Clone the repository (cgit web page):

    git clone http://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
    
  3. cd into the repository:

    cd linux-firmware
    
  4. Locate the firmware for your device as per the iwlwifi development page (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.

  5. 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
    
  6. 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.

  7. 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/
    
  8. 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.

share|improve this answer
    
Thanks. I'm trying it now, and I'll let you know what happens. –  algebralives Jun 23 '13 at 17:34
    
The 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! –  algebralives Jun 23 '13 at 22:32
1  
1) 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! –  gertvdijk Jun 23 '13 at 22:35

At

http://wireless.kernel.org/en/users/Drivers/iwlwifi

you can find firmware for Intel wireless chips.

But I don't know if you can find a older version for your specific chip.

share|improve this answer
    
I saw those earlier and definitely used them. I just wanted something earlier if possible. Thanks. –  algebralives Jun 23 '13 at 22:33

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.