Карточки Broadcom BCM43xx Wireless не работают в Ubuntu 11.04
29.05.2011, рубрики: how-to | Теги: broadcom, drivers, hardware, network | 17 комментариев »
Приехали! Век новых теногологий на дворе, выходят всякие там Thunderbolt, iPad, i7 и прочее, а в новейшей сборке Linux Ubuntu 11.04 не работает из коробки Wi-Fi для карточек Broadcom BCM43xx. Вопрос – как так? Если в версиях 8.04, 8.10, 9.04, 9.10, 10.04, 10.10 эти популярные беспроводные карточки поднимались «на лету» двумя кликами, то ребята из Canonical решили, эту поддержку загубить, что-бы пользователям жизнь мёдом не казалось наверное. И это при том, что все Dell’ы имеют на борту имено продукты фирмы Broadcom, а Ubuntu якобы тесно сотрудничает с Dell, так же, стоит напомнить, что карточки Broadcom это лучшие и наиболее популярные устройства, даже Apple ставят себе на лэптопы именно их продукцию, а вот ребятам из Ubuntu на это наплевать. Ну хрен с ними, ведь в предыдущих релизах работало. Вообще тенденция роста дистрибутива Ubuntu не прогрессивна, а регрессивна, качество дистрибутива теряется с каждым новым релизом, вырезали GDebi, убрали GIMP, забыли про Rhytmbox, выкорчевали aptitude, а теперь ещё и Unity. Товарищи, это регресс!
У вас не работает Wi-Fi на карточке Broadcom BCM43xx?
Тогда вам сюда! Для начала давайте убедимся в том, что стандартный подход вам не помог, найдите у себя в системе прогу которая ставит дополнительные драйвера, в Gnome3 это «Additional Drivers», в Gnome2 это System > Administration > Additional Drivers, в Unity хер знает где. И активируйте тамошний драйвер, после чего перезагрузите компьютер и посмотрите на LED лампочку вашего Wi-Fi, если она всё ещё не подает признаков жизни, и Wi-Fi нет, то вам стоит продолжить читать эту статью.
Вот как было у меня:
Теперь давайте немного углубимся в тестирование и проверем, что все хорошо. Определим номер модели вашей карты:
Посмотрим вывод команды lspci:
- lspci -nn | grep -i broadcom
- 03:00.0 Ethernet controller [0200]: Broadcom Corporation BCM4401-B0 100Base-TX [14e4:170c] (rev 02)
- 0c:00.0 Network controller [0280]: Broadcom Corporation BCM4311 802.11b/g WLAN [14e4:4311] (rev 01)
Посмотрим вывод команды lshw:
- sudo lshw -C network
- *-network
- description: Network controller
- product: BCM4311 802.11b/g WLAN
- vendor: Broadcom Corporation
- physical id: 0
- bus info: pci@0000:0c:00.0
- version: 01
- width: 32 bits
- clock: 33MHz
- capabilities: pm msi pciexpress bus_master cap_list
- configuration: driver=b43-pci-bridge latency=0
- resources: irq:17 memory:f9ffc000-f9ffffff
- *-network
- description: Ethernet interface
- product: BCM4401-B0 100Base-TX
- vendor: Broadcom Corporation
- physical id: 0
- bus info: pci@0000:03:00.0
- logical name: eth0
- version: 02
- serial: 00:1c:23:92:8e:35
- size: 10Mbit/s
- capacity: 100Mbit/s
- width: 32 bits
- clock: 33MHz
- capabilities: pm bus_master cap_list ethernet physical mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
- configuration: autonegotiation=on broadcast=yes driver=b44 driverversion=2.0 duplex=half latency=64 link=no multicast=yes port=twisted pair speed=10Mbit/s
- resources: irq:17 memory:f9bfe000-f9bfffff
- 802.11bg
Посмотрим какие интерфейсы есть у нас в системе, должны быть eth0, wlan0, lo, но у вас будет только eth0, lo, а после обновления и того меньше, будет только lo.
Посмотрим вывод команды ifconfig:
- ifconfig -a
- eth0 Link encap:Ethernet HWaddr 00:0f:b0:74:9e:36
- UP BROADCAST MULTICAST MTU:1500 Metric:1
- RX packets:0 errors:0 dropped:0 overruns:0 frame:0
- TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
- collisions:0 txqueuelen:1000
- RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
- Interrupt:23
- lo Link encap:Local Loopback
- inet addr:127.0.0.1 Mask:255.0.0.0
- inet6 addr: ::1/128 Scope:Host
- UP LOOPBACK RUNNING MTU:16436 Metric:1
- RX packets:740 errors:0 dropped:0 overruns:0 frame:0
- TX packets:740 errors:0 dropped:0 overruns:0 carrier:0
- collisions:0 txqueuelen:0
- RX bytes:56384 (56.3 KB) TX bytes:56384 (56.3 KB)
Посмотрим вывод команды iwconfig:
- /sbin/iwconfig
- lo no wireless extensions.
- eth0 no wireless extensions.
Посмотрим вывод dmesg:
- dmesg | grep b43
Как профиксить Broadcom BCM43xx Wireless?
Очевидно, что проблем может быть две, либо драйвер кривой у них, либо модуль драйвера не загрузился в ядро. Начнем по порядку, сначала деактивриуйте Wireless STA драйвер в «Additional Drivers», перезагрузите копьютер. И давайте попробуем поставить все в ручную:
- sudo aptitude install b43-fwcutter firmware-b43-installer
- sudo aptitude install broadcom-sta-common broadcom-sta-source
Перезагрузите компьютер. Очевидно, что драйвер у вас в системе, однако скорее всего ничего не произойдет, вы не найдете интерфейс wlan0, и ваш LED индикатор гореть не будет, как бЭ сообщая, что Wi-Fi модуль вашего компьютера не активен.
Решение этой проблемы крайне простое, не сложно догодаться, что проблема в том, что модули драйвера, почему то не загружаются в ядро при загрузке компьютера. Это утверждение легко проверить, посмотря какие модули активны:
- lsmod
- Module Size Used by
- binfmt_misc 17565 1
- snd_atiixp_modem 19128 5
- snd_atiixp 20072 2
- snd_ac97_codec 134270 2 snd_atiixp_modem,snd_atiixp
- ac97_bus 12730 1 snd_ac97_codec
- snd_pcm 96625 5 snd_atiixp_modem,snd_atiixp,snd_ac97_codec
- snd_seq_midi 13324 0
- pcmcia 49166 0
- snd_rawmidi 30486 1 snd_seq_midi
- snd_seq_midi_event 14899 1 snd_seq_midi
- joydev 17606 0
- radeon 982197 2
- snd_seq 61621 2 snd_seq_midi,snd_seq_midi_event
- snd_timer 29602 2 snd_pcm,snd_seq
- ttm 76664 1 radeon
- snd_seq_device 14462 3 snd_seq_midi,snd_rawmidi,snd_seq
- yenta_socket 27846 0
- tifm_7xx1 13042 0
- pcmcia_rsrc 18372 1 yenta_socket
- tifm_core 15654 1 tifm_7xx1
- drm_kms_helper 42136 1 radeon
- psmouse 73535 0
- hp_wmi 13706 0
- serio_raw 13166 0
- video 19438 0
- drm 227495 4 radeon,ttm,drm_kms_helper
- i2c_algo_bit 13400 1 radeon
- pcmcia_core 22569 3 pcmcia,yenta_socket,pcmcia_rsrc
- edac_core 53845 0
- sparse_keymap 13898 1 hp_wmi
- ppdev 17113 0
- snd 67382 20 snd_atiixp_modem,snd_atiixp,snd_ac97_codec,snd_pcm,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
- parport_pc 36959 1
- i2c_piix4 13303 0
- edac_mce_amd 23464 0
- soundcore 12680 1 snd
- snd_page_alloc 18529 3 snd_atiixp_modem,snd_atiixp,snd_pcm
- shpchp 37297 0
- k8temp 13016 0
- lp 17825 0
- parport 46458 3 ppdev,parport_pc,lp
- usbhid 46956 0
- hid 91020 1 usbhid
- sdhci_pci 13989 0
- firewire_ohci 40370 0
- sdhci 27387 1 sdhci_pci
- firewire_core 62646 1 firewire_ohci
- crc_itu_t 12707 1 firewire_core
- tg3 141750 0
- pata_atiixp 13165 3
Если вы внимательно изучите вывод команды lsmod, то вы не найдете там b43 и может даже b44. Тут надо уточнить, b43 это модуль для вашей беспроводной карточки, модуль b44 для вашей проводной карточки.
Давайте загрузим их в ручную:
- su root
- modprobe --all b43
- modprobe --all b44
Вы увидите как ваш LED индикатор Wi-Fi радостно загорелся, а в Network Manager у вас появятся беспроводное и проводное соединение.
Прошлый раз забыл довабить.
Скорее всего, после перезагрузки компьютера у вас снова пропадет сеть, это связано с тем, что либо модули по какой-то причине не подгружается автоматически в ядро Linux, либо по ошибке (тех кто собирал дистрибутив) они находятся в «черном списке» ядра, так называемый blacklist, что и происходит в нашем случае, исправить очень просто, откройте под рутом файл broadcom-sta-common.conf:
- sudo nano /etc/modprobe.d/broadcom-sta-common.conf
и закомментируете все строки связанные с b43/b44 модулями:
- # wl module from Broadcom conflicts with ssb
- # We must blacklist the following modules:
- #blacklist b44
- #blacklist b43legacy
- #blacklist b43
- #blacklist ssb
Это все, удачной работы.



