Thinkpad T450s Rtl8192ee无线网卡频繁掉线解决办法

李顺亮

2016年5月20日

首先请核对工作环境是否一致,我的工作环境是Slackware64 current,而且桌面环境是xfce 4,记录之时Slackware64 14.2尚未正式出炉。我只能说,这篇文章提到的办法,适合我自己。

520这样的情人节,没有情人的linux人,只好和slackware为伍,花点时间记录一下在前进道路之中遇到并且克服的疑难杂症,无非是想把冰冷的键盘,变得更有生命的乐趣。

在淘定下手购买美行thinkpad t450s之时,实际上考虑过无线网卡的问题。因为在了解机子性能,查找相关资料之时,就发现了不同配置的无线网卡不同,会带来一些不同的体验。比如说,无线网卡支持不支持5g频段。我早就是一个重度linux人,本就要是把所有微软的全格掉,只安装Slackware64 current,而且无线网卡单独支持2.4频段,其实足够了。

可是,到手之后,这台美行的thinkpad t450s无线网卡频繁掉线,wifi看得到用不上,真是让我到了无法忍受的地步。如果不顾体面的话,可以说自己崩溃到了很想如Linux之父Linus Torvalds,发飙并且竖中指大骂NVIDIA一样的程度。

没有办法,linux的世界就是这样。这不是微软的错,而是我们喜欢free的错。还是自己学着并且尝试解决问题好了,还好有伟大光荣但不一定正确的互联网。

一、延长lcp-echo-failure次数

进入 /etc/ppp/,打开options文档

把文档中的

lcp-echo-failure 4

改为

lcp-echo-failure 30

ppp就是点对点协议。如果lcp-echo-failure次数被设为4,而lcp-echo-interval设为30秒。lcp-echo-interval是每次等待回复的时间。也就是说,ppp发了4次请求帧,即120秒钟之内,ADSL服务器都没有回,系统便会认为网络出了问题,马上中断重联。

当然,也有人反映是如下问题造成困扰:

1、无线模式问题。在路由上,把11bgnmixded改成 11bgmix。

2、IPV6问题。关闭IPV6,找到/etc/modprobe.d/blacklist.conf(没有的话自己新建) 最后面加上一句 blacklist ipv6,也就是加载modprobe时候不加载ipv6。

3、自动IP问题。尝试固定IP。

如果这些修改仍然不能解决问题,那基本上只好进行下面的折腾了。

二、lspci|grep -i ether 查看硬件设备具体型号
bash-4.3# lspci|grep -i ether
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection (3) I218-LM (rev 03)

包含硬件厂商及信息,已经在终端里列出来了。

如果想显示系统加载网卡时写入/var/log/message里的信息,可以在终端里使用命令:

dmesg |grep -i eth

如果想查找包含速度模式等各项属性信息,可以在终端里使用命令:

ethtool eth0

详看http://bluemood.blog.51cto.com/1142811/703992

三、lspci -vv 查看无线网卡具体信息

终端输入lspci -vv,回车后我们看到一大串信息,最后的两行是:

Kernel driver in use: rtl8192ee
Kernel modules: rtl8192ee

内核之中的驱动和模块是rtl8192ee,这就是我们要找的真正的确切无线网卡。

此前lspci|grep -i ether 查出来的Intel Corporation Ethernet Connection (3) I218-LM (rev 03),其实是网卡的信息,而rtl8192ee是附在上面的一个设备。

Ls开头的命令十分强大。

lscpu命令,能够查看 CPU 和处理单元的信息。该命令没有任何其他选项或者别的功能。

而lspci,是另一个命令行工具,可以用来列出所有的 PCI 总线,还有与 PCI 总线相连的设备的详细信息,比如 VGA 适配器、显卡、网络适配器、usb 端口、SATA 控制器等。可以通过运行下面的命令来过滤出特定设备的信息:

lspci -v | grep "VGA" -A 12

至于lshw,是一个通用的工具,可以列出多种硬件单元的详细或者概要的信息,比如 CPU、内存、usb 控制器、硬盘等。lshw能够从各个“/proc”文件中提取出相关的信息。

如:lshw -short

还有lsscsi,可以列出像硬盘和光驱等 scsi/sata 设备的信息。

