# iwl4965 NIC not working after system reinstall [SOLVED]

## Punchcutter

Hey all...... so I reinstalled my laptop a while ago when I put a new SSD in, and because I rarely take it on the road and use wifi, I put in what I thought was proper kernel config, but now that I try to use it, I can't get wifi to work. Here are the details:

I have what I now realize is considered a legacy NIC - iwl4965. Appropriate drivers are in the kernel. I do not have iwlwifi, but I think that wouldn't help me in this case (I guess I have iwlegacy instead):

```
# lspci | grep -i net

00:19.0 Ethernet controller: Intel Corporation 82566MM Gigabit Network Connection (rev 03)

03:00.0 Network controller: Intel Corporation PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (rev 61)

# lsmod | grep -E 'iwl|802'

iwl4965                86368  0

iwlegacy               44929  1 iwl4965

mac80211              523593  2 iwl4965,iwlegacy

cfg80211              431799  3 mac80211,iwl4965,iwlegacy

```

The laptop has a radio hardware kill switch, which is turned on. I am at what I think is latest wpa_supplicant, 2.6-r3 and wireless-tools 30_pre9. But I get this:

```
# iwconfig 

wlp3s0    no wireless extensions.
```

and there's also this:

```
# /etc/init.d/net.wlp3s0 start

 * Bringing up interface wlp3s0

 *   Starting wpa_supplicant on wlp3s0 ...

Successfully initialized wpa_supplicant                                                                                  [ ok ]

 *   Starting wpa_cli on wlp3s0 ...

Failed to connect to non-global ctrl_ifname: wlp3s0  error: Success

 *   start-stop-daemon: failed to start `/usr/bin/wpa_cli'                                                               [ !! ]

 * ERROR: net.wlp3s0 failed to start

```

but the funny thing is that before the reinstall, this command used to give me this same output, with "failed to start", and yet I was able to use the wifi interface just fine. Now I can't. Can anyone give me a clue what's missing so I can get this interface back up and working? Thanks.Last edited by Punchcutter on Mon Jan 29, 2018 12:16 am; edited 1 time in total

----------

## LIsLinuxIsSogood

Which kernel were you using when it worked, and which one are you using now?

Did you save the old kernel configuration so that you can compare the differences.  In the event of no, the possibility with a legacy driver is that it won't be well managed in later releases of kernel like the newest one you installed, no?

----------

## joanandk

@Punchcutter:

Did you emerge linux-firmware? You should check dmesg for getting a hint what is missing.

BR

----------

## Punchcutter

Thanks for the responses. Here are the followups:

Yes, I have linux-firmware installed (and have had, for a long time). Is there anything I should pay attention to wrt to firmware, other than just merging the package?

I have checked dmesg output, but it doesn't seem to contain anything related to this. I also cleared it, and then tried bringing the interface up again, and nothing appears in dmesg.

About the kernel versions... this is sorta bad news. Earlier this year I upgraded this laptop to an SSD, and at the time I brought the kernel up to date from a pretty old one I had been using. So I suddenly went from 3.14.56 to now 4.9.34. The good news is that I do still have my old kernel config, because I keep those under git control! But the bad news, again, is that there are SO many hundreds of lines of changes between these two kernel versions (I'm sure I just did make oldconfig and powered through all the changes at the time of upgrade). I have no desire to try to go one by one through all those kernel config differences to see what might be relevant, unless someone has a clue of something for me to look for.

Further help much appreciated. I am now at a point where I'm expecting to want to use (and begin depending on) the wifi on this laptop in a way I hadn't been doing before, so I really need to get this fixed. Help!

----------

## Hu

Please pastebin at least the new configuration, but preferably also the last known good configuration.  There might be an interested reader who can pinpoint the change for you.  If I were to guess based on the limited information available, I would say that some previously-default-enabled kernel feature (possibly, it was even previously forced on, rather than configurable via Kconfig) is now not default-enabled and you have not enabled it.  Please also pastebin dmesg from the non-working kernel, showing kernel initialization up through and including when you tried to activate the wireless card.  If you have it, pastebin the matching dmesg contents from the old working kernel.  You might have old dmesg from a prior boot available in kern.log if logrotate has not expired it yet.

Regarding firmware, if you build the network driver as a module, and that module is not in your initramfs, then merely installing the firmware is likely sufficient.  If you build the network driver into the core kernel, or if you put the module in the initramfs, then the network card may be initialized before root is mounted.  If that happens, and your firmware is only on root and not in the initramfs, then you effectively do not have the firmware available.  For some cards, omitting firmware merely hurts performance or lacks bugfixes.  For others, omitting firmware renders the card unusable.  I don't know which category your card is in.

----------

## joanandk

 *Punchcutter wrote:*   

> ... then tried bringing the interface up again, and nothing appears in dmesg.

 

Bringing the interface up again might not create any dmesg entry. Please remove the wifi kernel module and modprobe it again, this will create entries in the dmesg which shows if there is something wrong with the firmware/driver.

BR

----------

## Punchcutter

Here is the full dmesg after just having rebooted my machine.  And:

```
$ dmesg | grep -E '4965|wlp3s0'

[    3.209776] iwl4965: Intel(R) Wireless WiFi 4965 driver for Linux, in-tree:

[    3.209778] iwl4965: Copyright(c) 2003-2011 Intel Corporation

[    3.209840] iwl4965 0000:03:00.0: can't disable ASPM; OS doesn't have ASPM control

[    3.210069] iwl4965 0000:03:00.0: Detected Intel(R) Wireless WiFi Link 4965AGN, REV=0x4

[    3.253068] iwl4965 0000:03:00.0: device EEPROM VER=0x36, CALIB=0x5

[    3.256962] iwl4965 0000:03:00.0: Tunable channels: 11 802.11bg, 13 802.11a channels

[    3.266712] iwl4965 0000:03:00.0: loaded firmware version 228.61.2.24

[    3.267072] ieee80211 phy0: Selected rate control algorithm 'iwl-4965-rs'

[    3.329733] iwl4965 0000:03:00.0 wlp3s0: renamed from wlan0

[   67.180098] IPv6: ADDRCONF(NETDEV_UP): wlp3s0: link is not ready

```

I don't see anything that looks like a problem here. The last "link is not ready" related to IPv6, which I don't have enabled at all.

Further: an old 3.14.56 configuration that should have had the wifi working, but I can't say 100% for sure at this point.

And my current 4.9.34 kernel config.

One more thing: when I looked in my grub.cfg, I found that although earlier kernels had been set up to use initramfs, I was not using it as of my upgrade to 4.9.34. So I copied the initrd command from an older boot stanza into the current one before rebooting. Was hoping that might just fix the problem, but no luck   :Razz: 

Many thanks again.

----------

## Punchcutter

Well.... after deciding to spend a few more minutes trying to solve this problem, I started googling around again, finally came across this forum thread, and although it wasn't immediately clear to be relevant to me, I tried setting

```
CONFIG_CFG80211_WEXT=y
```

and it worked. So there's the solution. Posting from wifi connection now. Thanks again to those to took a look before.

----------

