BCM4306 设置为 54Mbps 时速度较慢

BCM4306 设置为 54Mbps 时速度较慢

我最近在一台旧的 Compaq Presario 2500 笔记本电脑上通过命令行最小化安装了 Ubuntu 11.10。这台笔记本电脑配有 Broadcom BCM4306 rev 02 Wi-Fi 适配器。

我已经安装了 firmware-b43legacy-installer 包,适配器正在运行。它使用的是 b43legacy 驱动程序:

filename:       /lib/modules/3.0.0-14-generic/kernel/drivers/net/wireless/b43legacy/b43legacy.ko
firmware:       b43legacy/ucode4.fw
firmware:       b43legacy/ucode2.fw
firmware:       FW10
license:        GPL
author:         Michael Buesch
author:         Stefano Brivio
author:         Martin Langer
description:    Broadcom B43legacy wireless driver
srcversion:     0355EB47C162A7D873BD576
alias:          ssb:v4243id0812rev04*
alias:          ssb:v4243id0812rev02*
depends:        mac80211,ssb,cfg80211
vermagic:       3.0.0-14-generic SMP mod_unload modversions 686 
parm:           pio:enable(1) / disable(0) PIO mode (int)
parm:           bad_frames_preempt:enable(1) / disable(0) Bad Frames Preemption (int)
parm:           fwpostfix:Postfix for the firmware files to load. (string)

我遇到的问题是传输速率。当 Ubuntu 自动将速率设置为 54Mbps 时,我的速度非常慢。我使用 iperf 在我的 LAN 上进行了测试。

我的局域网上有一台 Windows 笔记本电脑,通过 Wi-Fi 连接,以服务器模式运行 iperf。在 Ubuntu 笔记本电脑上,我以客户端模式运行 iperf 并连接到 Windows 笔记本电脑。iperf 报告的速度略低于 1Mbps(从 600Kbps 到 700Kpbs 不等)。

我知道问题不在我的 LAN 本身。我的 Android 手机上有一个 iperf 应用程序。当我为它启用 Wi-Fi 并加入 LAN 时,在客户端模式下运行它并连接到同一台 Windows 笔记本电脑时,报告的速度约为 10Mbps。我还有一台台式电脑,它通过有线连接到我的路由器。当我在服务器模式下的台式机上运行 iperf 并在客户端模式下的 Windows 笔记本电脑上运行 iperf 时,iperf 报告的速度约为 20Mbps。

事情变得奇怪了。我将 Compaq 电脑上的 BCM4306 的速率改为 11Mbps:

sudo iwconfig wlan0 rate 11M

我重新在 Compaq 上运行 iperf 测试,现在我看到速度在 2Mbps 到 3Mbps 范围内。好多了!

然而这让我很困惑,因为我确信 BCM4306 同时支持 802.11b 和 g,但它的表现好像只能处理“b”速度。

如果我能让 BCM4306 以 54Mbps 的速率正常工作,我会非常高兴。我尝试安装来自 linuxwireless.org 的 compat-wireless 驱动程序,但我遇到了一大堆麻烦,除非有人觉得这可能与我使用的驱动程序有关,否则我宁愿不去处理。

有人知道如何才能让我的 BCM4306 以 54Mbps 的速度正常工作吗?

提前致谢。

编辑:

我忘了提一件事。这台 Compaq 也有一个以太网适配器。如果我禁用 BCM4306 并在硬连线到路由器的情况下再次以客户端模式对 Windows 笔记本电脑运行 iperf 测试,我得到的速度是 19Mbps。所以所有这些 iperf 测试都告诉我它与 BCM4306 本身隔离。

答案1

11M 比 54M 效果好的原因在于,不同速率下信号功率(和范围)不同。速度越慢,范围越好。

https://en.wikipedia.org/wiki/IEEE_802.11b-1999#Range

答案2

创建一个脚本/etc/network/if-up.d,你可以随意命名,比如叫它 BCM4306

# graphical
gksu gedit /etc/network/if-up.d/BCM4306

# command line
sudo -e /etc/network/if-up.d/BCM4306

将以下代码放入其中

#!/bin/sh -e
#
# Sets speed of interface to 54M

if [ "$IFACE" = "eth1" ] ; then
    iwconfig wlan0 rate 11M
fi

使其可执行

sudo chmod a+x /etc/network/if-up.d/BCM4306

当您重新启动或重启网络时它应该可以工作。

注意:11M 是一个奇怪的值,您尝试过 54M 或 150M 吗?

相关内容