我在 Lenovo ThinkPad x121e 上使用 WLAN 时遇到永久问题。使用的无线网络适配器是这个:
lspci:
01:00.0 网络控制器:Realtek Semiconductor Co., Ltd. RTL8188CE 802.11b/g/n WiFi 适配器(rev 01)
连接通常会在一段时间内正常工作,然后开始变慢并最终断开连接。有时连接会在几秒钟后重新建立,有时需要 30 秒或更长时间,有时根本不会重新连接。
到目前为止,我尝试过的每个驱动程序都会出现此问题。尤其是内核驱动程序
Linux ThinkPad 3.0.0-14-通用 #23-Ubuntu SMP 2011 年 11 月 21 日星期一 20:28:43 UTC x86_64 x86_64 x86_64 GNU/Linux
以及可以找到的 Realteks 驱动程序这里。我目前正在使用的驱动程序是在这个 ppa 中找到的:ppa:tista/x120e
。
这是另一个链接www.thinkwiki.org这暗示了 realtek 驱动程序中存在“低功耗状态”(LPS)选项,但似乎无法在当前驱动程序中禁用它。
有没有办法通过这种设置获得更稳定的 WLAN?
更多系统信息:
lshw 级网络:
description: Wireless interface
product: RTL8188CE 802.11b/g/n WiFi Adapter
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:01:00.0
logical name: wlan0
version: 01
serial: 38:59:f9:db:e6:83
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=rtl8192CE driverversion=0006.0321.2011 firmware=56 ip=192.168.178.35 latency=0 link=yes multicast=yes wireless=802.11bgn
resources: irq:17 ioport:3000(size=256) memory:f0200000-f0203fff
iwconfig wlan0:
wlan0 802.11bgn ESSID:"xxx" Nickname:"rtl8192CE"
Mode:Managed Frequency=2.452 GHz Access Point: A2:05:43:2F:6E:8E
Bit Rate=65 Mb/s
Retry:on RTS thr:off Fragment thr:off
Power Management period:0us mode:All packets received
Link Quality=100/100 Signal level=0 dBm Noise level=-120 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
ifconfig 无线网络:
wlan0 Link encap:Ethernet HWaddr 38:59:f9:db:e6:83
inet addr:192.168.178.35 Bcast:192.168.178.255 Mask:255.255.255.0
inet6 addr: fe80::3a59:f9ff:fedb:e683/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:117385 errors:0 dropped:0 overruns:0 frame:0
TX packets:85652 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:115417879 (115.4 MB) TX bytes:10463799 (10.4 MB)
Interrupt:17 Memory:ffffc900037a8000-ffffc900037a8100
答案1
我最终通过在 Ubuntu 12.04 中编译和安装 Linux Wireless 的最新驱动程序解决了这个问题,在我的情况下是“compat-wireless-3.5.1-1-snpc.tar.bz2”包:http://wireless.kernel.org/en/users/Download/stable/
需要内核的头文件和 build-essentials 包。我还建议在编译之前运行带有选项 rtlwifi 的脚本“driver-select”,因为不需要其他驱动程序,并且可以缩短构建时间:
sudo apt-get install linux-headers-$(uname -r) build-essential
tar jvxf compat-wireless-3.5.1-1-snpc.tar.bz2
cd compat-wireless-3.5.1-1-snpc
./scripts/driver-select rtlwifi
make
sudo make install
但缺点是每次内核更新后你都必须重建驱动程序。
我已经运行该驱动程序两天了,多次关闭和打开盖子,并没有出现任何断开连接的情况。
答案2
该问题可能是由通道跳跃(和新的 Linux 内核)引起的。
我主要通过自己编译驱动程序并安装它来修复它。我做的第二件事是如果网络中断则扫描网络。
我进入了终端watch sudo iwlist wlan0 scan
。
这样司机就一直处于清醒状态。我使用的另一个解决方法是按Fn+F5禁用 wifi,然后几秒钟后再执行相同的操作。
我还尝试了一件事:
sudo modprobe -r rtl8192ce
sudo modprobe rtl8192ce
这会重新加载 wifi 驱动程序。我有时还会 ping 路由器,这样可以让我的 wifi 连接保持稳定。
答案3
此链接提示我尝试使用 rtl8192ce 模块的选项 ips=0 来关闭 wlan 适配器的所有省电功能。到目前为止,这给我带来了最佳效果 - 没有掉线,没有断开连接。这肯定会对功耗产生影响 - 我们将拭目以待。我现在使用的是内核 3.0.0-15 的内置驱动程序。
答案4
我做了同样的事情:在 BIOS 中禁用 WLAN 端口,移除 Realtek 卡,并在 WWAN 端口添加 Intel Centrino 6200。我使用半满 MiniPCIe 适配器(价格不到 5 欧元)将卡固定到位。