情况如下:Ubuntu 13.04,无线适配器:intel PRO/Wireless 3945ABG [Golan]。无线驱动程序:iwl3945。
问题是无线性能不尽如人意。我可以毫无困难地连接到任何无线网络,但传输速度比应有的要差得多。在 speedtest.net 上进行快速测试表明,我得到的速度大约是以前在 Windows 环境中使用同一台笔记本电脑时的一半(仅供参考,这台笔记本电脑直到上周还运行 Windows 7,并且曾经连接到同一个无线网络)。此外(如果这还不够的话......),当在本地网络上复制文件时,速度也远不能令人满意......比以前慢得多。因此,无法流式传输存储在网络上另一台计算机或设备上的媒体文件。由于这是我使用这台笔记本电脑的主要用途,因此无法使其正常工作真是令人痛苦。
我到目前为止所做的是:我尝试禁用硬件扫描:
modprobe -r iwl3945
modprobe iwl3945 disable_hw_scan=1
但这不起作用所以我没有费心使其永久化。
我也尝试用 wicd 替换网络管理器——但没有任何帮助。
那么可能是什么呢?
以下是 lshw -C 网络的输出:
icefire@Toshiba:~$ sudo lshw -C network
[sudo] password for icefire:
*-network
description: Ethernet interface
product: RTL8101E/RTL8102E PCI Express Fast Ethernet controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:02:00.0
logical name: eth0
version: 02
serial: 00:1e:33:5d:46:ab
size: 10Mbit/s
capacity: 100Mbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK- NAPI duplex=half latency=0 link=no multicast=yes port=MII speed=10Mbit/s
resources: irq:44 ioport:4000(size=256) memory:d0010000-d0010fff memory:d0000000-d000ffff
*-network
description: Wireless interface
product: PRO/Wireless 3945ABG [Golan] Network Connection
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:03:00.0
logical name: wlan0
version: 02
serial: 00:1f:3c:ae:d0:ea
width: 32 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=iwl3945 driverversion=3.8.0-19-generic firmware=15.32.2.9 ip=192.168.1.20 latency=0 link=yes multicast=yes wireless=IEEE 802.11abg
resources: irq:46 memory:d4200000-d4200fff
以下是 iwconfig 的输出:
icefire@Toshiba:~$ iwconfig
wlan0 IEEE 802.11abg ESSID:"dd-wrt"
Mode:Managed Frequency:2.437 GHz Access Point: 00:26:5A:B1:62:EE
Bit Rate=54 Mb/s Tx-Power=15 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=61/70 Signal level=-49 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:6 Invalid misc:224 Missed beacon:0
lo no wireless extensions.
eth0 no wireless extensions.
和 ifconfig:
icefire@Toshiba:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:1e:33:5d:46:ab
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:554 errors:0 dropped:0 overruns:0 frame:0
TX packets:554 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:63267 (63.2 KB) TX bytes:63267 (63.2 KB)
wlan0 Link encap:Ethernet HWaddr 00:1f:3c:ae:d0:ea
inet addr:192.168.1.20 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::21f:3cff:feae:d0ea/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9773 errors:0 dropped:0 overruns:0 frame:0
TX packets:6310 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10377083 (10.3 MB) TX bytes:1143412 (1.1 MB)
答案1
您可能会看到与我的英特尔卡相同的无线 N 问题略有不同的症状。这是修复我的方法(参考为什么我的 wifi 网络会间歇性消失?):
尝试在终端上输入以下命令。这些命令将关闭您的以太网端口并禁用 wifi 驱动程序中的无线 N。这不是永久性的,下次重启时会恢复:
sudo ifconfig eth0 down
sudo modprobe -r iwlwifi
sudo modprobe iwlwifi 11n_disable=1
如果这对你有用,我的 Github 上有一个 bash 脚本,你可以在每次重启时下载并运行它:https://github.com/FreedomBen/handy-bash-scripts/blob/master/fixTheInternet.bash
我的桌面上有这个脚本,每次重启时我都会运行它。从那以后我就没遇到过任何问题。
注意:您必须使脚本可执行。在终端上输入:
cd path/to/script
chmod +x fixTheInternet.bash
答案2
更新:最后,接下来的操作都没起作用。几分钟后,性能又变差了 :(
我和你的情况一模一样,在 ubuntu 13.04 上 iwl3945 的表现非常糟糕。
只需按照本文中的解决方案即可:解决 Ubuntu 13.04 Raring Ringtail、12.04 和 LinuxMint13 中使用 Wifi 时连接速度慢的问题
我实际上应用了文章中的解决方案 1 和 3,不知道哪一个才是有效的,但现在它可以起作用了。
解决方案 1:在 /etc/modprobe.d/ath9k.conf 中添加以下行
options ath9k nohwcrypt=1
这没有多大意义,因为它适用于 atheros 卡……
解决方案 2:在 /etc/sysctl.conf 中停用 ipv6,在末尾添加以下几行
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
除非你真的使用 ipv6。我最后也放弃了这个解决方案,因为在运行一段时间后它又变坏了……
希望这可以帮助!
答案3
我也有Intel PRO/Wireless 3945ABG。我已经安装了Ubuntu 22.04,性能和稳定性有了显着提高。
我仍然遇到一个问题,那就是正常工作 8 小时后它会突然停止,而唯一无需重启就能再次激活它的方法就是挂起系统,这有点烦人。无论如何,除此之外,我现在拥有完美的功能。
编者注:目前 22.04 处于测试阶段,因此在 2022 年 4 月发布之前,它会存在错误,但使用起来会更加“有趣”。