使用本教程前,请先确认你机器里有英特尔无线网卡。该教程只适用于英特尔无线网卡。其他无线网卡修改 iwlwifi.conf没有任何效果!
iwlwifi.conf
无线网卡的型号可以在“设备管理器”应用中查看,或者使用如下命令查看:
lspci | grep -i wireless
比如我的输出为:
03:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8822CE 802.11ac PCIe Wireless Network Adapter
说明我的无线网卡是瑞昱的,不是英特尔的,不需要使用该教程,用了也毫无效果。
如果你的输出带有“Intel”字样,则可以使用该教程。
/etc/modprobe.d/iwlwifi.conf里保存了英特尔无线网卡的参数,不同网卡需要设置不同参数,才能达到最佳工作状态。但是,Linux系统通常无法帮你配置为最佳状态,因为配置不当可能会导致你完全无法连接任何无线网络,或者网速变成龟速。而不同无线网卡所需的最佳配置是不同的!
/etc/modprobe.d/iwlwifi.conf
无线网卡的Linux驱动不是英特尔编写的,英特尔也不会配合Linux发行版进行参数调试。所以,Linux发行版通常只会采用“大多数无线网卡都能用”的“保守设置”,这会限制某些高性能无线网卡的网速,但是也可以确保另一些低性能无线网卡不至于彻底断网。要获得最佳性能,你必须自行修改参数。
下面介绍该文件的结构。比如,UOS中该文件的默认内容如下(可以通过 cat /etc/modprobe.d/iwlwifi.conf看到):
cat /etc/modprobe.d/iwlwifi.conf
options iwlwifi 11n_disable=1 bt_coex_active=0 power_save=0 swcrypto=1
该文件的结构如下:
options iwlwifi
名称=值
可选参数如下(可以通过 modinfo iwlwifi | grep parm命令获得,仅翻译可能需要调整的项目。未翻译项目请自行探索其用途):
modinfo iwlwifi | grep parm
11n_disable
bt_coex_active
power_save
swcrypto
disable_11ac
disable_11ax
amsdu_size
fw_restart
nvm_file
uapsd_disable
enable_ini
led_mode
power_level
remove_when_gone
所以UOS给出的默认参数就非常糟糕了,具体如下:
11n_disable=1禁用了WiFi4,所以整个WiFi不管怎么样都会很慢。
bt_coex_active=0使蓝牙和WiFi不能同时开启。
power_save=0关了省电模式,这很好,没问题。
swcrypto=1关了硬件加密,不仅占用了更多CPU资源,还有让WiFi变慢的风险。
所以,更合理的设置是:
options iwlwifi 11n_disable=0 bt_coex_active=1 power_save=0 swcrypto=0
通过以下命令可以修改为这个“更合理的设置”:
# 创建配置文件 sudo echo 'options iwlwifi 11n_disable=0 bt_coex_active=1 power_save=0 swcrypto=0' | sudo tee /etc/modprobe.d/iwlwifi.conf # 更新initramfs让配置文件生效,不同的系统方法不同。如果忽略这一步,重启后配置文件可能不会生效。 # Debian, Ubuntu, Deepin, UOS sudo update-initramfs -k all -u # Fedora sudo dracut --force --no-hostonly # Archlinux sudo mkinitcpio -P # 最后重启,配置文件就会生效
注意 sudo会询问你电脑的开机密码,输完回车即可,输入过程中不会有任何显示(就像输入没反应一样),这是终端的安全措施。
sudo
命令执行完成后重启生效。
注意每次修改 iwlwifi.conf之后都需要执行 sudo update-initramfs -k all -u并重启,否则更改可能不会生效。
sudo update-initramfs -k all -u
如果重启后你的无线网卡连不上WiFi热点,或者出现其他问题,请尝试调整参数,比如改成:
# 创建配置文件 sudo echo 'options iwlwifi 11n_disable=8 bt_coex_active=1 power_save=0 swcrypto=0' | sudo tee /etc/modprobe.d/iwlwifi.conf # 更新initramfs让配置文件生效,不同的系统方法不同。如果忽略这一步,重启后配置文件可能不会生效。 # Debian, Ubuntu, Deepin, UOS sudo update-initramfs -k all -u # Fedora sudo dracut --force --no-hostonly # Archlinux sudo mkinitcpio -P # 最后重启,配置文件就会生效
或者
# 创建配置文件 sudo echo 'options iwlwifi 11n_disable=0 bt_coex_active=0 power_save=0 swcrypto=1' | sudo tee /etc/modprobe.d/iwlwifi.conf # 更新initramfs让配置文件生效,不同的系统方法不同。如果忽略这一步,重启后配置文件可能不会生效。 # Debian, Ubuntu, Deepin, UOS sudo update-initramfs -k all -u # Fedora sudo dracut --force --no-hostonly # Archlinux sudo mkinitcpio -P # 最后重启,配置文件就会生效
你可以上网搜索最适合你网卡的设置。
又有新教程了👍🏻👍🏻👍🏻
转到UOS论坛,我让txqd给你加精。
好教程 @pzm9012
学习了
睡眠唤醒后,wifi设备断开连接,能不能通过这种方式解决呢
Popular Ranking
Popular Events
本文转载自:@老虎会游泳 虎绿林
前言
使用本教程前,请先确认你机器里有英特尔无线网卡。该教程只适用于英特尔无线网卡。其他无线网卡修改
iwlwifi.conf
没有任何效果!无线网卡的型号可以在“设备管理器”应用中查看,或者使用如下命令查看:
lspci | grep -i wireless
比如我的输出为:
03:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8822CE 802.11ac PCIe Wireless Network Adapter
说明我的无线网卡是瑞昱的,不是英特尔的,不需要使用该教程,用了也毫无效果。
如果你的输出带有“Intel”字样,则可以使用该教程。
正文
/etc/modprobe.d/iwlwifi.conf
里保存了英特尔无线网卡的参数,不同网卡需要设置不同参数,才能达到最佳工作状态。但是,Linux系统通常无法帮你配置为最佳状态,因为配置不当可能会导致你完全无法连接任何无线网络,或者网速变成龟速。而不同无线网卡所需的最佳配置是不同的!无线网卡的Linux驱动不是英特尔编写的,英特尔也不会配合Linux发行版进行参数调试。所以,Linux发行版通常只会采用“大多数无线网卡都能用”的“保守设置”,这会限制某些高性能无线网卡的网速,但是也可以确保另一些低性能无线网卡不至于彻底断网。要获得最佳性能,你必须自行修改参数。
下面介绍该文件的结构。比如,UOS中该文件的默认内容如下(可以通过
cat /etc/modprobe.d/iwlwifi.conf
看到):options iwlwifi 11n_disable=1 bt_coex_active=0 power_save=0 swcrypto=1
该文件的结构如下:
options iwlwifi
,后面接一系列可选参数。名称=值
,由空格分隔。可选参数如下(可以通过
modinfo iwlwifi | grep parm
命令获得,仅翻译可能需要调整的项目。未翻译项目请自行探索其用途):11n_disable
:802.11n(WiFi4)功能开关,bitmap类型:0 完全启用WiFi4功能,1 完全禁用WiFi4功能(WiFi严重变慢),2 禁用发送链路聚合,4 禁用接收链路聚合,6 禁用发送和接收链路聚合,8 强制启用发送链路聚合。 (建议值 0 [完全启用WiFi4功能]。如 0 效果不佳,建议 8 [强制启用发送链路聚合]。 发行版把该参数设为1就是很多人WiFi很慢的原因 ,但是发行版有理由这么做,因为设为0的话,另一些人可能会断网。所以建议你先尝试其他值,效果均不佳再考虑设为1。)bt_coex_active
:蓝牙/WiFi共存开关:1 蓝牙/WiFi可以同时开启。0 蓝牙/WiFi不可同时开启。 (默认: 1 [可以同时开启],建议: 1 [可以同时开启]。但如果开启蓝牙后WiFi严重变慢,则可能应该设为0。)power_save
:1 启用WiFi省电模式,0 禁用WiFi省电模式 (默认: 0 [禁用省电模式],建议: 0 [禁用省电模式])swcrypto
:1 使用软件加密,0 使用硬件加密 (默认 0 [硬件加密],建议 0 [硬件加密]。但如果设为0后断网,则应该设为1。)对该选项的粗浅解释:无线网卡可以负责和WiFi密码有关的工作,但是如果你想,你也可以让CPU负责。交给无线网卡处理可以更快,但是如果不兼容,那只能CPU接管。
disable_11ac
: 802.11ac(WiFi5)功能开关:0 启用WiFi5,1 禁用WiFi5 (默认: 0 [启用WiFi5],建议: 0 [启用WiFi5]。不支持5GHz的网卡无需关注该选项。)disable_11ax
: 802.11ax(WiFi6)功能开关:0 启用WiFi6,1 禁用WiFi6 (默认: 0 [启用WiFi6],建议: 0 [启用WiFi6]。不支持WiFi6的网卡无需关注该选项。)amsdu_size
:amsdu size 0: 12K for multi Rx queue devices, 2K for AX210 devices, 4K for other devices 1:4K 2:8K 3:12K 4: 2K (default 0) (int)fw_restart
: restart firmware in case of error (default true) (bool)nvm_file
:NVM file name (charp)uapsd_disable
:disable U-APSD functionality bitmap 1: BSS 2: P2P Client (default: 3) (uint)enable_ini
:Enable debug INI TLV FW debug infrastructure (default: true (bool)enable_ini
led_mode
: 0=system default, 1=On(RF On)/Off(RF Off), 2=blinking, 3=Off (default: 0) (int)power_level
:default power save level (range from 1 - 5, default: 1) (int)remove_when_gone
:Remove dev from PCIe bus if it is deemed inaccessible (default: false) (bool)所以UOS给出的默认参数就非常糟糕了,具体如下:
11n_disable=1禁用了WiFi4,所以整个WiFi不管怎么样都会很慢。
bt_coex_active=0使蓝牙和WiFi不能同时开启。
power_save=0关了省电模式,这很好,没问题。
swcrypto=1关了硬件加密,不仅占用了更多CPU资源,还有让WiFi变慢的风险。
所以,更合理的设置是:
options iwlwifi 11n_disable=0 bt_coex_active=1 power_save=0 swcrypto=0
通过以下命令可以修改为这个“更合理的设置”:
注意
sudo
会询问你电脑的开机密码,输完回车即可,输入过程中不会有任何显示(就像输入没反应一样),这是终端的安全措施。命令执行完成后重启生效。
注意每次修改
iwlwifi.conf
之后都需要执行sudo update-initramfs -k all -u
并重启,否则更改可能不会生效。如果重启后你的无线网卡连不上WiFi热点,或者出现其他问题,请尝试调整参数,比如改成:
或者
你可以上网搜索最适合你网卡的设置。