How-To: Configuring Broadcom BCM4313 on Salix 14.2

Post Reply
User avatar
Posts: 90
Joined: 23. Dec 2010, 19:12

How-To: Configuring Broadcom BCM4313 on Salix 14.2

Post by gaucho » 14. Aug 2017, 00:52

I recently installed Salix 14.2 (Xfce version, 32-bit, with kernel 4.4.19) on an older HP Mini 210-2100 netbook (purchased ca. June 2011). It's performing great -- many thanks to gapan and the other team members for their hard work on this release. :)

HP Mini 210-2100 Netbook

This Mini has a Broadcom BCM4313 WiFi chipset [14e4:4727] which has been problematic to set up in the past, so I thought I would share my configuration tips in case they're useful for other Salix users. The procedure is straightforward and requires minimal tweaking . . . so don't worry.

Disclaimer: I am using the free, open-source brcm80211 driver (aka brcmsmac) which has been directly included in the standard Linux kernel since 2.6.37. I have had good signal strength, good connection speed and no problems with dropouts / disconnections. One feature which does not work is the small Wireless LED light (function key F12) on the keyboard; it remains amber in color, rather than glowing blue when WiFi is active.

However, on some models of hardware the brcmsmac driver does not work, or performs poorly. I cannot guarantee this driver is the ideal solution for your machine; you might need to explore other driver options (such as the broadcom-wl [aka broadcom-sta] driver).

Identify Your Chipset

First, check that you have the Broadcom BCM4313 chipset by typing the following command:

Code: Select all

david[~]$ lspci -vnn -d 14e4:
01:00.0 Network controller [0280]: Broadcom Corporation BCM4313 802.11bgn Wireless Network Adapter [14e4:4727] (rev 01)
	Subsystem: Hewlett-Packard Company BCM4313 802.11bgn Wireless Network Adapter [103c:145c]
	Flags: bus master, fast devsel, latency 0, IRQ 16, NUMA node 0
	Memory at 95000000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: <access denied>
	Kernel driver in use: bcma-pci-bridge
	Kernel modules: bcma
Within the brackets in line 2 ("[14e4:4727]"), the "14e4" is the Vendor ID (Broadcom Corporation), and "4727" is the Device ID (Model number).

Load the brcmsmac Module

As the root user, type:

Code: Select all

# modprobe brcmsmac
(The modprobe command adds modules from the Linux kernel (without the need to reboot). Once loaded, modules reside in memory, and can be instantiated multiple times; they can be thought of as analogous to a device driver.)

Blacklist the b43 and ssb WiFi Drivers

Next, you will create a simple text file to blacklist the unwanted b43 and ssb WiFi drivers. The file should be named "b43_blacklist.conf" and it should be placed in the /etc/modprobe.d directory. You may use your favorite text editor to create the file, e.g.:

Code: Select all

# vi /etc/modprobe.d/b43_blacklist.conf   [or]
# emacs /etc/modprobe.d/b43_blacklist.conf   [or]
# nano /etc/modprobe.d/b43_blacklist.conf
The contents of the text file should look like this:

Code: Select all

# This file serves to blacklist the b43 and ssb WiFi drivers.
blacklist b43
blacklist b43legacy
blacklist ssb

Reboot your computer.

Check WiFi Status / Troubleshoot if Needed

If you don’t have working WiFi after reboot, don’t panic. Issue the "ifconfig" command to see whether a device called "wlan0" is listed, as shown below. (The "-a" flag / option shows information about all interfaces, both active and inactive):

Code: Select all

