Ubuntu – No WiFi Adaptor found in Lenovo X1 Carbon Generation 7

18.04driverslenovonetworkingsystem-installation

I am new to Linux and Ubuntu and I just managed to install Ubuntu 18.04.3 LTS onto my Lenovo X1 Carbon Gen 7 in Dual Boot. From Windows Device Manager, I can see that my WiFi card is Intel(R) Wireless AC 9650 160MHz. The problem is that currently, I am not able to connect to WiFi as the WiFi Panel in settings says "No WiFi Adaptor Found". These are the things I have done so far:

  1. Disabled Secure Boot
  2. Installed the driver for the above wifi card from https://www.intel.com/content/www/us/en/support/articles/000005511/network-and-i-o/wireless-networking.html and put it into /lib/firmware.

I am also unable to connect to the internet in Ubuntu using Ethernet. I hope someone can provide with me a solution to connect to the internet using my wifi (and optionally with ethernet, but focus on wifi). I am very new to linux, so I do not know what more information you require. If you require any more information from me to assist me better please let me know. TThank you very much for your help.

Output of lspci -knn | grep Net -A3; rfkill list:

00:14.3 Network controller [0280]: Intel Corporation Device [8086:02f0]
    Subsystem: Intel Corporation Device [8086:0030]
    Kernel driver in use: iwlwifi
    Kernel modules: iwlwifi
0: tpacpi_bluetooth_sw: Bluetooth
    Soft blocked: no
    Hard blocked: no
1: hci0: Bluetooth
    Soft blocked: no

Output of dmesg | grep iwl:

[    2.305197] iwlwifi 0000:00:14.3: enabling device (0000 -> 0002)
[    2.323471] iwlwifi 0000:00:14.3: loaded firmware version 43.95eb4e97.0 op_mode iwlmvm
[    2.352746] iwlwifi 0000:00:14.3: Detected Intel(R) Dual Band Wireless AC 9560, REV=0x354
[    7.381803] iwlwifi 0000:00:14.3: Failed to load firmware chunk!
[    7.381815] iwlwifi 0000:00:14.3: iwlwifi transaction failed, dumping registers
[    7.381820] iwlwifi 0000:00:14.3: iwlwifi device config registers:
[    7.381874] iwlwifi 0000:00:14.3: 00000000: 02f08086 00100406 02800000 00800000 ea238004 00000000 00000000 00000000
[    7.381882] iwlwifi 0000:00:14.3: 00000020: 00000000 00000000 00000000 00308086 00000000 000000c8 00000000 000001ff
[    7.381886] iwlwifi 0000:00:14.3: iwlwifi device memory mapped registers:
[    7.381925] iwlwifi 0000:00:14.3: 00000000: 00489004 00000040 00000000 00000000 00000000 00000000 00000000 00000000
[    7.381932] iwlwifi 0000:00:14.3: 00000020: 00000011 0c040005 00000351 d55555d5 d55555d5 d55555d5 80008040 001f0040
[    7.381952] iwlwifi 0000:00:14.3: Could not load the [0] uCode section
[    7.381980] iwlwifi 0000:00:14.3: Failed to start INIT ucode: -110
[    7.381987] iwlwifi 0000:00:14.3: Collecting data: trigger 15 fired.
[    7.608162] iwlwifi 0000:00:14.3: Failing on timeout while stopping DMA channel 8 [0x0bad1122]
[    7.620281] iwlwifi 0000:00:14.3: Failed to run INIT ucode: -110

EDIT:

I ran the steps suggested by @chili555 but it still didn't work. Here is the output of dmesg | grep iwl after running your command:

[    2.327945] iwlwifi 0000:00:14.3: enabling device (0000 -> 0002)
[    2.339990] iwlwifi 0000:00:14.3: loaded firmware version 43.95eb4e97.0 op_mode iwlmvm
[    2.383702] iwlwifi 0000:00:14.3: Detected Intel(R) Dual Band Wireless AC 9560, REV=0x354
[    7.633032] iwlwifi 0000:00:14.3: Failed to load firmware chunk!
[    7.633042] iwlwifi 0000:00:14.3: iwlwifi transaction failed, dumping registers
[    7.633047] iwlwifi 0000:00:14.3: iwlwifi device config registers:
[    7.633235] iwlwifi 0000:00:14.3: 00000000: 02f08086 00100406 02800000 00800000 ea238004 00000000 00000000 00000000
[    7.633242] iwlwifi 0000:00:14.3: 00000020: 00000000 00000000 00000000 00308086 00000000 000000c8 00000000 000001ff
[    7.633245] iwlwifi 0000:00:14.3: iwlwifi device memory mapped registers:
[    7.633282] iwlwifi 0000:00:14.3: 00000000: 00489004 00000040 00000000 00000000 00000000 00000000 00000000 00000000
[    7.633288] iwlwifi 0000:00:14.3: 00000020: 00000011 0c040005 00000351 d55555d5 d55555d5 d55555d5 80008040 001f0040
[    7.633307] iwlwifi 0000:00:14.3: Could not load the [0] uCode section
[    7.633330] iwlwifi 0000:00:14.3: Failed to start INIT ucode: -110
[    7.633336] iwlwifi 0000:00:14.3: Collecting data: trigger 15 fired.
[    7.853989] iwlwifi 0000:00:14.3: Failing on timeout while stopping DMA channel 8 [0x0bad1122]
[    7.866822] iwlwifi 0000:00:14.3: Failed to run INIT ucode: -110

I know almost nothing about this stuff, but it seems like it is still using firmware version 43 rather than 46.

EDIT 2:

I have added the output of running sudo dpkg -i linux*.deb:

architkithania@x1cg7:~/Desktop$ sudo dpkg -i linux*.deb
[sudo] password for architkithania: 
(Reading database ... 126754 files and directories currently installed.)
Preparing to unpack linux-firmware_1.183.2_all.deb ...
Unpacking linux-firmware (1.183.2) over (1.183.2) ...
Setting up linux-firmware (1.183.2) ...
update-initramfs: Generating /boot/initrd.img-5.0.0-23-generic
architkithania@x1cg7:~/Desktop$ 

Edit 3:

Thank you at @chili555 and @Pilot6 for all your help. Finally, I have decided to use Ubuntu 19.10 and the WiFi works flawlessly in this. This result leads me to believe that the error was in fact being caused by the Linux-Firmware being 43. 19.10 uses Linux Firmware 48 and everything works fine. I believe updating the Linux Firmware using this link provided by @Pilot6 should in fact make the problem go away on 18.04 but since everything is working fine in 19.10 and the next LTS release is just around the corner, I will stick with 19.10 for now and therefore cannot check whether @Pilot6 solution works for sure. Thanks for all your help. The Ubuntu Community is truly awesome.

Best Answer

You can fix this bug by updating your system. Connect to the Internet by wire and run:

sudo apt update
sudo apt upgrade

After the process is finished, reboot and Wi-Fi should work.

The linux-firmware will be updated to a working version.

If it is difficult to update the system without a wireless connection, then download http://mirrors.kernel.org/ubuntu/pool/main/l/linux-firmware/linux-firmware_1.173.12_all.deb, copy it to your Desktop and run:

sudo apt remove linux-firmware
cd "$(xdg-user-dir DESKTOP)"
sudo dpkg -i linux-firmware_1.173.12_all.deb
Related Question