BCM4306 снижает скорость при установке на 54 Мбит/с

BCM4306 снижает скорость при установке на 54 Мбит/с

Недавно я выполнил минимальную установку 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, заключается в том, что на разных скоростях мощность сигнала (и дальность) разная. Чем медленнее, тем лучше дальность.

https://en.wikipedia.org/wiki/IEEE_802.11b-1999#Диапазон

решение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?

Связанный контент