root@darkstar:~# ifconfig -a
eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 3c:4a:92:05:b8:9e  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet  netmask
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 208  bytes 15392 (15.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 208  bytes 15392 (15.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet  netmask  broadcast
        inet6 fe80::ae81:12ff:fe21:ae7  prefixlen 64  scopeid 0x20<link>
        ether ac:81:12:21:0a:e7  txqueuelen 1000  (Ethernet)
        RX packets 2602  bytes 1850036 (1.7 MiB)
        RX errors 0  dropped 1  overruns 0  frame 0
        TX packets 1655  bytes 150315 (146.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
Preconfiguration Steps

Before using NetworkManager to configure your interface, type these commands:

Code: Select all

# ifconfig wlan0 up

# iwlist scanning
(The "iwlist" command lists available WiFi networks broadcasting in the area. You might see output like the following [although in this example, I changed the addresses and ESSIDs for the sake of privacy]):

Code: Select all

root@darkstar:~# iwlist scanning
wlan0     Scan completed :
          Cell 01 - Address: 00:11:22:33:44:55
                    Frequency:2.422 GHz (Channel 3)
                    Quality=62/70  Signal level=-48 dBm  
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              9 Mb/s; 12 Mb/s; 18 Mb/s
                    Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
                    Extra: Last beacon: 38ms ago
                    IE: Unknown: 00084465696D6F733937
                    IE: Unknown: 010882848B960C121824
                    IE: Unknown: 030103
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : CCMP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK
                    IE: Unknown: 2A0100
                    IE: Unknown: 32043048606C
                    IE: Unknown: DD180050F2020101820003A4000027A4000042435E0062322F00
                    IE: Unknown: DD1E00904C334C101BFFFF000000000000000000000000000000000000000000
                    IE: Unknown: 2D1A4C101BFFFF000000000000000000000000000000000000000000
                    IE: Unknown: DD1A00904C3403080800000000000000000000000000000000000000
                    IE: Unknown: 3D1603080800000000000000000000000000000000000000
                    IE: Unknown: 4A0E14000A002C01C800140005001900
                    IE: Unknown: 7F0101
                    IE: Unknown: DD0A00037F04010002004000
                    IE: Unknown: DD7A0050F204104A0001101044000102103B0001031047001000000000000010000000204E7F961E68102100044E54475210230009776E72323030307633102400016E104200046E6F6E651054000800060050F204000110110016574E5232303030763328576972656C65737320415029100800020086103C000103

[ ... network omitted ...]

Cell 03 - Address: 4A:F8:B3:CC:A3:6B
                    Frequency:2.417 GHz (Channel 2)
                    Quality=35/70  Signal level=-75 dBm  
                    Encryption key:off
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s
                              24 Mb/s; 36 Mb/s; 54 Mb/s
                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s
                    Extra: Last beacon: 38ms ago
                    IE: Unknown: 0010313930346163636573732D6775657374
                    IE: Unknown: 010882848B962430486C
                    IE: Unknown: 030102
                    IE: Unknown: 2A0100
                    IE: Unknown: 2F0100
                    IE: Unknown: 32040C121860
                    IE: Unknown: 2D1A2C1917FFFF000000000000000000000000000000000000000000
                    IE: Unknown: 3D1602080400000000000000000000000000000000000000
                    IE: Unknown: 4A0E14000A002C01C800140005001900
                    IE: Unknown: 7F080500000000000040
                    IE: Unknown: DD090010180200000C0000
                    IE: Unknown: DD180050F2020101800003A4000027A4000042435E0062322F00
                    IE: Unknown: 46057200010000

[... other available networks omitted ...]
Configure NetworkManager

If everything looks good, proceed to the Network configuration step. That is handled by Network Manager (instead of Wicd). See under [Salix menu] > Settings > Network Connections, or, look for its icon in the bottom panel).

Find your WiFi network name, click on the Edit button and input the appropriate credentials. (The password is entered under the “Wi-Fi Security” tab):


Hopefully, you should be able to connect to your WiFi network, and should see something similar to this screenshot:


Check for Presence of b43 and ssb Drivers

Last, but not least, confirm that your b43 and ssb blacklisting was successful by issuing this command:

Code: Select all

david[~]$ lsmod | egrep 'b43|ssb|brcm'
brcmsmac              533379  0
cordic                  1149  1 brcmsmac
brcmutil                6525  1 brcmsmac
mac80211              549790  1 brcmsmac
cfg80211              464211  2 brcmsmac,mac80211
bcma                   34506  1 brcmsmac
The output should not contain any mention of "b43" or "ssb".

Additional Information Sources

The Arch Wiki has detailed, up-to-date information on Broadcom WiFi chipsets:

The Linux Wireless wiki is another good source: ... /brcm80211

If the brcmsmac driver does not work for you, and you need to explore other options, you might find these sources helpful:
(Discusses the proprietary broadcom-wl [aka broadcom-sta] driver) ... less_cards
"How to install b43 firmware for Broadcom Wireless cards."
Registered Linux User # 442201

AMD Athlon II X2 240 2.8 GHz, 4 GB RAM, Seagate Barracuda 320 GB HD, Nvidia GeForce 6150SE nForce 430 integrated GPU, Samsung SH-S222L DVD-RW

HP Mini 210-2100

Post Reply