Кали линукс не видит wifi модуль
Содержание:
Step 4a: Loading the driver module into kernel
Having successfully compiled the driver module, you can now load it into kernel, and eventually set up automatic driver load on system boot (to do all this, you’ll have to assume root privileges). Of course, driver module loading can be done only after you remove the existing/conflicting wireless driver modules from kernel (in case these are loaded):
# modprobe -r bcm43xx # modprobe -r b43 # modprobe -r b43legacy # modprobe -r ssb # modprobe -r bcma # modprobe -r brcmsmac # modprobe -r ndiswrapper
copy the driver module file to a location where kernel can find it:
# cp -vi /usr/local/src/hybrid-wl/wl.ko /lib/modules/`uname -r`/extra/
to be consistent with all other external modules that have been / may be installed from a kmod packages (e.g. fuse, ntfs-3g, etc.)
Next, run:
# depmod $(uname -r)
in order to create a list of module dependencies, and now load the driver module:
# modprobe wl
If no error was reported, the driver module is now successfully loaded and ready to use. The ‘ndiswrapper’ kernel module can be removed, provided you don’t use it for anything else but wireless driver — but this is not necessary.
Step 3b: Compiling the Broadcom driver module (specifics required for EL7)
|
NOTE: Lately, it’s required to apply the patches before the sed statements, which may not always be the case, so if the compilation fails, try doing things other way around, i.e. sed before you patch. |
Depending on EL7 point release (or better yet, the kernel version you’re running), sub-set of sed replacements to apply will differ. So, stock kernels shipped with EL 7.0 (i.e. kernel-3.10.0-123.X), don’t require running any of the commands below, EL 7.1 (i.e. kernel-3.10.0-229.X) require the first two, EL 7.2 (i.e. kernel-3.10.0-327.X), require first four ‘sed’ commands, EL 7.3 requires first 6 executed, EL7.4 first 7, and for EL 7.5 all ‘sed’ commands are required so as to make the code compile (along with the one from step 3a):
$ sed -i 's/ >= KERNEL_VERSION(3, 11, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c $ sed -i 's/ >= KERNEL_VERSION(3, 15, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c $ sed -i 's/ < KERNEL_VERSION(3, 18, 0)/ < KERNEL_VERSION(3, 9, 0)/' src/wl/sys/wl_cfg80211_hybrid.c $ sed -i 's/ >= KERNEL_VERSION(4, 0, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c $ sed -i 's/ < KERNEL_VERSION(4,2,0)/ < KERNEL_VERSION(3, 9, 0)/' src/wl/sys/wl_cfg80211_hybrid.c $ sed -i 's/ >= KERNEL_VERSION(4, 7, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c $ sed -i 's/ >= KERNEL_VERSION(4, 8, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c $ sed -i 's/ >= KERNEL_VERSION(4, 11, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c $ sed -i 's/ < KERNEL_VERSION(4, 12, 0)/ < KERNEL_VERSION(3, 9, 0)/' src/wl/sys/wl_cfg80211_hybrid.c $ sed -i 's/ >= KERNEL_VERSION(4, 12, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c $ sed -i 's/ <= KERNEL_VERSION(4, 10, 0)/ < KERNEL_VERSION(3, 9, 0)/' src/wl/sys/wl_linux.c
Again, esp. if you’re running EL 7.3, or one of its kernels, you’ll have to apply the following patches wl-kmod-01_kernel_4.7_IEEE80211_BAND_to_NL80211_BAND.patch wl-kmod-02_kernel_4.8_add_cfg80211_scan_info_struct.patch wl-kmod-03_fix_kernel_warnings.patch wl-kmod-04_kernel_4.11_remove_last_rx_in_net_device_struct.patch wl-kmod-05_kernel_4.12_add_cfg80211_roam_info_struct.patch BEFORE you apply the above sed replacement commands (otherwise, compilation won’t work). Also, don’t forget the patch from step 3a:
$ patch -p1 < ../wl-kmod-01_kernel_4.7_IEEE80211_BAND_to_NL80211_BAND.patch patching file src/wl/sys/wl_cfg80211_hybrid.c Hunk #6 succeeded at 1911 (offset 3 lines). Hunk #7 succeeded at 2040 (offset 3 lines). Hunk #8 succeeded at 2160 (offset 3 lines). Hunk #9 succeeded at 2298 (offset 3 lines). Hunk #10 succeeded at 2941 (offset 3 lines). $ patch -p1 < ../wl-kmod-02_kernel_4.8_add_cfg80211_scan_info_struct.patch patching file src/wl/sys/wl_cfg80211_hybrid.c Hunk #1 succeeded at 2442 (offset 3 lines). Hunk #2 succeeded at 2553 (offset 3 lines). Hunk #3 succeeded at 2989 (offset 3 lines). $ patch -p1 < ../wl-kmod-03_fix_kernel_warnings.patch patching file src/wl/sys/wl_cfg80211_hybrid.c Hunk #1 succeeded at 2008 (offset 3 lines). Hunk #2 succeeded at 2032 (offset 3 lines). Hunk #3 succeeded at 2056 (offset 3 lines). Hunk #4 succeeded at 2071 (offset 3 lines). Hunk #5 succeeded at 2107 (offset 3 lines). Hunk #6 succeeded at 2386 (offset 3 lines). Hunk #7 succeeded at 2401 (offset 3 lines). Hunk #8 succeeded at 2441 (offset 3 lines). $ patch -p1 < ../wl-kmod-04_kernel_4.11_remove_last_rx_in_net_device_struct.patch patching file src/wl/sys/wl_cfg80211_hybrid.c patching file src/wl/sys/wl_linux.c Hunk #1 succeeded at 2911 (offset -18 lines). $ patch -p1 < ../wl-kmod-05_kernel_4.12_add_cfg80211_roam_info_struct.patch patching file src/wl/sys/wl_cfg80211_hybrid.c Hunk #3 succeeded at 2450 (offset 3 lines). Hunk #4 succeeded at 2466 (offset 3 lines).
After applying these to the source code, just follow through the reminder of step 3a — compile the driver, and strip debugging info from it. Again, kernel builds =>229 require first two commands ONLY, builds => 327 require running first four sed replacements, builds >=514 require 6, builds >=693 require 7, and for builds >=862 all sed replacements are needed for driver to compile
4 ответа
Хорошо, таким образом, я наконец зафиксировал это 😀
Сначала вот то, что я изучил в процессе:
-
НИКОГДА не тараните свою ОС с различными драйверами или модулями случайно, пока Ваша проблема не будет решена, по крайней мере, не без a) Не зная, что / почему Вы делаете и b) САМОЕ ГЛАВНОЕ, Как отменить то же.
-
Каждый раз, когда Вы пробуете другой драйвер, модуль, или пакет, сначала удаляете пакет, который Вы ранее установили для той же цели.
И много из благодаря @chili555, кто указал, что остаток от предыдущего пакета был причиной.
Таким образом, то, что я сделал, было:
Я пытался установить на живом выполнении Ubuntu 14.04 (с моим кабелем LAN) и проверенный, если WLan работает теперь. (И да, это действительно подтверждало ту Ubuntu 14.04 / BCM43142 / не была проблема.)
Я перешел в и крест проверил файлы там с моей версией установки жесткого диска той же папки.
Это каталог содержит конфигурационные файлы, которые содержат информацию о помещении в черный список для различных модулей
Я обратил внимание на доступные файлы и позже удалил то, что не было доступно здесь от моей версии установки жесткого диска той же папки также.
Я перешел в. Это — каталог, который хранит все Ваши модули (wl, b43, и т.д….) и тот, который я испортил с различными пользовательскими исправленными версиями wl модулей, перечисленных на различных форумах.
После креста, сверяющегося с моей версией установки жесткого диска , Я вручную удалил весь Bluetooth / беспроводная связь / dkms / wl / (и в особенности один mac80211) и очистил любые другие модули, которые связаны с wlan.
Я наконец заменил (сделал рекурсивную копию на), и каталоги (моей установки жесткого диска) с теми же каталогами от живой ОС.
Перезагрузка
Сделать
Это — официальный рабочий драйвер для BCM43142 для Ubuntu 14.04.
Перезагрузка и и альт, беспроводная связь работала!
И наконец искренние извинения всей моей перекрестной рассылке, перерегистрации, массово рассылая IRCs с этим вопросом неоднократно.:P
Примечание: Замена / удаление Ваших файлов установки жесткого диска рекомендуется только для тех, кто недавно установил Вашу ОС. Иначе существует риск, что Вы могли заменить / удаляют файлы / модули, которые, возможно, были установлены для других устройств, которые могут быть не важны этой проблеме.
Еще раз спасибо к chili555 🙂
ОТРЕДАКТИРУЙТЕ я недавно обновил свое ядро для поддержки драйвер для моего USB контролирует и обманывает Wi-Fi, закончился.
Слепая попытка переустановки бросил следующую ошибку в журнал сборки.
Оказывается, что драйвер не был обновлен для обновленного ядра (версия 3.18). Немного поиска с помощью Google позволило мне к этому сообщению —
Где существуют ссылки, доступные исправленным версиям , который работает с обновленным ядром.
Я вручную загрузил и установил этого парня, и Wi-Fi был восстановлен.
Теперь я могу вернуться к просмотру lolcats в мире. Аминь.
ответ дан
23 November 2019 в 01:52
Я также испытал те же затруднения при установке Linux Mint, Ubuntu 13.10 и 14.04. Я должен был использовать кабель LAN или USB, ограничивающий с моего телефона для получения bcmwl-kernel-source, установленный, который, казалось, был единственным рабочим драйвером беспроводного устройства для моего DELL inspiron 15.
однако я смог видеть bcmwl-kernel-source в дополнительном разделе драйверов обновлений программного обеспечения после выполнения
от терминала после установления соединения интереса через LAN или ограничивающий USB, и Вы будете видеть дополнительные драйверы, перечисленные от того, где я смог установить драйвер довольно легко.
ответ дан
23 November 2019 в 01:52
У меня также была та же проблема с Ubuntu 11.10 и 12.10. Проблема состояла в том, что Wi-Fi не был обнаружен на СООТВЕТСТВИИ BCM43142 Sony VAIO 15E. Поэтому, когда я пытался установить Ubuntu 13.10, я проверил опцию «Установки это внешнее программное обеспечение» во время установки, и это работало на меня!!
Видят шаг 2 на Установки, sub раздел Готовятся устанавливать Ubuntu. Можно также попробовать это.
ответ дан
23 November 2019 в 01:52
Я встретился с проблемой, и решить ее я просто выполняю следующую команду:
кажется, что b43 или bcma являются коллизиями к wl модулю.
Hope это поможет кому-то…
ответ дан
23 November 2019 в 01:52
History
Broadcom has a noted history with its support for Wi-Fi devices regarding GNU/Linux. For a good portion of its initial history, Broadcom devices were either entirely unsupported or required the user to tinker with the firmware. The limited set of wireless devices that were supported were done so by a reverse-engineered driver. The reverse-engineered driver was introduced in the 2.6.24 kernel.
The types of available drivers are:
| Driver | Description |
|---|---|
| brcm80211 | Kernel driver mainline version (recommended) |
| b43 | Kernel driver reverse-engineered version |
| broadcom-wl | Broadcom driver with restricted license |
Installation
brcm80211
The kernel contains two built-in open-source drivers: brcmfmac for native FullMAC and brcmsmac for mac80211-based SoftMAC. They should be automatically loaded when booting.
Note:
- brcmfmac supports newer chipsets, and supports AP mode, P2P mode, or hardware encryption.
- brcmsmac only supports old chipsets like BCM4313, BCM43224, BCM43225.
b43
Two reverse-engineered open-source drivers are built-in to the kernel: b43 and b43legacy. b43 supports most newer Broadcom chipsets, while the b43legacy driver only supports the early BCM4301 and BCM4306 rev.2 chipsets. To avoid erroneous detection of your WiFi card’s chipset, blacklist the unused driver.
Both of these drivers require non-free firmware to function. Install AUR or AUR.
Note:
- BCM4306 rev.3, BCM4311, BCM4312 and BCM4318 rev.2 have been noticed to experience problems with b43-firmware. Use AUR for these cards instead.
- BCM4331 noticed to have problems with b43-firmware-classic. Use AUR for this card instead, or switch to the mentioned below for a more stable experience.
broadcom-wl
The factual accuracy of this article or section is disputed.
There are two variants of the restrictively licensed driver:
- the regular variant:
- the DKMS variant:
Tip: The DKMS variant
- is kernel agnostic. This means it supports different kernels you may use (e.g. AUR).
- is kernel-release agnostic, too. It will be automatically rebuilt after every kernel upgrade or fresh installation. If you use or another kernel release dependant variant (e.g. AUR), it may happen that kernel upgrades break wireless from time to time until the packages are in sync again.
- will need the package for the installed kernel(s) in order to build the module. Those packages are optional to the DKMS package and will need to be installed manually.
Offline installation
An Internet connection is the ideal way to install the broadcom-wl driver; many newer laptops with Broadcom cards forgo Ethernet ports, so a USB Ethernet adapter or Android tethering may be helpful. If you have neither, you’ll need to first install the group during installation. Then, use another Internet-connected computer to download and the driver tarball from the AUR, and install them in that order.
Manually
Warning: This method is not recommended. Drivers that are un-tracked can become problematic or nonfunctional on system updates.
# rmmod b43 # rmmod ssb # modprobe wl
The wl module should automatically load lib80211 or lib80211_crypt_tkip otherwise they will have to be manually loaded.
If the driver does not work at this point, you may need to update dependencies:
# depmod -a
To make the module load at boot, refer to Kernel modules. It is recommending that you blacklist conflicting modules.
Step 4b: Loading the driver module into kernel on boot time
Couple of more steps are needed to get your module load every time the system boots. First, edit the /etc/modprobe.d/blacklist.conf file adding the lines:
blacklist bcm43xx blacklist b43 blacklist b43legacy blacklist bcma blacklist brcmsmac blacklist ssb blacklist ndiswrapper
By doing so, you’re preventing these modules from being loaded into kernel at boot time and conflicting with the wl module. Second, in order to load the wl module into the kernel on boot time, create/edit the file /etc/sysconfig/modules/kmod-wl.modules and copy-paste the following contents into it:
for M in lib80211 cfg80211 wl; do
modprobe $M &>/dev/null
done
Your driver should now load every time you reboot (except of course, when you install the new kernel, in which case the driver has to be re-compiled for it following these same steps).
Step 2: Downloading and extracting Broadcom driver archive
Download the Broadcom BCM43xx linux driver archive from Broadcom Official website — you’ll find it as in the search results list as either Linux STA 32-bit driver or Linux STA 64-bit driver — to your machine and extract it to /usr/local/src/hybrid-wl and feel free to change the ownership of the directory and it’s contents to some unprivileged user
# mkdir -p /usr/local/src/hybrid-wl # cd /usr/local/src/hybrid-wl # tar xvzf /path/to/the/tarball/hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz # chown -R someuser.somegroup /usr/local/src/hybrid-wl
|
NOTE: Why not extract it to arbitrary location and leave the ownership it is? |
List of hardware
To check for a present hardware model execute following command:
lspci -nn -d 14e4:
If the chipset isn’t listed, check if it’s connected via SSB (Sonics Silicon Backplane). Such connected chipsets only become visible after the kernel module has been loaded.
Please look carefully at device ID and chipset name.
| PCI-ID | Supported? | Chip ID | Modes | PHY version | Alternative |
|---|---|---|---|---|---|
| 14e4:0576 | not tested | BCM43224 | a/b/g/n | ? | brcm80211 |
| 14e4:4301 | yes (b43legacy) | BCM4301 | b | B | |
| 14e4:4306 | yes (b43legacy) | BCM4306/2 | b/g | G | |
| 14e4:4307 | yes | BCM4306/3 | b/g | G | |
| 14e4:4311 | yes | BCM4311 | b/g | G | wl |
| 14e4:4312 | yes | BCM4311 | a/b/g | G (r8) | wl |
| 14e4:4313 | not tested | BCM4311 | a | ? | wl |
| no | BCM4313 | b/g/n | LCN (r1) | brcm80211 | |
| 14e4:4315 | yes | BCM4312 | b/g | LP (r1) | wl |
| 14e4:4318 | yes | BCM4318 | b/g | G (r7) | |
| 14e4:4319 | yes | BCM4318 | a/b/g | G | |
| 14e4:4320 | yes (b43legacy) | BCM4306/2 | b/g | G (r1) | |
| yes | BCM4306/3 | ? | G (r2) | ||
| 14e4:4321 | partially | BCM4321 | ? | N (r2) | |
| 14e4:4322 | yes (3.18+) | BCM4322 | b/g/n | N (r4) | |
| 14e4:4324 | yes (b43legacy) | BCM4306 | a/b/g | G (r1) | |
| yes | BCM4306/3 | a/b/g | G (r5) | ||
| 14e4:4325 | yes (b43legacy) | BCM4306/2 | b/g | G (r1) | |
| 14e4:4328 | partially | BCM4321 | a/b/g/n | N (r2) | wl |
| 14e4:4329 | partially | BCM4321 | b/g/n | N (r1) | wl |
| 14e4:432a | not tested | BCM4321 | a/n | N | wl |
| 14e4:432b | partially | BCM4322 | a/b/g/n | N (r4) | wl |
| 14e4:432c | yes | BCM4322 | b/g/n | N | wl |
| 14e4:432d | not tested | BCM4322 | a/n | N | wl |
| 14e4:4331 | yes (3.2-rc3+) | BCM4331 | a/b/g/n | HT (r1) | wl |
| 14e4:4350 | yes (3.8+) | BCM43222 | a/b/g/n | N (r6) | |
| 14e4:4353 | yes (3.1+) | BCM43224 | a/b/g/n | N (r6) | wl/brcm80211 |
| 14e4:4357 | yes (3.1+) | BCM43225 | b/g/n | N (r6) | wl/brcm80211 |
| 14e4:4358 | yes (3.17+) | BCM43227 | b/g/n | N (r16) | wl |
| 14e4:4359 | yes (3.17+) | BCM43228 | a/b/g/n | N (r16) | wl |
| 14e4:4360 | no | BCM4360 | ? | AC (r1) | |
| 14e4:4365 | no | BCM43142 | b/g/n | LCN40 (r3) | wl |
| 14e4:43a0 | no | BCM4360 | a/b/g/n/ac | AC? | wl |
| no | BCM4352 | a/b/g/n/ac | ? | wl | |
| 14e4:43a9 | yes (3.17+) | BCM43217 | b/g/n | N (r17) | |
| 14e4:43aa | yes (3.17+) | BCM43131 | b/g/n | N (r17) | |
| 14e4:43b1 | no | BCM4352 | a/b/g/n/ac | AC (r3) | |
| 14e4:4727 | no | BCM4313 | b/g/n | LCN (r1) | wl/brcm80211 |
| 14e4:a8d6 | not tested | BCM43222 | ? | N (6) | |
| 14e4:a8d8 | yes (3.6+) | BCM43224 | a/b/g/n | N (r6) | brcm80211 |
| yes (3.6+) | BCM43225 | ? | N (r6) | brcm80211 | |
| 14e4:a8db | partially (3.18+) | BCM43217 | b/g/n | N (r17) | |
| 14e4:a99d | not tested | BCM43421? | ? | ? |
Internal cards
To identify a card that was installed inside your computer prior to purchase, please and execute:
lspci -vvnn | grep -A 9 Network
This will display:
03:00.0 Network controller : Broadcom Corporation BCM4331 802.11a/b/g/n (rev 02) Subsystem: Apple Inc. AirPort Extreme Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 256 bytes Interrupt: pin A routed to IRQ 17 Region 0: Memory at a0600000 (64-bit, non-prefetchable) Capabilities: <access denied> Kernel driver in use: wl
You now know:
- The Chip ID: BCM4331
- The PCI-ID: 14e4:4331
- Kernel driver in use: wl
Appendix B: Broadcom chip intermittent problems
This driver module, in author’s experience, is sometimes known to require multiple reboots to make the WiFi work. In layman’s terms, the WiFi card, finds the AP(s), but fails to associate it with the driver. I’ve made numerous attempts to make the card/driver work without a reboot, to no avail. Starting/stopping wpa_supplicant service, turning WiFi on/off, (un)loading the driver, …etc. Sometimes it would only start working after several reboots.
From /var/log/wpa_supplicant.log:
Trying to associate with 58:6d:8f:xx:xx:xx (SSID='<ssid_name>' freq=2462 MHz) Association request to the driver failed
and in /var/log/messages:
Dec 19 02:40:03 hostname kernel: cfg80211: Calling CRDA for country: RS Dec 19 02:40:03 hostname kernel: ------------------------ Dec 19 02:40:03 hostname kernel: WARNING: at net/wireless/sme.c:664 __cfg80211_connect_result+0x3d9/0x430 () (Tainted: P -- ------------ ) Dec 19 02:40:03 hostname kernel: Hardware name: Vostro 1540 Dec 19 02:40:03 hostname kernel: Modules linked in: vfat fat fuse ip6table_filter ip6_tables ebtable_nat ebtables ipt_MASQUERADE iptable_nat nf_nat xt_CHECKSUM iptable_mangle cpufreq_ondemand acpi_cpufreq freq_table mperf lockd sunrpc bridge stp llc ipv6 nf_conntrack_ftp xt_physdev ipt_REJECT nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack iptable_filter ip_tables vhost_net macvtap macvlan tun kvm_intel kvm microcode iTCO_wdt iTCO_vendor_support dell_laptop dcdbas sg uvcvideo videodev v4l2_compat_ioctl32 btusb bluetooth joydev i2c_i801 lpc_ich mfd_core r8169 mii wl(P)(U) snd_hda_codec_hdmi snd_hda_codec_idt snd_hda_codec_generic cfg80211 rfkill snd_hda_intel snd_hda_codec snd_hwdep snd_seq snd_seq_device snd_pcm snd_timer snd soundcore snd_page_alloc ext4 jbd2 mbcache sr_mod cdrom sd_mod crc_t10dif ahci wmi usb_storage i915 drm_kms_helper drm i2c_algo_bit i2c_core video output dm_mirror dm_region_hash dm_log dm_mod Dec 19 02:40:03 hostname kernel: Pid: 912, comm: cfg80211 Tainted: P -- ------------ 2.6.32-573.26.1.el6.x86_64 #1 Dec 19 02:40:03 hostname kernel: Call Trace: Dec 19 02:40:03 hostname kernel: ? warn_slowpath_common+0x91/0xe0 Dec 19 02:40:03 hostname kernel: ? warn_slowpath_null+0x1a/0x20 Dec 19 02:40:03 hostname kernel: ? __cfg80211_connect_result+0x3d9/0x430 Dec 19 02:40:03 hostname kernel: ? cfg80211_process_wdev_events+0x144/0x1f0 Dec 19 02:40:03 hostname kernel: ? mutex_unlock+0x1b/0x20 Dec 19 02:40:03 hostname kernel: ? cfg80211_event_work+0x0/0x30 Dec 19 02:40:03 hostname kernel: ? cfg80211_process_rdev_events+0x38/0x70 Dec 19 02:40:03 hostname kernel: ? cfg80211_event_work+0x22/0x30 Dec 19 02:40:03 hostname kernel: ? worker_thread+0x170/0x2a0 Dec 19 02:40:03 hostname kernel: ? autoremove_wake_function+0x0/0x40 Dec 19 02:40:03 hostname kernel: ? worker_thread+0x0/0x2a0 Dec 19 02:40:03 hostname kernel: ? kthread+0x9e/0xc0 Dec 19 02:40:03 hostname kernel: ? child_rip+0xa/0x20 Dec 19 02:40:03 hostname kernel: ? kthread+0x0/0xc0 Dec 19 02:40:03 hostname kernel: ? child_rip+0x0/0x20 Dec 19 02:40:03 hostname kernel: ------ Dec 19 02:40:03 hostname kernel: cfg80211: Regulatory domain changed to country: RS Dec 19 02:40:03 hostname kernel: cfg80211: DFS Master region: ETSI Dec 19 02:40:03 hostname kernel: cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
Rumour has it, this is caused by «improper» loading of the WiFi card firmware on boot, hence, only rebooting the system fixes it.
Another problem (probably caused by improperly loaded firmware) is choppy/flaky network connectivity. The cards appears to have associated to the AP, but shows poor signal quality even though you’re in the same room with the AP. even pings are dropping, and bottom line — connection is useless. Again, this should be resolved by repeated reboots until the firmware is loaded properly.
STA — Internet access
If you have some other kind of Internet access on your computer (e.g. via an ethernet cable) then use the instructions below.
12.04 (Precise Pangolin)
Open a and install the bcmwl-kernel-source package:
sudo apt-get update sudo apt-get --reinstall install bcmwl-kernel-source
Note: If you see the message «Module build for the currently running kernel was skipped since the kernel source for this kernel does not seem to be installed» then you are missing the appropriate generic linux-header package(s).
To test the driver (and remove the need for a computer restart) use:
sudo modprobe -r b43 ssb wl brcmfmac brcmsmac bcma sudo modprobe wl
Allow several seconds for the network manager to scan for available networks before attempting a connection.
The bcmwl-kernel-source package should automatically blacklist the open source drivers so that the STA driver is the only one in use.
Drivers for the 4313
Let’s just enumerate the driver for Broadcom chipsets and how they work with the 4313:
-
Broadcom STA. Suggested by additional drivers. Old. Awful. Absolute junk. Skip it. If you’ve already installed it, remove it.
-
b43-fwcutter. Lots of people see «Broadcom» and jump on this but it’s not compatible with the 4313 (which is newer). If you’ve installed it, purge it.
-
ndiswrapper. Even more flaky than the STA driver. I managed to get it working for about 10 minutes before everything imploded.
-
brcm80211 aka brcmsmac. This is a (relatively) new driver that was recently added to Ubuntu (since the driver was added to the kernel). This should work well and (in recent version of Ubuntu, Natty and Oneiric) should «Just work». This is the droid you’re looking for. Use this driver for the 4313.
If you’re not running Natty or Oneiric, your kernel probably won’t have this driver. You need to be running at least 2.6.27 and I’d recommend 2.6.28 as the bare minimum (you can check what you’re on by running ).
If you’re behind on versions, I’d suggest the upgrade but for a quick fix, you can take a look at the mainline kernels and try one of those. Installing kernel packages is rarely a risky thing because you can usually just fall back to an old one using the grub boot screen.
You know you’re probably on the right driver if you run and you see or in the output.
Broadcom STA Wireless driver (Proprietary)
The propietary Broadcom STA Wireless driver is maintained upstream by Broadcom. As this driver is closed source, fixes in the driver itself may only be provided by Broadcom. As a convenience, Ubuntu offers two versions of this driver:
-
The bcmwl-kernel-source package aims to offer a later version for a given release. Instructions for installation may be found later in this article.
-
The broadcom-sta package aims to offer an earlier version for a given release.
As per the Broadcom readme file for driver version 6.30.223.271, the following devices are compatible:
BRCM PCI PCI Dell
Product Name Vendor ID Device ID Product ID
------------- ---------- --------- -----------
4311 2.4 Ghz 0x14e4 0x4311 Dell 1390
4311 Dualband 0x14e4 0x4312 Dell 1490
4311 5 Ghz 0x14e4 0x4313
4312 2.4 Ghz 0x14e4 0x4315 Dell 1395
4313 2.4 Ghz 0x14e4 0x4727 Dell 1501/1504
4321 Dualband 0x14e4 0x4328 Dell 1505
4321 Dualband 0x14e4 0x4328 Dell 1500
4321 2.4 Ghz 0x14e4 0x4329
4321 5 Ghz 0x14e4 0x432a
4322 Dualband 0x14e4 0x432b Dell 1510
4322 2.4 Ghz 0x14e4 0x432c
4322 5 Ghz 0x14e4 0x432d
43142 2.4 Ghz 0x14e4 0x4365
43224 Dualband 0x14e4 0x4353 Dell 1520
43225 2.4 Ghz 0x14e4 0x4357
43227 2.4 Ghz 0x14e4 0x4358
43228 Dualband 0x14e4 0x4359 Dell 1530/1540
4331 Dualband 0x14e4 0x4331
4360 Dualband 0x14e4 0x43a0
4352 Dualband 0x14e4 0x43a0
BROADCOM WIRELESS TABLE (Updated Aug 4, 2020)
Special Case #1 — Uses and driver combination. Required firmware is installed by default in the package .
Special Case #2 — For the ASUS PCE-AC88 AC3100 the steps are:
- Download This file and after extracting it, put it in /lib/firmware/brcm
- Then add modprobe brcmfmac and save
In hardware like the Lenovo S10-2, if your wireless card gets stuck trying to connect to an SSID (keeps trying to connect), then the alternative to get it working would be to install the package (Remove any other installed packages related to it). Read the Debugging section below for more information regarding this wireless device.
IMPORTANT NOTE — After September 2014, if you follow this answer and still you have problems installing the correct driver, please try the package and notify us via comments. There were some changes and some drivers will only work with this package. Remember to have a clean system before installing it:
In some particular cases, after installing the you need to remove the b43 module, enable it again and even proceed to unblock with rfkill:
If you have a Broadcom card that has a different pci.id, please ask a new question. Once solved, the solution will be added to this howto.