Сначала Unity впихнули(чем уже испортили систему), теперь популярные карточки не поддерживают, что же будет дальше…
И кстати, очень жду обещанную статью «Как установить vsftpd сервер», а то что то не получается поднять этот ФТПшник под wordpress, а ваши статьи всегда помогают)
Статья будет, у меня сейчас завал в армии, и некогда особо писать. Я вот только не понял как ты связываешь vsftpd с wordpress? vsftpd – это FTP файловый сервер, и он не связан с WordPress, если ты хочешь установить и настроить http сервер, то тогда тебе стоит обратить внимание на статьи http://www.linuxspace.org/archives/3260 из раздела «Серверы» там есть и apache и ngnix и многое другое.
У меня wordpress стоит на локальной машине и для того что б хотя бы изменить тему сайта мне нужен ftp на этой же машине. Попробую ещё наверно ProFTPd вместо vsftpd.
Понятно, но в любом случаем, у тебя еще есть SSH, SFTP, SSHFS и конечно обыкновенный FTP, а про vsftpd я напишу классную и подробную статью ))
GDebi, Gimp, aptitude и многое прочее вырезали лишь с инсталяционного диска! Только лишь из дефолтной системы! К чему на пустом месте поливать грязью дистрибутив и разработчиков? Не нравится, пользуйте модный Арч.
Да, плохо, что поломали дрова. Очень плохо. Хотя, если есть опыт, разобраться не проблема. Я за 10 минут всё починил. Но сопли распускать не надо!
Всё это тестовые релизы Убунты. Не устраивают, можно просто сидеть на LTS.
Привет vovans не пойми меня не правильно, но я высказываю свое личное мнение основанное на 3-ех годах работы со своим любимым дистрибутивом Ubuntu. Однако в действиях разработчиков наблюдается некая иррациональность.
Они вырезают GDebi, хотя его аналог работает на MacOS Snow Leopard, они убирают aptitude, хотя лично я (как и многие другие) использую apt-get и aptitude получая таким образом необходимый функционал, так сказать 2-а в одном.
Простой пользователь не знает о программах aptitude и GDebi и не сможет вернуть их в дистрибутив, а они лучше справляются со своими обязанностями чем любая другая.
Сопли никто не распускает, ты починил всё за 10 минут, это хорошо, я пишу статью людям, давая им возможность исправить баг.
Помни, всё относительно.
Буков много, а смысла мало. Достаточно было сказать, что, в связи с лицензионными условиями распространения драйвера Broadcom, firmware необходимый для этого драйвера не входит в дистрибутив, а потому качать его необходимо отдельно и самостоятельно.
У меня у самого BCM4311 на буке и убунту активно использую начиная с версии 10.04 (затем 10.10 и сейчас 11.04). Так вот никогда ни в одной из указаных мной версий дистрибутива драйвер «из коробки» не подымался. Всегда нужно было сначала «добыть» firmware, и только тогда драйвер подымался. А учитывая, что выход в интернет у меня только через WiFi, проводного нету. Этот вопрос, при переустановке системы, для меня стоит очень остро (потому и хорошо запомнился). Я нашёл выход из этой ситуации такой: однажды скачав нужное firmware (по-простому, папка /lib/firmware/b43), я просто сделал себе локальную копию его в домашнем каталоге. И потом, в случае переустановки системы, просто копирую его в нужное место (/lib/firmware), а затем перегружаю систему (это для очень ленивых как я) и после загрузки получаю работоспособный адаптер, с которым уже можно и в тырнет ломиться. Всё на самом деле просто, а Вы много написали, но до сути не докапались, главный вопрос должен быть – почему не работает? а не что делать? когда ясна причина, сразу будет и понятно – что нужно делать…
Alex, драйвера b43, никогда не занимали место на установочном диске Ubuntu, я этого и не утверждал, зато b43-fwcutter всегда был доступен для загрузки из репозитария Ubuntu через программу «Дополнительные драйверы» я об этом писал, вы не удасужились разобраться в статье, жаль. В первые я установил драйвер для BCM4311 ещё в Ubuntu 6.04 верьте моему опыту.
Кстати ответ почему не работает? – потому что поломали сборку, лицензия тут не причем, модули не загружаются автоматически в ядро.
Алекс, в следующий раз, прежде чем что-то написать, прочитайте статью и разберитесь в ней.
Спасибо. Мне помогло…
Сделал всё как написано, но после перезагрузки, модули так и не грузятся в ядро, приходится вручную это делать…
Посмотри в файле:
/etc/modprobe.d/blacklist.conf
Наличие вот такой строчки:
# replaced by b43 and ssb.
blacklist bcm43xx
Все сделал как написано в посте, карточка заработала, но очень слабый сигнал и низкая скорость работы интернета, плюс ко всему постоянно рвет соединение, что делать?
Спасибо огромное автору!!! Очень помогла инфа про блеклист, иначе бы и не подумал в ту степь копать
не могу настройить Wifi
на команду su root выводит вот это сообщение:
serg@ubuntu:~$ su root
Пароль:
su: Сбой при проверке подлинности
serg@ubuntu:~$
Вместо su root попробуй sudo su
Огромнешееее спасибо!! очень понятно, доступно, грамотно. все заработало!
Спасибо большое, все заработало, долго искал решение этой ошибки))