Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ArghyaChatterjee/84301238f17187ebb40974c1f78c0647 to your computer and use it in GitHub Desktop.
Save ArghyaChatterjee/84301238f17187ebb40974c1f78c0647 to your computer and use it in GitHub Desktop.

Install Wifi Drivers on Ubuntu 20.04 with Ubuntu Kernel 5.13

If wifi drivers are not installed during 1st boot up, it's likely that graphics and wifi drivers are not installed when you start your pc for the 1st time. First attach your pc with internet through ethernet cable in order to access internet during package installation. Do the following:

sudo apt install net-tools
ifconfig

It will show something like this:

arghya@arghya-Pulse-GL66-12UEK:~$ ifconfig
enp5s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.106  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::f258:bede:f1f9:a9be  prefixlen 64  scopeid 0x20<link>
        inet6 2400:ca05:f010:7ab0::1004  prefixlen 128  scopeid 0x0<global>
        ether 2c:f0:5d:fd:3e:74  txqueuelen 1000  (Ethernet)
        RX packets 15270  bytes 18968917 (18.9 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12367  bytes 1521919 (1.5 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 859  bytes 97955 (97.9 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 859  bytes 97955 (97.9 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Install lshw in your pc and see if your wireles adapter is detected properly.

sudo apt install lshw
sudo lshw -C network

It will show something like this:

arghya@arghya-Pulse-GL66-12UEK:~$ sudo lshw -C network
[sudo] password for arghya: 
  *-network UNCLAIMED       
       description: Network controller
       product: Intel Corporation
       vendor: Intel Corporation
       physical id: 14.3
       bus info: pci@0000:00:14.3
       version: 01
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix cap_list
       configuration: latency=0
       resources: iomemory:620-61f memory:6203134000-6203137fff
  *-network
       description: Ethernet interface
       product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:05:00.0
       logical name: enp5s0
       version: 15
       serial: 2c:f0:5d:fd:3e:74
       size: 100Mbit/s
       capacity: 1Gbit/s
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=5.13.0-44-generic duplex=full firmware=rtl8168h-2_0.0.2 02/26/15 ip=192.168.0.106 latency=0 link=yes multicast=yes port=twisted pair speed=100Mbit/s
       resources: irq:17 ioport:3000(size=256) memory:82104000-82104fff memory:82100000-82103fff

Here are some output:

arghya@arghya-Pulse-GL66-12UEK:~$ lspci -nn | grep -i net
00:14.3 Network controller [0280]: Intel Corporation Device [8086:51f0] (rev 01)
05:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
arghya@arghya-Pulse-GL66-12UEK:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 2c:f0:5d:fd:3e:74 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.106/24 brd 192.168.0.255 scope global dynamic noprefixroute enp5s0
       valid_lft 5481sec preferred_lft 5481sec
    inet6 2400:ca05:f010:7ab0::1004/128 scope global dynamic noprefixroute 
       valid_lft 81084sec preferred_lft 81084sec
    inet6 fe80::f258:bede:f1f9:a9be/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
arghya@arghya-Pulse-GL66-12UEK:~$ ls -l /var/cache/apt/archives | grep linux-firmware
arghya@arghya-Pulse-GL66-12UEK:~$ dmesg | grep iwlwifi
[    3.661664] iwlwifi 0000:00:14.3: enabling device (0000 -> 0002)
[    3.665229] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-63.ucode failed with error -2
[    3.665343] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-62.ucode failed with error -2
[    3.665361] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-61.ucode failed with error -2
[    3.665377] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-60.ucode failed with error -2
[    3.665470] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-59.ucode failed with error -2
[    3.665483] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-58.ucode failed with error -2
[    3.665496] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-57.ucode failed with error -2
[    3.665508] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-56.ucode failed with error -2
[    3.665605] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-55.ucode failed with error -2
[    3.665626] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-54.ucode failed with error -2
[    3.665643] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-53.ucode failed with error -2
[    3.665660] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-52.ucode failed with error -2
[    3.665675] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-51.ucode failed with error -2
[    3.665690] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-50.ucode failed with error -2
[    3.665705] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-49.ucode failed with error -2
[    3.665723] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-48.ucode failed with error -2
[    3.665737] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-47.ucode failed with error -2
[    3.665756] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-46.ucode failed with error -2
[    3.665770] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-45.ucode failed with error -2
[    3.665786] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-44.ucode failed with error -2
[    3.665800] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-43.ucode failed with error -2
[    3.665815] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-42.ucode failed with error -2
[    3.665830] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-41.ucode failed with error -2
[    3.665844] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-40.ucode failed with error -2
[    3.665859] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-39.ucode failed with error -2
[    3.665861] iwlwifi 0000:00:14.3: no suitable firmware found!
[    3.665865] iwlwifi 0000:00:14.3: minimum version required: iwlwifi-so-a0-hr-b0-39
[    3.665867] iwlwifi 0000:00:14.3: maximum version supported: iwlwifi-so-a0-hr-b0-63
[    3.665870] iwlwifi 0000:00:14.3: check git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

Here are some more outputs:

arghya@arghya-Pulse-GL66-12UEK:~$ lspci -knn | grep Net -A3; rfkill list:
00:14.3 Network controller [0280]: Intel Corporation Device [8086:51f0] (rev 01)
	DeviceName: Onboard - Ethernet
	Subsystem: Intel Corporation Device [8086:0074]
	Kernel modules: iwlwifi
Try 'rfkill --help' for more information.
arghya@arghya-Pulse-GL66-12UEK:~$ uname -r
5.13.0-44-generic
arghya@arghya-Pulse-GL66-12UEK:~$ sudo apt update
[sudo] password for arghya: 
Get:1 https://dl.google.com/linux/chrome/deb stable InRelease [1,811 B]
Hit:2 http://bd.archive.ubuntu.com/ubuntu focal InRelease                        
Get:3 https://dl.google.com/linux/chrome/deb stable/main amd64 Packages [1,100 B]
Get:4 http://bd.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]   
Get:5 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Get:6 http://bd.archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
Get:7 http://bd.archive.ubuntu.com/ubuntu focal-updates/main amd64 DEP-11 Metadata [278 kB]
Get:8 http://security.ubuntu.com/ubuntu focal-security/main amd64 DEP-11 Metadata [40.7 kB]
Get:9 http://bd.archive.ubuntu.com/ubuntu focal-updates/universe amd64 DEP-11 Metadata [390 kB]
Get:10 http://security.ubuntu.com/ubuntu focal-security/universe amd64 DEP-11 Metadata [66.3 kB]                  
Get:11 http://bd.archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 DEP-11 Metadata [944 B]
Get:12 http://bd.archive.ubuntu.com/ubuntu focal-backports/main amd64 DEP-11 Metadata [8,000 B]
Get:13 http://bd.archive.ubuntu.com/ubuntu focal-backports/universe amd64 DEP-11 Metadata [30.8 kB]
Get:14 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 DEP-11 Metadata [2,464 B]                        
Fetched 1,156 kB in 6s (190 kB/s)                                                                                         
Reading package lists... Done
Building dependency tree       
Reading state information... Done
All packages are up to date.
arghya@arghya-Pulse-GL66-12UEK:~$ sudo apt upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following package was automatically installed and is no longer required:
  libfwupdplugin1
Use 'sudo apt autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
arghya@arghya-Pulse-GL66-12UEK:~$ sudo apt install git build-essentials dkms
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package build-essentials
arghya@arghya-Pulse-GL66-12UEK:~$ sudo apt install git build-essential dkms
Reading package lists... Done
Building dependency tree       
Reading state information... Done
build-essential is already the newest version (12.8ubuntu1.1).
build-essential set to manually installed.
dkms is already the newest version (2.8.1-5ubuntu2).
dkms set to manually installed.
The following package was automatically installed and is no longer required:
  libfwupdplugin1
Use 'sudo apt autoremove' to remove it.
Suggested packages:
  git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-cvs git-mediawiki git-svn
The following NEW packages will be installed:
  git git-man liberror-perl
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 5,471 kB of archives.
After this operation, 38.4 MB of additional disk space will be used.
Get:1 http://bd.archive.ubuntu.com/ubuntu focal/main amd64 liberror-perl all 0.17029-1 [26.5 kB]
Get:2 http://bd.archive.ubuntu.com/ubuntu focal-updates/main amd64 git-man all 1:2.25.1-1ubuntu3.4 [885 kB]
Get:3 http://bd.archive.ubuntu.com/ubuntu focal-updates/main amd64 git amd64 1:2.25.1-1ubuntu3.4 [4,560 kB]
Fetched 5,471 kB in 4s (1,216 kB/s)
Selecting previously unselected package liberror-perl.
(Reading database ... 188227 files and directories currently installed.)
Preparing to unpack .../liberror-perl_0.17029-1_all.deb ...
Unpacking liberror-perl (0.17029-1) ...
Selecting previously unselected package git-man.
Preparing to unpack .../git-man_1%3a2.25.1-1ubuntu3.4_all.deb ...
Unpacking git-man (1:2.25.1-1ubuntu3.4) ...
Selecting previously unselected package git.
Preparing to unpack .../git_1%3a2.25.1-1ubuntu3.4_amd64.deb ...
Unpacking git (1:2.25.1-1ubuntu3.4) ...
Setting up liberror-perl (0.17029-1) ...
Setting up git-man (1:2.25.1-1ubuntu3.4) ...
Setting up git (1:2.25.1-1ubuntu3.4) ...
Processing triggers for man-db (2.9.1-1) ...
arghya@arghya-Pulse-GL66-12UEK:~$ lspci
00:00.0 Host bridge: Intel Corporation Device 4641 (rev 02)
00:01.0 PCI bridge: Intel Corporation Device 460d (rev 02)
00:02.0 VGA compatible controller: Intel Corporation Device 46a6 (rev 0c)
00:04.0 Signal processing controller: Intel Corporation Device 461d (rev 02)
00:06.0 PCI bridge: Intel Corporation Device 464d (rev 02)
00:06.2 PCI bridge: Intel Corporation Device 463d (rev 02)
00:08.0 System peripheral: Intel Corporation Device 464f (rev 02)
00:14.0 USB controller: Intel Corporation Device 51ed (rev 01)
00:14.2 RAM memory: Intel Corporation Device 51ef (rev 01)
00:14.3 Network controller: Intel Corporation Device 51f0 (rev 01)
00:15.0 Serial bus controller [0c80]: Intel Corporation Device 51e8 (rev 01)
00:16.0 Communication controller: Intel Corporation Device 51e0 (rev 01)
00:17.0 SATA controller: Intel Corporation Device 51d3 (rev 01)
00:1c.0 PCI bridge: Intel Corporation Device 51b8 (rev 01)
00:1c.5 PCI bridge: Intel Corporation Device 51bd (rev 01)
00:1f.0 ISA bridge: Intel Corporation Device 5182 (rev 01)
00:1f.3 Multimedia audio controller: Intel Corporation Device 51c8 (rev 01)
00:1f.4 SMBus: Intel Corporation Device 51a3 (rev 01)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Device 51a4 (rev 01)
01:00.0 VGA compatible controller: NVIDIA Corporation Device 2520 (rev a1)
01:00.1 Audio device: NVIDIA Corporation Device 228e (rev a1)
02:00.0 Non-Volatile memory controller: Micron Technology Inc Device 5411 (rev 01)
03:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd Device a80a
05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
arghya@arghya-Pulse-GL66-12UEK:~$ ls /usr/lib/firmware/ | grep iwlwifi-so-a0-hr-b0
iwlwifi-so-a0-hr-b0-64.ucode
arghya@arghya-Pulse-GL66-12UEK:~$ sudo dmesg | grep iwl
[sudo] password for arghya: 
[    3.889490] iwlwifi 0000:00:14.3: enabling device (0000 -> 0002)
[    3.897524] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-63.ucode failed with error -2
[    3.897742] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-62.ucode failed with error -2
[    3.897779] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-61.ucode failed with error -2
[    3.897801] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-60.ucode failed with error -2
[    3.898099] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-59.ucode failed with error -2
[    3.898137] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-58.ucode failed with error -2
[    3.898158] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-57.ucode failed with error -2
[    3.898180] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-56.ucode failed with error -2
[    3.898371] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-55.ucode failed with error -2
[    3.898398] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-54.ucode failed with error -2
[    3.898418] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-53.ucode failed with error -2
[    3.898440] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-52.ucode failed with error -2
[    3.898473] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-51.ucode failed with error -2
[    3.898503] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-50.ucode failed with error -2
[    3.898523] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-49.ucode failed with error -2
[    3.898544] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-48.ucode failed with error -2
[    3.898567] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-47.ucode failed with error -2
[    3.898587] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-46.ucode failed with error -2
[    3.898606] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-45.ucode failed with error -2
[    3.898632] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-44.ucode failed with error -2
[    3.898653] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-43.ucode failed with error -2
[    3.898675] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-42.ucode failed with error -2
[    3.898695] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-41.ucode failed with error -2
[    3.898716] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-40.ucode failed with error -2
[    3.898737] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-hr-b0-39.ucode failed with error -2
[    3.898741] iwlwifi 0000:00:14.3: no suitable firmware found!
[    3.898747] iwlwifi 0000:00:14.3: minimum version required: iwlwifi-so-a0-hr-b0-39
[    3.898750] iwlwifi 0000:00:14.3: maximum version supported: iwlwifi-so-a0-hr-b0-63
[    3.898752] iwlwifi 0000:00:14.3: check git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
arghya@arghya-Pulse-GL66-12UEK:~$ sudo modprobe iwlwifi
arghya@arghya-Pulse-GL66-12UEK:~$ spci -nnk | grep -e 0200 -e 0280 -A3

Command 'spci' not found, did you mean:

  command 'xpci' from deb xdiagnose (3.8.9)
  command 'spc' from deb supercat (0.5.7-1)
  command 'sci' from deb scheme2c (2012.10.14-1ubuntu1)
  command 'lspci' from deb pciutils (1:3.6.4-1ubuntu0.20.04.1)
  command 's2ci' from deb scheme2c (2012.10.14-1ubuntu1)

Try: sudo apt install <deb name>

arghya@arghya-Pulse-GL66-12UEK:~$ l!!
lspci -nnk | grep -e 0200 -e 0280 -A3
00:14.3 Network controller [0280]: Intel Corporation Device [8086:51f0] (rev 01)
	DeviceName: Onboard - Ethernet
	Subsystem: Intel Corporation Device [8086:0074]
	Kernel modules: iwlwifi
--
05:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
	Subsystem: Micro-Star International Co., Ltd. [MSI] RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [1462:1333]
	Kernel driver in use: r8169
	Kernel modules: r8169

Answer:

Your immediate problem is that you're running with the latest 20.04 kernel 5.13.0-39-generic, and you don't have the proper iwlwifi-so*.ucode firmware files for your wifi card, and the backport-iwlwifi-dkms that you tried to install won't work with your current kernel.

The required iwlwifi-so-a0-gf-a0-63.ucode firmware doesn't seem to exist in any of the linux-firmware blobs.

backport-iwlwifi-dkms_8324-0ubuntu3~20.04.4_all.deb won't install on the latest 20.04 kernel 5.13.0-39-generic without modifications. See here. But that won't work anyway.

Remove the older backport-iwlwifi module that you tried to install...

sudo dkms remove backport-iwlwifi/8324 -k 5.13.0-39-generic

You'll need to get the impish version of backport-iwlwifi-dkms here and the latest linux-firmware from here.

Install the two files this way...

sudo dpkg -i backport-iwlwifi-dkms_9340-0ubuntu4_all.deb

Expand linux-firmware-20220310.tar.gz and sudo cp the iwlwifi-so* files to /lib/firmware.

reboot

Retest wifi.

Source: https://askubuntu.com/questions/1401173/wireless-network-not-showing-with-iwlwifi-card

@chojuninengu
Copy link

perfect very helpful

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment