Intel WiFi device needs firmware, and it has to be loaded into the device driver during the device initialization. Some firmware is opensource and free to load. However, Intel WiFi driver requires a non-free binary blob. Let us see how to configure Intel WiFi on Debian to load firmware and configure networking using the command-line.
Tutorial details | |
---|---|
Difficulty | Intermediate (rss) |
Root privileges | Yes |
Requirements | Debian Linux 10 or 11 |
Time | 5m |
iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-8265-36.ucode (-2) error and solution
Here is the error when you run the dmesg command:
[ 85.227230] iwlwifi 0000:01:00.0: enabling device (0000 -> 0002) [ 85.233019] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-8265-36.ucode (-2) [ 85.233059] firmware_class: See https://wiki.debian.org/Firmware for information about missing firmware [ 85.233101] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8265-36.ucode failed with error -2 [ 85.233110] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-8265-35.ucode (-2) [ 85.233146] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8265-35.ucode failed with error -2 [ 85.233153] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-8265-34.ucode (-2) [ 85.233191] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8265-34.ucode failed with error -2 [ 85.233201] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-8265-33.ucode (-2) [ 85.233238] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8265-33.ucode failed with error -2 [ 85.233246] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-8265-32.ucode (-2) [ 85.233248] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8265-32.ucode failed with error -2 [ 85.233255] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-8265-31.ucode (-2) [ 85.233334] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8265-31.ucode failed with error -2 [ 85.233343] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-8265-30.ucode (-2) [ 85.233386] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8265-30.ucode failed with error -2 [ 85.233395] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-8265-29.ucode (-2) [ 85.233434] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8265-29.ucode failed with error -2 [ 85.233444] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-8265-28.ucode (-2) [ 85.233482] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8265-28.ucode failed with error -2 [ 85.233490] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-8265-27.ucode (-2) [ 85.233528] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8265-27.ucode failed with error -2 [ 85.233537] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-8265-26.ucode (-2) [ 85.233575] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8265-26.ucode failed with error -2 [ 85.233584] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-8265-25.ucode (-2) [ 85.233630] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8265-25.ucode failed with error -2 [ 85.233639] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-8265-24.ucode (-2) [ 85.233677] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8265-24.ucode failed with error -2 [ 85.233686] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-8265-23.ucode (-2) [ 85.233724] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8265-23.ucode failed with error -2 [ 85.233732] iwlwifi 0000:01:00.0: firmware: failed to load iwlwifi-8265-22.ucode (-2) [ 85.233772] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8265-22.ucode failed with error -2 [ 85.233774] iwlwifi 0000:01:00.0: minimum version required: iwlwifi-8265-22 [ 85.233807] iwlwifi 0000:01:00.0: maximum version supported: iwlwifi-8265-36 [ 85.233843] iwlwifi 0000:01:00.0: check git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
Another message indicating Intel GPU firmware missing:
[ 85.310393] i915 0000:00:02.0: firmware: failed to load i915/kbl_dmc_ver1_04.bin (-2) [ 85.310399] i915 0000:00:02.0: Direct firmware load for i915/kbl_dmc_ver1_04.bin failed with error -2
This one indicates that Bluetooth firmware missing:
[ 85.317912] bluetooth hci0: firmware: failed to load intel/ibt-12-16.sfi (-2) [ 85.317918] bluetooth hci0: Direct firmware load for intel/ibt-12-16.sfi failed with error -2
How to configure Intel WiFi on Debian Linux to load binary firmware
Edit the /etc/apt/sources.list and make sure the non-free added to the sources.list file.
sudo vim /etc/apt/sources.list
My updated file:
deb http://deb.debian.org/debian/ buster main non-free deb-src http://deb.debian.org/debian/ buster main non-free deb http://security.debian.org/debian-security buster/updates main non-free deb-src http://security.debian.org/debian-security buster/updates main non-free # buster-updates, previously known as 'volatile' deb http://deb.debian.org/debian/ buster-updates main non-free deb-src http://deb.debian.org/debian/ buster-updates main non-free # This system was installed using small removable media # (e.g. netinst, live or single CD). The matching "deb cdrom" # entries were disabled at the end of the installation process. # For information about how to configure apt package sources, # see the sources.list(5) manual.
Update repo and apply all security updates on Debian Linux
Run the apt command:
sudo apt update
sudo apt upgrade
Searching for Intel WiFi firmware on Debian Linux 10 or 11
Open the terminal and then run:
sudo apt search firmware-iwlwifi
We will see something as follows:
Sorting... Done Full Text Search... Done firmware-iwlwifi/stable 20190114-2 all Binary firmware for Intel Wireless cards
Installing Intel Wifi driver on Debian Linux when you get firmware: failed to load iwlwifi-8265-36.ucode error
Execute the following command:
sudo apt install firmware-iwlwifi
Installtion session:
Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: linux-image-4.19.0-11-amd64 Use 'apt autoremove' to remove it. The following NEW packages will be installed: firmware-iwlwifi 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 5,318 kB of archives. After this operation, 45.1 MB of additional disk space will be used. Get:1 http://deb.debian.org/debian buster/non-free amd64 firmware-iwlwifi all 20190114-2 [5,318 kB] Fetched 5,318 kB in 1s (5,312 kB/s) Selecting previously unselected package firmware-iwlwifi. (Reading database ... 36546 files and directories currently installed.) Preparing to unpack .../firmware-iwlwifi_20190114-2_all.deb ... Unpacking firmware-iwlwifi (20190114-2) ... Setting up firmware-iwlwifi (20190114-2) ...
Loading Intel WiFi device driver firemware
Run the modprobe command to add or remove firmware and driver for Intel WiFI:
sudo modprobe -r iwlwifi
sudo modprobe iwlwifi
sudo dmesg
Confirmtion:
[ 1642.714145] Intel(R) Wireless WiFi driver for Linux [ 1642.714146] Copyright(c) 2003- 2015 Intel Corporation [ 1642.714842] iwlwifi 0000:01:00.0: firmware: direct-loading firmware iwlwifi-8265-36.ucode [ 1642.715204] iwlwifi 0000:01:00.0: loaded firmware version 36.9f0a2d68.0 op_mode iwlmvm [ 1642.758139] iwlwifi 0000:01:00.0: Detected Intel(R) Dual Band Wireless AC 8265, REV=0x230 [ 1642.817159] iwlwifi 0000:01:00.0: base HW address: b4:6b:fc:32:7a:12 [ 1642.901773] ieee80211 phy0: Selected rate control algorithm 'iwl-mvm-rs' [ 1642.901990] thermal thermal_zone5: failed to read out thermal zone (-61) [ 1642.904612] iwlwifi 0000:01:00.0 wlp1s0: renamed from wlan0
Please note down the “wlp1s0” WiFi interface name.
Finding out Intel Wifi interface name on Debian
We use the ip command
ip -c a s
ip -c link show
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: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 54:b2:03:09:00:be brd ff:ff:ff:ff:ff:ff inet 192.168.2.166/24 brd 192.168.2.255 scope global dynamic eno1 valid_lft 5374sec preferred_lft 5374sec inet6 fe80::56b2:3ff:fe09:be/64 scope link valid_lft forever preferred_lft forever 3: wlp1s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether b4:6b:fc:32:7a:12 brd ff:ff:ff:ff:ff:ff
The wlp1s0 is down as our WiFi router needs authentication, and then only it will assign an IP address using DHCP. Once firmware loaded driver activated, Intel Wifi on Debian can be configured using various methods such as:
- nmcli command
- GNOME or KDE Network settings GUI tools
- wpa_supplicant command
Configuring Intel Wifi on Debian Linux with DHCP
I am going to use wpa_supplicant. It is a cross-platform supplicant with support for WEP, WPA, and WPA2 when using WiFi. Let us install it:
sudo apt install wpasupplicant
Next create a new config file:
sudo sh -c 'wpa_passphrase your_ssid "wifi_password" > /etc/wpa_supplicant/wpa_supplicant.conf
Edit the /etc/wpa_supplicant/wpa_supplicant.conf, run:
sudo vim /etc/wpa_supplicant/wpa_supplicant.conf
Update it by appending ctrl_interface and update_config as follows:
network={ ssid="your_ssid" psk=some_random_encrypted_wifi_password } ctrl_interface=/run/wpa_supplicant update_config=1
So far, so good. We set up WiFi SSID and passphrase/password for wireless the router. Next, create a new config file for our interface:
sudo vim /etc/network/interfaces.d/wlp1s0.conf
Append the following config:
allow-hotplug wlp1s0 iface wlp1s0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Restart services using the systemctl command
sudo systemctl reenable wpa_supplicant.service
sudo systemctl restart wpa_supplicant.service
sudo systemctl restart networking.service
Verify IP address and concitivity using the ping command:
ip -br -c link show
ip -br -c addr show
ip -c addr show wlp1s0
ping -c 4 www.cyberciti.biz
Summing up
And there you have it, Intel WiFi’s missing firmware loaded and the device configured to obtain an IP address and DNS information using DHCP. See Debian Wiki documentation for further information.
🐧 Get the latest tutorials on Linux, Open Source & DevOps via:
- RSS feed or Weekly email newsletter
- Share on Twitter • Facebook • 0 comments... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |