Как заставить заработать wifi на чипе broadcom 43xx под Linux
Когда где-то год назад я поставил на свой Dell Latitude D520 с чипом broadcom 4311 Ubuntu 8.10, то столкнулся с тем, что wi-fi работать напрочь отказывался. Я погуглил, пару дней поизучал посты на различных форумах, сделал какие-то шаманские действия и благополучно забыл и про проблему и про те действия, которые делал.
Все бы хорошо, но черт меня дернул поставить Karmic Koala с нуля… Про проблему я вспомнил сразу. А вот решение было забыто напрочь.
Решение быстрое
ERROR: Firmware file «b43/ucode5.fw» not found or load failed
Пройдясь по гуглу я нашел блог, в котором было решение проблемы вида «распакуй архив туда-то и все заработает». Скачал оттуда архив, в котором было недостающее firmware, распаковал в /lib/firmware/ и все действительно заработало.
Надо сказать, что в 8.10 проблема так легко не решалась, потому что там были другие драйвера. В 8.10 были bcm43xx, сейчас же грузятся b43.
Попутно с поиском решения я набрел на сайт с этими самыми драйверами b43, где есть много информации по поддержке этими драйверами различных чипсетов broadcom 43xx.
Также я в нескольких местах встречал мнение, что b43 работают хуже и нестабильнее нативных драйверов.
Мне тоже показалось, что раньше я видел в списке сетей гораздо больше, поэтому я решил пойти по немного более сложному пути, который был еще в 8.10, а именно:
Запуск драйверов производителя — решение посложнее
Родные драйвера я скачал с сайта поддержки Dell. Были они в виде self-extracting архива, но без проблем распаковались file-roller’ом
Далее делаем следующее:
- Устанавливаем ndiswrapper — утилиту, которая позволяет драйверам Windows для беспроводных карт работать в Linux.
- Удаляем модуль b43 из автозагрузки помещая его в blacklist:
sudo vim /etc/modprobe.d/blacklist.conf
добавляем туда строчку: blacklist b43 - Загружаем виндовые драйвера:
sudo ndiswrapper -i /path_to_drivers/bcmwl5.inf - Чтобы ndiswrapper запускался при загрузке системы, дописываем его в /etc/modules (sudo vim /etc/modules и добавляем туда строчку ndiswrapper)
- Далее после перезагрузки все должно бы заработать, но не тут то было.
Перезагрузился, а wi-fi по прежнему не работает.
Причиной тому яляется модуль ssb, который загружается перед ndiswrapper и не дает ему взять на себя управление wi-fi картой.
Если этот модуль загружен (смотрим с помощью lsmod | grep ssd ), то опять открываем /etc/modprobe.d/blacklist.conf и добавляем туда ssd и b44 — который вызывает загрузку ssd.
По субъективным ощущениям на виндовых драйверах все работает действительно лучше и стабильнее.
Источник
Установка b43 драйвера для сетевой платы broadcom 4312
Мне нужно устанавливать b43 драйвер, а не b43 legacy так? Ссылка на драйвер: https://wireless.wiki.kernel.org/en/users/drivers/b43?s[]=bcm4312
Тут пишут что нужно перейти в какой-то cd каталог, видимо с установочного диска/образа или скачать с launchpad’а программу, а затем установить её командой dpkg -i b43-fwcutter*, зачем после названия пакета звёздочка(сноски там нет)? И зачем нужна эта программа?
После этой команды «tar xfvj broadcom-wl-..» идут опции? Что значит опция j? У меня даже в man tar нет описания этой опции.
зачем после названия пакета звёздочка
Оболочка раскроет ее в реальное имя. Это позволяет не писать остаток имени пакета, тем более, что он может со временем меняться.
Чтобы вырезать (fw — firmware, to cut — вырезАть, cutter — вырезальщик) бинарную фирмварь из официального драйвера.
Использовать компрессор bz2. Нынешний tar достаточно умен, чтобы определить компрессор по имени файла при распаковке, поэтому можно не указывать.
Обращаю внимание, обычно проприетарный wl работает лучше, чем b43, но можете попытать счастья.
wl это — bcmwl-kernel-source? Чтобы его установить не нужен fmwcutter?
Нет, это проприетарный драйвер от Realtek.
Хочу обратить ваше внимание на наличие готового модуля b43.sb:
https://www.slax.org/blog/24578-Slax-9.3-is-here.html
В комментариях:
Нет, это проприетарный драйвер от Realtek.
wireless-wl, broadcom-sta это он? Устанавливается он так же как и b43 с помощью dpkg только без b43-fwcutter’а?
Хочу обратить ваше внимание на наличие готового модуля b43.sb
Его легче использовать? Я просто могу этот модуль скопировать в каталог /modules и ничего больше не нужно делать?
Ещё в wicd network manager в разделе advancde settings есть подраздел WPA Supplicant где выбираются драйвера, у меня там есть nl80211,none,wext,ralink_legacy,none. Я их выбирал в wicd, но интернет не заработал ни по lan, ни по wlan. Может что-то в wicd, или системе нужно включить? Или роутер как-то настроить, я пробовал ставить WPA, но wicd не отобразил роутер и галочка возле switch off wi-fi не ставиться, нужно ставить драйвер?
В каталоге /modules/4.9.0-4-amd64/ нет файлов с похожим названием на драйвера в wicd’е
Я просто могу этот модуль скопировать в каталог /modules и ничего больше не нужно делать?
Вы документацию на Slax прочитали? Что в ней написано на этот счёт? Вот то и делайте.
На всякий случай: http://www.slax.org/en/internals.php
Это драйверы WPA Supplicant, ваш, скорее всего, wext.
Второй — скорее всего он, первый — не скажу, это надо у ползателей Debian-а спрашивать.
Вы документацию на Slax прочитали? Что в ней написано на этот счёт? Вот то и делайте.
Нет, мне сейчас поскорей бы настроить сеть. Я пробежался глазами по переводу, прочитал про зелёные и синие звёзды, которые обозначают переход файлов из одного каталога в другой, поглядел на картинку и понял что это не для меня написано.
Это драйверы WPA Supplicant, ваш, скорее всего, wext.
Если вы знаете, можете ответить — wext только для WPA? WPA-PSK, PSK2 и LAN не будут работать с этим дравйвером? Его wicd network manager просто так показывает или он у меня есть?
Второй — скорее всего он, первый — не скажу, это надо у ползателей Debian-а спрашивать.
Как ползатель Debian’а напишу только что в non-free «[ wheezy ] [ jessie-backports-sloppy ] [ jessie ] [ jessie-backports ] [ stretch ] [ stretch-backports ] [ buster ] [ sid ]» версиях дистрибутива есть пакет broadcom-sta, наверно это тот же wl.*Хотя aptitude у меня лично его не нашёл. Наверно в sourcelist у меня что-то не так.
Вы документацию на Slax прочитали? Что в ней написано на этот счёт? Вот то и делайте.
Нет, мне сейчас поскорей бы настроить сеть
— Товарищ прапорщик, машина не заводится.
— Поехали-поехали, потом заведёшь!
wext только для WPA? WPA-PSK, PSK2 и LAN не будут работать с этим дравйвером?
Будут. Это способ общения wpa_supplicant с драйвером беспроводного устройства в ядре. На разных системах он разный. В линуксах обычно wext (Linux wireless extensions).
А как проверить есть ли в системе wext драйвер? Правильно ли я понимаю что у меня его нет, а wicd просто так его показывает? Или с моей сетевой картой он не работает?
*modprobe -r wixt и та же команда без параметра -r пишет что не удаётся найти модуль.
bormant , и ещё, откуда качать собанные пакеты?
Сам драйвер, я так понимаю лучше качать отсюда, но там напротив драйвера указан fwcutter(определённой версии), но я так и не понял какую версию cutter’а устанавливать и где лучше его скачивать. На github’е я так понимаю — выложен код. Есть пакет в ubuntu lunchpad — https://launchpad.net/ubuntu/ source/b43-fwcutter и package debian org — https://packages.debian.org/ru/jessie/b43-fwcutter
Ещё есть пакет firmware-b43-installer, этот пакет просто устанавливает всё сам? При наличии интернета? Мне он не нужен?
И ещё мне точно fwcutter нужен, или я могу просто b43 установить и всё?
bormant , я с помощью cd перешёл в свой каталог на флешке и распокавал tar’ом в неё же fwcutter а после этого попробовал установить пакет с помощью dpgk -i пакет* и вот такой ответ:error: archive ‘b43-fwcutter-019’ is not regular file — это dpkg пытается архив установить?
1) Вы slax bundle (.sb) по ссылке выше попробовали и он вам не подошел? Чем не подошел?
2) Если хотите сделать все руками сами — бывает, тогда начните с чтения документации, понимания того, что там написано. Пока из ваших слов наличие понимания не следует. Это само по себе не плохо, например, Белл в работах Герца вычитал то, чего там не было, и изобрел телефон. У вас тоже может получиться что нибудь ранее неведомое.
3) Slax 9 — это Debian, хоть и на флешке. Если вы не командуете создать slax bundle или не копируете его на флешку для подключения при перезагрузке, всё остальное тут ровно также, как и в Debian — те же настойки, те же бинарные пакеты в тех же репо.
4) Не могу знать, что хотите и что вам нужно. Если хотите установленный b43, к тому есть несколько путей:
а) использовать готовый бандл: внутри уже все есть,
б) использовать готовые пакеты: если среди них есть пакет с фирмварью, зачем бы ее выкусывать еще раз?
в) использовать пакет, который качает бинарник и сам вырезает фирмварь: если есть интернет, почему бы и нет, иначе как он что-либо скачает?
г) собрать все из исходников: тут без b43-cutter можно, если фирмварь уже есть или ее можно отдельно получить готовую, и нельзя, если получить готовую негде.
То есть, нужно понимать, 1) из свободных исходников b43 получается модуль ядра, 2) модулю ядра для работы нужна фирмварь, которую он загрузит в железку, 3) без фирмвари железка работать не будет, 4) фирмварь можно взять где-то еще или вытащить самому из проприетарных дров при помощи fw-cutter-а, 5) если фирмварь есть, то эту часть квеста можно считать пройденной после укладки ее в нужный каталог.
Ничего не забыл?
dpkg работает с пакетами .deb, вы ему подсунули что-то другое — он вас ожидаемо обматерил.
Что вы там «распоковали», мне отсюда не видно, а к гаданиям сегодня не предрасположен, доктор прием гадальных жидкостей запретил.
вы ему подсунули что-то другое — он вас ожидаемо обматерил.
Что вы там «распоковали», мне отсюда не видно, а к гаданиям сегодня не предрасположен, доктор прием гадальных жидкостей запретил.
Вот файлы в распакованном каталоге:
Это исходный код программы.
Чтобы из исходного кода получить бинарники, которые может исполнять машина, применяют компиляторы.
Чтобы упорядочить вызов компиляторов, применяют сборочные системы, например, make.
Оно вам точно надо? В репо Debian-а нет пакета с уже собранным fwcutter, который можно поставить из пакета?
Я не знаю, не пользуюсь Debian-ом.
Slax 9 ведь на stretch основан? Если нет, выберите нужную версию.
В репо Debian-а нет пакета с уже собранным fwcutter, который можно поставить из пакета?
Я не знаю, есть какой-то installer. cutter я с вашей помощью поставил.
Теперь не могу установить сам драйвер. Делаю как тут https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx#b43_-_No_Internet_a. , только я заменил в пути /lib/firmw.. версию драйвера, но опять что-то не так: Cannot open input file.
*В /lib/firmware появилось много драйверов
В /lib/firmware появилось много драйверов
Это не драйверы, это firmware — прошивки устройств.
Но вас, судя по одной из прошлых тем, должны интересовать вполне конкретные файлы:
Slax 9.3 основан на Debian 9.3, ваш основной источник информации:
https://wiki.debian.org/bcm43xx
Внимательно читаем, видим, что если б была сеть, всё поставилось бы само. Поэтому, если есть проводной и-нет, цепляем, . профит.
Если проводного интернета нет, из прочитанного понимаем, что скачиванием, вырезанием и установкой фирмвари занимается firmware-b43-installer сотоварищи. Читаем про него:
https://packages.debian.org/stretch/firmware-b43-installer
Внутри видим постустановочный сценарий firmware-b43-installer.postinst, смотрим содержимое, видим, что именно делается автоматически при наличии сети.
PS. И эти люди ругают «сложную» Slackware.
Внутри видим постустановочный сценарий firmware-b43-installer.postinst
В сухом остатке:
Как ползатель Debian’а напишу только что в non-free «[ wheezy ] [ jessie-backports-sloppy ] [ jessie ] [ jessie-backports ] [ stretch ] [ stretch-backports ] [ buster ] [ sid ]» версиях дистрибутива есть пакет broadcom-sta, наверно это тот же wl.*Хотя aptitude у меня лично его не нашёл. Наверно в sourcelist у меня что-то не так.
dkms source for the Broadcom STA Wireless driver
Broadcom STA is a binary-only device driver to support the following IEEE 802.11a/b/g/n wireless network cards: BCM4311-, BCM4312-, BCM4313-, BCM4321-, BCM4322-, BCM43142-, BCM43224-, BCM43225-, BCM43227-, BCM43228-, BCM4331-, BCM4360-, and BCM4352-based hardware.
This package provides the source code for the wl kernel modules and makes use of the DKMS build utility to install them for the running kernel. The alternative package broadcom-sta-source can be used instead in case of build problems.
The wireless-tools package is also required in order to make use of these modules. Kernel source or headers are required to compile these modules.
Внимательно читаем, видим, что если б была сеть, всё поставилось бы само. Поэтому, если есть проводной и-нет, цепляем, . профит.
По умолчанию не работал, я в wicd заходили и пробовал присоединиться, в одной из тем я просил помочь с настройкой lan. Сейчас modprobe -r b43 и та же команда без -r вроде бы выполнилась, но интернет всё-равно не работает.
Источник