0

I have installed Arch linux for the very first time. I'm dual booting Windows 10 alongside my new OS.
I'm able to connet to the internet over my LAN (ethernet) and not over wifi. The wifi connection works well in windows 10 and was also working on linux mint which I had previously.
After a lot of troubleshooting, I understand that the drivers are missing for my wireless interface.
Below is the output of lshw -C Net command

    [amul@archlinux ~]$  sudo lshw -C Net
  *-network                 
       description: Ethernet interface
       product: 82567LM Gigabit Network Connection
       vendor: Intel Corporation
       physical id: 19
       bus info: pci@0000:00:19.0
       logical name: enp0s25
       version: 03
       serial: 00:21:70:c7:5d:84
       size: 100Mbit/s
       capacity: 1Gbit/s
       width: 32 bits
       clock: 33MHz
       capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=3.2.6-k duplex=full firmware=1.7-7 ip=192.168.1.108 latency=0 link=yes multicast=yes port=twisted pair speed=100Mbit/s
       resources: irq:25 memory:f6fe0000-f6ffffff memory:f6fdb000-f6fdbfff ioport:efe0(size=32)
  *-network
       description: Network controller
       product: BCM4322 802.11a/b/g/n Wireless LAN Controller
       vendor: Broadcom Inc. and subsidiaries
       physical id: 0
       bus info: pci@0000:0c:00.0
       version: 01
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list
       configuration: driver=b43-pci-bridge latency=0
       resources: irq:17 memory:f1ffc000-f1ffffff

This is the extract from journalctl -b command

Dec 18 04:49:07 archlinux kernel: Broadcom 43xx driver loaded [ Features: PNLS ]
Dec 18 04:49:07 archlinux audit[311]: SYSTEM_BOOT pid=311 uid=0 auid=4294967295 ses=4294967295 msg=' comm="systemd-update-utmp" exe="/usr/lib/systemd/systemd-update-utmp" hostname=? addr=?>
Dec 18 04:49:07 archlinux kernel: b43 ssb0:0: Direct firmware load for b43/ucode16_mimo.fw failed with error -2
Dec 18 04:49:07 archlinux kernel: b43 ssb0:0: Direct firmware load for b43/ucode16_mimo.fw failed with error -2
Dec 18 04:49:07 archlinux kernel: b43 ssb0:0: Direct firmware load for b43-open/ucode16_mimo.fw failed with error -2
Dec 18 04:49:07 archlinux kernel: b43 ssb0:0: Direct firmware load for b43-open/ucode16_mimo.fw failed with error -2
Dec 18 04:49:07 archlinux kernel: b43-phy0 ERROR: Firmware file "b43/ucode16_mimo.fw" not found
Dec 18 04:49:07 archlinux kernel: b43-phy0 ERROR: Firmware file "b43-open/ucode16_mimo.fw" not found
Dec 18 04:49:07 archlinux kernel: b43-phy0 ERROR: You must go to http://wireless.kernel.org/en/users/Drivers/b43#devicefirmware and download the correct firmware for this driver version.

Someone suggested that I should manually install the b43-firmware, so I also tried the sudo pacman -S b43-firmware - which failed too.

I also checked if the drivers are blacklisted in the /etc/netctl/modprobe.d file. This was empty - I suppose there is no blacklisting.

Is there anything simple that I'm missing? I have been around this for two days and unable to get this to work.

3

1 Answer 1

2

The b43-firmware package is not in the official repository. It is in the AUR.

Here are 2 ways to install the firmware.

Option 1 (recommended) Installing from AUR

From your home or other suitable directory:

sudo pacman -S base-devel git
git clone https://aur.archlinux.org/b43-firmware.git
cd b43-firmware
makepkg -sic

The first line installs the necessary packages for building packages. The second line retrieves the necessary files to build this package. The makepkg -sic command will install the necessary dependancies -s, install the package when the build is complete -i, then clean up the directory -c. In this case it is not actually compiling anything, just downloading and installing the firmware. I prefer this method because the package manager (pacman) will be aware of the installation, and you can remove it with sudo pacman -R b43-firmware. It also makes it easy to check for updates.

Option 2 Installing manually

sudo pacman -S b43-fwcutter
wget http://www.lwfinger.com/b43-firmware/broadcom-wl-6.30.163.46.tar.bz2
tar xf broadcom-wl-6.30.163.46.tar.bz2
sudo b43-fwcutter -w /usr/lib/firmware/ broadcom-wl-6.30.163.46.wl_apsta.o

The b43-fwcutter package is needed to extract the firmware files from the downloaded file. If you want to remove the installed firmware you will need to manually delete the directory sudo rm -rf /usr/lib/firmware/b43

Here are some links that might be useful:

Arch User Repository (archlinux wiki)

Broadcom wireless (archlinux wiki)

Wireless network configuration (archlinux wiki)

Linux Wireless - b43 & b43legacy

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .