我的 Realtek RTL8187 USB wifi 卡无法保持连接超过几秒钟,而在同一台机器上使用 Windows 7 时则没有问题。当我建立连接时,我有几秒钟的全带宽通信,然后连接完全无法发送或接收数据包(在两种操作系统下,卡通常会从天线发出柔和的声音,在 Ubuntu 上会切断,同时实际的网络功能也会中断)。网络管理器和 WICD 都报告卡仍处于连接状态,信号电平合理(大约 -40dBi,对于 Windows 上的此卡来说这不是一个问题级别)。通信丢失可重复且可靠地发生,尽管偶尔我设法发送和接收一些零散的数据包。连接丢失后,卡上的指示灯会不断闪烁,并且闪烁速度异常快。
我尝试连接我的 WPA2 和邻居的 WEP 接入点(经同意)(我的是 Netgear,他们的是 Belkin),结果都是在大约一秒钟后丢失链接。以太网不受影响。此卡与内核模块一起使用。rtl8187
我使用的是全新安装的 Trusty x64。这在 Live CD 上没有发生。
dmesg | tail -n 25
对于 WEP 网络:
hexafraction@ubuntu-lapdesk:~/Downloads$ dmesg | tail -n 25
[16505.923287] wlan1: associated
[16505.923370] IPv6: ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
[16505.943812] IPv6: ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
[16535.278129] atl1c 0000:01:00.0: atl1c: eth0 NIC Link is Down
[16540.067784] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[16543.677051] wlan1: deauthenticating from [PREVIOUS AP MAC] by local choice (reason=3)
[16543.737566] cfg80211: Calling CRDA to update world regulatory domain
[16543.747499] cfg80211: World regulatory domain updated:
[16543.747510] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[16543.747518] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[16543.747524] cfg80211: (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[16543.747529] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[16543.747534] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[16543.747539] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[16546.240014] wlan1: authenticate with [AP MAC]
[16546.298661] wlan1: send auth to [AP MAC] (try 1/3)
[16546.300412] wlan1: authenticated
[16546.300741] rtl8187 1-3:1.0 wlan1: disabling HT/VHT due to WEP/TKIP use
[16546.300747] rtl8187 1-3:1.0 wlan1: disabling HT as WMM/QoS is not supported by the AP
[16546.300751] rtl8187 1-3:1.0 wlan1: disabling VHT as WMM/QoS is not supported by the AP
[16546.304473] wlan1: associate with [AP MAC] (try 1/3)
[16546.307090] wlan1: RX AssocResp from [AP MAC] (capab=0x431 status=0 aid=2)
[16546.307946] wlan1: associated
[16546.307992] IPv6: ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
[16546.308625] IPv6: ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
lsmod
:
Module Size Used by
rtl8187 64909 0
mac80211 626489 1 rtl8187
cfg80211 484040 2 mac80211,rtl8187
nls_utf8 12557 0
isofs 39835 0
ctr 13049 0
ccm 17773 0
rfcomm 69160 0
bnep 19624 2
bluetooth 395423 10 bnep,rfcomm
hid_generic 12548 0
joydev 17381 0
uvcvideo 80885 0
videobuf2_vmalloc 13216 1 uvcvideo
videobuf2_memops 13362 1 videobuf2_vmalloc
videobuf2_core 40664 1 uvcvideo
videodev 134688 2 uvcvideo,videobuf2_core
usbhid 52616 0
eeprom_93cx6 13344 1 rtl8187
arc4 12608 2
hid 106148 2 hid_generic,usbhid
kvm_amd 59987 0
kvm 451511 1 kvm_amd
radeon 1514165 3
psmouse 102222 0
k10temp 13126 0
toshiba_acpi 22901 0
sparse_keymap 13948 1 toshiba_acpi
serio_raw 13462 0
wmi 19177 1 toshiba_acpi
snd_hda_codec_conexant 57441 1
snd_hda_codec_hdmi 46207 1
snd_hda_intel 52355 5
snd_hda_codec 192906 3 snd_hda_codec_hdmi,snd_hda_codec_conexant,snd_hda_intel
ttm 85115 1 radeon
snd_hwdep 13602 1 snd_hda_codec
snd_pcm 102099 3 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel
snd_page_alloc 18710 2 snd_pcm,snd_hda_intel
snd_seq_midi 13324 0
snd_seq_midi_event 14899 1 snd_seq_midi
snd_rawmidi 30144 1 snd_seq_midi
snd_seq 61560 2 snd_seq_midi_event,snd_seq_midi
snd_seq_device 14497 3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer 29482 2 snd_pcm,snd_seq
drm_kms_helper 52758 1 radeon
snd 69238 21 snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_hda_codec_conexant,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec,snd_hda_intel,snd_seq_device,snd_seq_midi
soundcore 12680 1 snd
drm 302817 5 ttm,drm_kms_helper,radeon
video 19476 0
i2c_piix4 22155 0
i2c_algo_bit 13413 1 radeon
mac_hid 13205 0
parport_pc 32701 0
ppdev 17671 0
lp 17759 0
parport 42348 3 lp,ppdev,parport_pc
ahci 25819 2
atl1c 46086 0
libahci 32168 1 ahci
我在这里不知所措,因为我尝试过重启、wicd
和network-manager
。卡本身在 Windows 7 上没有问题(因为我仍然可以双启动并可以测试它)。在使用 wicd 之前,我已经删除了网络管理器,反之亦然,并且安装了两者。我怀疑是某些服务或后台程序导致卡跳频,但我不确定如何检查是否发生了这种情况,或者哪个服务导致了这种情况。但是,实时 CD 上看到的硬阻塞问题并没有发生。
由于 GPU 不兼容导致 Ubuntu 无法使用,我无法在以前的版本上检查这一点,因此我没有证据表明这是 Trusty 中引入的错误。
编辑: sudo iwconfig wlan1
未连接时:
wlan1 IEEE 802.11bg ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
sudo iwconfig wlan1
当连接到我的 WPA2 网络时:
wlan1 IEEE 802.11bg ESSID:"XXXXXXXXXX"
Mode:Managed Frequency:2.462 GHz Access Point: XX:XX:XX:XX:XX:XX
Bit Rate=54 Mb/s Tx-Power=20 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=39/70 Signal level=-71 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:2 Missed beacon:0
sudo iwconfig wlan1
对于 WEP:
wlan1 IEEE 802.11bg ESSID:"XXXXXXXXXX"
Mode:Managed Frequency:2.437 GHz Access Point: XX:XX:XX:XX:XX:XX
Bit Rate=11 Mb/s Tx-Power=20 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Encryption key:15A4-A159-AF
Power Management:off
Link Quality=47/70 Signal level=-63 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:27 Invalid misc:33 Missed beacon:0
我确实知道 Windows 的信号水平更高,无论是从规模上dBm
还是从报告的连接质量百分比上来看。
答案1
编辑:之前的驱动程序链接已损坏。根据这我相信这个答案的其余部分仍然有效。
如果此方法失败,您可以尝试此方法。来源:http://www.backtrack-linux.org/forums/showthread.php?t=54375
现在打开一个新终端并输入以下内容:
ifconfig wlan1 down
或 wlan0,无论您的卡在哪个上。使用“ifconfig -a”来查找
请注意,以下 2 个步骤在您所在的国家/地区可能是非法的,如果是,请跳过它们并继续。然后输入:
iw reg set BO
这会将国家代码设置为玻利维亚,以便您可以最大程度地使用阿尔法卡。
然后输入:
iwconfig wlan1 txpower 30
或 wlan0,无论您的卡在哪个上。
这会将您的卡设置为 30db,这是该卡可以使用的最大功率。
然后输入:
iwconfig wlan1 rate 1M
或 wlan0,无论您的卡在哪个上。
这应该可以解决连接中断或互联网速度非常慢的问题 [对我来说这是主要问题]
现在您几乎已经完成了,只需输入以下内容:
ifconfig wlan1 up
或 wlan0,无论您的卡在哪个上。
现在只需打开您的网络管理器并连接到您的网络,问题就应该解决了。
只需使用 iwconfig 设置速率,重启后它将恢复。不过,您可以将该行添加到 /etc/rc.local 以使其每次重启时运行。我更喜欢使用类似以下内容:
iwconfig wlan1 rate 18M AUTO
即“正常自动速率最高可达 18M”
还有一些其他方法可以帮助解决不稳定/低质量的连接问题……即将 RTS 和碎片阈值(默认为 2300 左右)设置为 512 或更低,以强制减小数据包大小(低至 256)。这样,您就可以以比以前高得多的数据速率获得稳定性。
总的来说,我从这个开始到我的 /etc/rc.local 并偶尔进行调整直到它非常稳定。
iwconfig wlan1 rate 36M auto
iwconfig wlan1 frag 512
iwconfig wlan1 rts 512
您可以尝试的另一件事是在重新启动 ubuntu 并重新插入端口之前从 Windows 7 中安全删除(关闭电源并确保其不会处于不稳定状态)。
还有一件事要尝试,那就是在驱动程序级别调整短重试和长重试。试试这个。
iwconfig wlan1 retry short 21
iwconfig wlan1 retry long 21
据报道,将重试次数设置为 31 也可以起作用(请参阅下面的评论)
让我在 iwconfig 的手册页中查找这些命令的原因是我发现了以下信息: http://support.data-alliance.net/alfa-500mw-usb-improve-performance-significantly/
答案2
尝试指定静态 IP 地址。您必须找到路由器提供的地址块之外的 IP(您的路由器可能默认提供 192.168.1.100 以上的地址)。将您的 NIC 设置为双静态两位数 IP,例如 192.168.1.10。
您可以通过点击进行此操作:
(单击)网络管理器通知图标 > 编辑 > 编辑连接
(按名称选择 Wifi 连接)> 编辑 > (单击选项卡)IPv4 设置 > (将自动 DHCP 更改为)手动 > 添加(填写:地址、网络掩码、网关)> (填写 DNS 服务器,以逗号分隔)> (可选搜索域)> 保存
其余内容可以保留默认设置。