I'm running 22.04.1 on a Lenovo X220 laptop. I was having some trouble with a faulty fan, and just replaced it with a new one. When I put everything back together and booted it up, my fan issues were solved, but wi-fi seems not to work anymore.
I'm concerned that either:
- I somehow damaged the wi-fi card when taking the computer apart, or
- My OS has mysteriously forgotten about the card and somehow needs to be reminded.
Any ideas on how to tell the difference between these two things? Here's what I know so far:
lspci -k
shows two entries that seem relevant:
00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (Lewisville) (rev 04)
Subsystem: Lenovo ThinkPad T520
Kernel driver in use: e1000e
Kernel modules: e1000e
for my ethernet (which works just fine), and
03:00.0 Network controller: Intel Corporation Centrino Advanced-N 6205 [Taylor Peak] (rev 34)
Subsystem: Intel Corporation Centrino Advanced-N 6205 (802.11a/b/g/n)
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
for the wi-fi. I get something similar from lshw:
*-network
description: Network controller
product: Centrino Advanced-N 6205 [Taylor Peak]
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:03:00.0
version: 34
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list
configuration: driver=iwlwifi latency=0
resources: irq:30 memory:d2400000-d2401fff
It looks like my firmware is OK:
$ sudo dmesg | grep iwlwifi
[ 15.853806] iwlwifi 0000:03:00.0: can't disable ASPM; OS doesn't have ASPM control
[ 16.302507] iwlwifi 0000:03:00.0: loaded firmware version 18.168.6.1 6000g2a-6.ucode op_mode iwldvm
I don't know if the ASPM thing is a big deal; I ran sudo fwts aspm
and it gave some warnings about L0s not enabled but no obvious failures.
However, it seems like nmcli
doesn't know about the wi-fi card. If I unplug the ethernet cable (since it's not relevant here), I get:
np0s25: unavailable
"Intel 82579LM"
ethernet (e1000e), F0:DE:F1:62:D6:31, hw, mtu 1500
lo: unmanaged
"lo"
loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
Any ideas about what might be wrong here?
UPDATE: I ran the wireless-info script from this post and pasted the results at: https://pastebin.com/dEbb2i4a
wlp1s0
orwlan0
, etc)? It looks like the device has been deleted. Although, this usually resolves with a reboot, it also says managed=false in one of your config files. Anyhow, if this is the case, the following command or something very similar using the correct device name should add the devicesudo iw phy phy0 interface add wlp1s0 type namaged
– mchid Jan 01 '23 at 12:02iwldvm
is mentioned in dmesg but it's not listed for lsmod so you might want to enable that module if nothing else works:sudo modprobe iwldvm
– mchid Jan 01 '23 at 12:13phy0
and I think you should be able to verify this by runningiw list
and the first device listed should bephy0
or something similar. Again, you might want to look into this if theiw
command above doesn't work and then adjust the command accordingly. – mchid Jan 01 '23 at 12:18iw list
actually gives me nothing at all; it seems not to know anything about the physical device. Theiw
command you suggested returns a "command failed: No such file or directory (-2)" error -- I assume this is because that phy name doesn't correspond to anything. – cjolley Jan 01 '23 at 17:07lshw
shows the device so the system knows that it's there (sort of). What about after you enable the modulesudo modprobe iwldvm
? Then, check if it's actually enabled withlsmod iwldvm
and if so, then tryiw list
again if it doesn't show up in NetworkManager automatically. – mchid Jan 01 '23 at 18:50iwldvm
doesn't load, rundmesg -T | grep iwldvm
anddmesg | grep iwl
to check for errors. That module should be loaded and I'm pretty sure you should experience all the same symptoms ifiwldvm
is not loaded. I tested it on a different card that usesiwlwifi
with theiwlmvm
firmware and then removediwlmvm
and ran the wireless script, checkediw list
, no response from rfkill — all the same symptoms. – mchid Jan 01 '23 at 18:59sudo modprobe iwldvm
gives me an error:modprobe: ERROR: could not insert 'iwldvm': Input/output error
. Thedmesg
output only mentionsiwldvm
in the lines I pasted above in the original post. I'm starting to wonder if this is some kind of kernel issue. – cjolley Jan 02 '23 at 12:005.15.0-56-generic
to5.15.0-53-generic
, and then it all started working again. It looks like what was going on was some kind of conflict between that kernel andiwldvm
, maybe? – cjolley Jan 02 '23 at 14:44