我最近在一台舊的 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 上進行了測試。
我的 LAN 上有一台透過 Wi-Fi 連線的 Windows 筆記型電腦,它在伺服器模式下執行 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 正常工作?
提前致謝。
編輯:
我忘了提一件事。該康柏也有一個乙太網路適配器。如果我停用 BCM4306 並再次在用戶端模式下對 Windows 筆記型電腦執行 iperf 測試,同時硬連線到路由器,我將獲得 19Mbps 的速度。所以所有這些 iperf 測試告訴我它與 BCM4306 本身是隔離的。
答案1
11M比54M效果更好的原因是在不同速率下訊號功率(和範圍)不同。越慢射程越好。
答案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 嗎?