Centos7关闭无线网卡节能模式,解决wifi连接卡慢问题
[TOC]
一、起因
把我的老旧笔记本实机安装Centos7,改造成“高性能”开发机,笔记本上的无线网卡也能顺带利用,毕竟我也不想多拉条网线到笔记本上。
但是,连接上后却发现特别卡,用现在在用的电脑ping了一下,大吃一惊
ping 192.168.1.214 -n 7
正在 Ping 192.168.1.214 具有 32 字节的数据:
来自 192.168.1.214 的回复: 字节=32 时间=91ms TTL=64
来自 192.168.1.214 的回复: 字节=32 时间=32ms TTL=64
来自 192.168.1.214 的回复: 字节=32 时间=59ms TTL=64
来自 192.168.1.214 的回复: 字节=32 时间=75ms TTL=64
来自 192.168.1.214 的回复: 字节=32 时间=96ms TTL=64
来自 192.168.1.214 的回复: 字节=32 时间=16ms TTL=64
来自 192.168.1.214 的回复: 字节=32 时间=43ms TTL=64
找了下问题的原因,大概是无线网卡默认开启了节能模式,输入modinfo iwlwifi | grep -v alias,查看驱动信息
filename: /lib/modules/4.4.246-1.el7.elrepo.x86_64/kernel/drivers/net/wireless/iwlwifi/iwlwifi.ko
license: GPL
author: Copyright(c) 2003- 2015 Intel Corporation
description: Intel(R) Wireless WiFi driver for Linux
firmware: iwlwifi-100-5.ucode
firmware: iwlwifi-1000-5.ucode
firmware: iwlwifi-135-6.ucode
firmware: iwlwifi-105-6.ucode
firmware: iwlwifi-2030-6.ucode
firmware: iwlwifi-2000-6.ucode
firmware: iwlwifi-5150-2.ucode
firmware: iwlwifi-5000-5.ucode
firmware: iwlwifi-6000g2b-6.ucode
firmware: iwlwifi-6000g2a-5.ucode
firmware: iwlwifi-6050-5.ucode
firmware: iwlwifi-6000-4.ucode
firmware: iwlwifi-7265D-13.ucode
firmware: iwlwifi-7265-13.ucode
firmware: iwlwifi-3160-13.ucode
firmware: iwlwifi-7260-13.ucode
firmware: iwlwifi-8000-13.ucode
srcversion: 4B4318AA2D9B84BCB9C8826
depends: cfg80211
retpoline: Y
intree: Y
vermagic: 4.4.246-1.el7.elrepo.x86_64 SMP mod_unload modversions
parm: swcrypto:using crypto in software (default 0 [hardware]) (int)
parm: 11n_disable:disable 11n functionality, bitmap: 1: full, 2: disable agg TX, 4: disable agg RX, 8 enable agg TX (uint)
parm: amsdu_size_8K:enable 8K amsdu size (default 0) (int)
parm: fw_restart:restart firmware in case of error (default true) (bool)
parm: antenna_coupling:specify antenna coupling in dB (default: 0 dB) (int)
parm: nvm_file:NVM file name (charp)
parm: d0i3_disable:disable d0i3 functionality (default: Y) (bool)
parm: lar_disable:disable LAR functionality (default: N) (bool)
parm: uapsd_disable:disable U-APSD functionality (default: Y) (bool)
parm: bt_coex_active:enable wifi/bt co-exist (default: enable) (bool)
parm: led_mode:0=system default, 1=On(RF On)/Off(RF Off), 2=blinking, 3=Off (default: 0) (int)
parm: power_save:enable WiFi power management (default: disable) (bool)
parm: power_level:default power save level (range from 1 - 5, default: 1) (int)
parm: fw_monitor:firmware monitor - to debug FW (default: false - needs lots of memory) (bool)
查看节能选项modinfo iwlwifi | grep power_save
parm: power_save:enable WiFi power management (default: disable) (bool)
明明默认是disable的,但是却居然启用了
不过找到问题了,然后就是解决了,解决后可以达成以下效果
ping 192.168.1.214 -n 6
正在 Ping 192.168.1.214 具有 32 字节的数据:
来自 192.168.1.214 的回复: 字节=32 时间=2ms TTL=64
来自 192.168.1.214 的回复: 字节=32 时间=3ms TTL=64
来自 192.168.1.214 的回复: 字节=32 时间=2ms TTL=64
来自 192.168.1.214 的回复: 字节=32 时间=1ms TTL=64
来自 192.168.1.214 的回复: 字节=32 时间=2ms TTL=64
来自 192.168.1.214 的回复: 字节=32 时间=1ms TTL=64
二、个人环境系统版本
Centos 7.9.2009
内核版本
4.4.246-1.el7.elrepo.x86_64
无线网卡
Intel 7265
三、安装所需软件包
安装wireless-tools
yum install wireless-tools
如果没有找到,需要开启yum epel仓库
四、关闭节能模式
查看无线网络状态,iwconfig
lo nowirelessextensions.
wlo1 IEEE 802.11abgn ESSID:"my_wifi_name"
Mode:Managed Frequency:5.22 GHz Access Point: 11:11:11:11:11:11
Bit Rate=866.7 Mb/s Tx-Power=22 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on
Link Quality=65/70 Signal level=-45 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:5 Missed beacon:0
eno1 nowirelessextensions.
可以看到Power Management:on即节能模式是开启的
临时关闭节能模式:iwconfig wlo1 power off
看一下效果:
lo nowirelessextensions.
wlo1 IEEE 802.11abgn ESSID:"my_wifi_name"
Mode:Managed Frequency:5.22 GHz Access Point: 11:11:11:11:11:11
Bit Rate=866.7 Mb/s Tx-Power=22 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=65/70 Signal level=-45 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:5 Missed beacon:0
eno1 nowirelessextensions.
设置开机自动关闭节能模式:
# 先找一下iwconfig在哪
whereis iwconfig
# ifconfig: /usr/sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
# 写入命令
tee /etc/rc.d/wireless_power_management_off <
#!/bin/bash
/usr/sbin/iwconfig wlo1 power off
EOF
# 赋予执行权限
chmod +x /etc/rc.d/wireless_power_management_off
# 重启验证一下(可选)
reboot