
Недавно я выполнил минимальную установку Ubuntu 11.10 из командной строки на старый ноутбук Compaq Presario 2500. На этом ноутбуке установлен Wi-Fi-адаптер Broadcom BCM4306 rev 02.
Я установил пакет 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 автоматически устанавливает скорость 54 Мбит/с, я получаю очень низкую скорость. Я проверил в своей локальной сети с помощью iperf.
У меня есть ноутбук с Windows в моей локальной сети через Wi-Fi, на котором запущен iperf в режиме сервера. На ноутбуке с Ubuntu я запускаю iperf в режиме клиента и подключаюсь к ноутбуку с Windows. iperf сообщает о скорости чуть ниже 1 Мбит/с (где-то от 600 Кбит/с до 700 Кбит/с).
Я знаю, что проблема не в моей локальной сети. У меня есть приложение iperf для моего телефона Android. Когда я включаю Wi-Fi для него и подключаюсь к локальной сети, работая в режиме клиента, подключаясь к тому же ноутбуку Windows, я получаю скорость около 10 Мбит/с. У меня также есть настольный ПК с проводным подключением к моему маршрутизатору. Когда я запускаю iperf на настольном компьютере в режиме сервера и запускаю iperf на ноутбуке Windows в режиме клиента, iperf сообщает о скорости около 20 Мбит/с.
Вот тут-то и начинается странность. Я меняю скорость на 11 Мбит/с на BCM4306 на моем Compaq:
sudo iwconfig wlan0 rate 11M
Я снова запустил тесты iperf на Compaq и теперь вижу скорость в диапазоне от 2 Мбит/с до 3 Мбит/с. Намного лучше!
Однако это меня сбивает с толку, поскольку я уверен, что BCM4306 поддерживает как 802.11b, так и g, но при этом он действует так, как будто может работать только со скоростями «b».
Я был бы рад, если бы мне удалось заставить BCM4306 работать должным образом на скорости 54 Мбит/с. Я попытался установить драйверы compat-wireless с linuxwireless.org, но столкнулся с целой банкой других проблем, в которые я бы предпочел не вдаваться, если только кто-то не считает, что это может быть связано с драйверами, которые я использую.
Кто-нибудь знает, как заставить мой BCM4306 работать нормально на скорости 54 Мбит/с?
Заранее спасибо.
РЕДАКТИРОВАТЬ:
Я забыл упомянуть кое-что. У этого Compaq также есть адаптер Ethernet. Если я отключу BCM4306 и снова запущу тест iperf в клиентском режиме на ноутбуке Windows, будучи жестко подключенным к моему маршрутизатору, я получу скорость 19 Мбит/с. Так что все эти тесты 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?