而lsusb,能够列出 USB 控制器和与 USB 控制器相连的设备的详细信息。默认情况下,lsusb命令只打印出概要信息。可以通过使用-v参数打印每一个usb端口的详细信息。

详看:Linux系统下查看硬件信息命令大全 https://linux.cn/article-6928-1.html

三、配置Rtl8192ee无线网卡驱动

1、使用git克隆文件

在终端里:

git clone https://github.com/lwfinger/rtlwifi_new.git

别告诉我你家没有网线。再不然借助其他电脑或移动终端,下载https://github.com/lwfinger/rtlwifi_new/archive/master.zip并解压文件,再复制到自己电脑也行。

2、制作并安装

其他linux系统,是需要先安装Linux内核源代码linux-source的,强大的Slackware自然没有必要了。

进入克隆好的rtlwifi_new文件夹,打开终端,先后:

make
make install

在Slackware64 current之中,似乎实现上已经直接把rtl8192eefw.bin安装到了/lib/firmware/rtlwifi/,也就免去了其他linux系统所需要的复制这一步。

请去核对一下,如果两个文件不一致,就把rtlwifi_new/firmware/rtlwifi/之中的rtl8192eefw.bin,复制到/lib/firmware/rtlwifi/里头。

如果在配置之前,不先删除原有的无线网卡驱动不放心的话,我们可以如下处理:

先停止网路

# service network-manager stop
network-manager stop/waiting

再删除卸载老的无线网卡驱动

# modprobe -rfv rtl8192ee
四、重启电脑

最后,别忘了重启你的电脑,懒人可以直接在终端里:

Reboot

其实,我们也可以直接在终端里加载:

modprobe rtl8192ee

至此,问题已经解决。

当然,你还得保证无线路由器发送出来的信号足够强大而且稳定。比如,我在客厅使用笔记本电脑,无线路由器信号毫无阻挡,也就再没有wifi掉线问题。但是在房间里使用,在信号达到百分六七十的情况下,依然难免不时掉线。

如果wifi掉线,直接重连并确认密码,往往连接不上wifi的。这时,我们需要在networkmanager管理小程序之中,右键图标,临时依次关闭“启用wifi”、“启用联网”,过个几分钟,再右键重新勾选“启用联网”、“启用wifi”,然后再连接wifi,就可以成功在望。

我只能说Rtl8192ee,真是渣一样的存在。在我的笔记本电脑之中,Rtl只有这一回,没有下一次了。当然,如果你受够了并且有钱钱,那就果断换上一块支持2.4g和5g的Intel 7265ac无线网卡。想自己动手?那你可以详看:t450s 加装固态及内存图解 http://bbs.thinkworldshop.com.cn/thread-1763859-1-1.html

我只能说佩服。因为根据我的规矩,至少使用三年后,我才想打开机盖。

五、其他问题

1、自动休眠省电问题

如果发现系统自动休眠省电导致wifi问题,可以再进行如下处理:

A、禁止自动休眠省电。

解决方案:

找到/etc/modprobe.d/rtl8192ee.conf (没有的话自己新建),写入options rtl8192ee fwlps=0 swlps=0,保存退出,然后reboot重启。

swenc, "using hardware crypto (default 0 [hardware])

硬件加密设置 默认是0

lps, "using no link power save (default 1 is open)

不使用链接省电 默认是1 默认是开启 就是启用省电。

fwlps, "using linked fw control power save (default 1 is open)

链接FW控制省电 默认是1 就是打开省电设置

详看:http://www.linuxdiyf.com/linux/17917.html

B、systool -v -m 查看可供传递的参数。

bash-4.3# systool -v -m rtl8192ee

确认设置的参数是否正确。

详看:http://forum.ubuntu.org.cn/viewtopic.php?t=462588

2、非硬件驱动问题

当然,如果你不是硬件驱动问题,那么请按如下步骤检查:

状况一:信号干扰

原因:路由器旁可能存在强烈的信号干扰源,例如:微波炉、无绳电话、磁铁、高压线等。这些设备发出的无线信号和强磁场会严重影响路由器的WiFi信号正常发射和接收。

对策:关掉这些设备,或将路由器安装到相对干扰较少的地方。

