解决Debian 9 iwlwifi固件缺失导致无法连接无线网络的问题

前言:
本文介绍了解决Debian9安装完成后无法连接wifi的问题以及一些扩展知识。

问题描述:
安装Debian9的时候就提示缺少iwlwifi固件,但是我当时连接的是有线网络,因此跳过去该问题并没有影响我安装Debian。不过,以这种方式安装完成的Debian只能使用有线网络连接互联网,无法使用无线网络。当插入一个USB无线网卡时,我们会在网络连接页面看到“固件缺失”的提示:

wifi固件缺失
图 1 wifi固件缺失

操作环境:
系统:

网络:

有线网络(用于下载安装包)和无线网络(用于验证问题是否解决

解决过程:

1.连接上有线网络并切换到root用户。

2.备份一下Debian9的软件源配置文件:

2.打开Debian9的软件源配置文件:

注:用leafpad打开方便复制,Debian9默认没有安装leafpad.

3.将 non-free 添加到每个源的后面:
修改好之后是这样的:

更新系统:

安装firmware-iwlwifi包:

iwlwifi模块可以被自动加载,当iwlwifi被自动加载时我们需要重新插入该模块以访问固件。
设置iwlwifi自动重新加载:

之后我们就可以看到wifi连接的选项了:

成功连接wifi
图 2 成功连接wifi

扩展知识:
Debian是一个开源操作系统。因此,在安装Debian的时候,默认只安装自由软件,而非自由软件(non-free)则不会被默认安装。在Debian官方的wiki(https://wiki.debian.org/WiFi)中有关于wifi固件以及非开源的wifi驱动程序的说明,在这篇关于wifi的wiki里,有这样的描述:
Currently there are only a few modern wifi chipsets readily available that work with free software systems. For USB wifi devices this list includes the Realtek RTL8187B chipset (802.11G) and the Atheros AR9170 chipset (802.11N). For Mini PCIe all cards with an Atheros chipset are supported.”.

翻译成中文就是:
目前只有少数几个现代的WiFi芯片组可以与自由软件系统一起工作。对于USB WiFi设备,该列表包括RealTek RTL8187B芯片组(802.11g)和ActhOS AR9170芯片组(802.11n)。对于小型PCIe,所有具有AcICOS芯片组的卡都得到支持。

也就是说并不是所有计算机中的wifi固件都支持自由软件,因此Debian9默认并没有启用对wifi的支持。但是 802.11n是支持自由软件的,所以我们需要安装iwlwifi Linux kernel driver(iwlwifi内核驱动程序)来启用对Intel 802.11n devices(Intel 802.11n设备)的支持。

参考资料:
1.Debian Wiki: WiFi:https://wiki.debian.org/WiFi

2.Debian Wiki: iwlwifi:https://wiki.debian.org/iwlwifi

3.iwlwifi – WikiDevi:https://wikidevi.com/wiki/Iwlwifi

4.802.11n_百度百科:https://baike.baidu.com/item/802.11n