状况二:路由器固件问题

原因:路由器固件版本过低,或者固件和硬件不匹配,也可能会造成路由器工作不正常,产生WiFi信号不稳定的问题。

对策:去路由器官网查找对应型号的最新固件,并按照说明升级路由器固件。

状况三:手机WiFi功能BUG

原因:个别手机WiFi软件设计时可能存在BUG,例如,开启省电模式后,手机WiFi在空闲时会自动关闭。或者手机和路由器有兼容问题,造成其他WiFi设备掉线。

对策:升级手机系统到最新版本,关闭省电模式或其他可能导致WiFi关闭的选项,并反馈给手机厂商。

状况四:无线信号较弱

原因:路由器WiFi发射功率太小,或者设备距离路由器距离太远、中间有屏蔽物阻挡。WiFi信号过弱,也会不定时掉线。

对策:设置路由器的传输功率为高,以增强发射信号。此外,手机和路由器的直线距离不宜太远,中间不要隔太厚的水泥墙和屏蔽物。

状况五:多个WiFi信号集中在一个信道

原因:大部分无线路由器在出厂时默认信道都设置为6,如果附近有多个无线路由器时,同一信道互相之间可能会产生影响。

对策:更改无线路由器信道,避免附近多个路由器在同一信道内。

状况六:病毒导致

原因:路由器本身中毒的可能性较小,手机或者无线设备容易中毒,一些病毒会在后台占用大部分带宽或直接导致掉线。

对策:安装杀毒软件对无线设备进行杀毒,必要时对路由器或无线设备恢复出厂设置。

状况七:硬件故障

原因:路由器WiFi发射模块或者手机WiFi接收模块硬件本身出现故障、虚焊等原因,造成WiFi硬件不能正常工作,出现掉线的情况。

对策:尽量联系厂家售后进行检测和维修,如果过了保修期,具备专业知识和动手能力的童鞋可以自己动手维修。

详看:http://www.jb51.net/network/258414.html

3、终端中实现Wifi 连接的方法

在已安装无线网卡驱动程序的情况下,用如下命令来检查是哪一个接口来支持无线连接的:

# iwconfig

一般来说,无线接口都叫做 wlan0。

同时,确认此接口服务是启动着的:

# ip link set wlan0 up

然后,用命令来扫描附近的无线网络:

# sudo iw dev wlan0 scan | less 

根据扫描出的结果,可以得到网络的名字(它的 SSID),它的信息强度,以及它使用的是哪个安全加密的(如:WEP、WPA/WPA2)。从此时起,将会分成两条路线:情况很好、很容易的以及情况稍微复杂的。

网络没有加密的,用命令直接连接:

# iw dev wlan0 connect [网络 SSID]

网络用 WEP 加密,则:

# iw dev wlan0 connect [网络 SSID] key 0:[WEP 密钥]

网络用WPA 或 WPA2 协议的,则用 wpasupplicant工具,它默认是没有的。然后需要修改 /etc/wpasupplicant/wpa_supplicant.conf 文件,增加如下行:

network={    ssid="[网络 ssid]"    psk="[密码]"    priority=1}

建议在文件的末尾添加它,并确保其他配置都注释掉。要注意 SSID 和密码字串都是大小写敏感的。在技术上您也可以把接入点的名称当做是 SSID,使用 wpa_supplicant 工具的话会有合适的 SSID 来替代这个名字。

一旦配置文件修改完成后,在后台启动此命令:

# wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

最后,无论是连到开放的网络还是加密的安全网络,您都得获取 IP 地址,使用命令:

# dhcpcd wlan0

如果一切顺利的话,您应该已经通过 DHCP 获取到了一个全新的本地 IP,这个过程是在后台自动完成的。如果想确认下是否真正连接上的话,您可以再一次输入如下命令检查:

# iwconfig

详看:Linux系统下中 在命令行中实现Wifi 连接的方法 http://www.jb51.net/LINUXjishu/234506.html



关于丝路 丝路网史 版权声明 法律顾问 联系我们 |
Copyright © 2004-2011 by onesl.com all rights reserved
建议您使用1024*768分辨率、火狐浏览器浏览

闽ICP备11005983号