Fedora 38, install broadcom wireless driver in an Macbook Pro early 2011

I’ve upgraded my system from fedora 36 to 38, and all works great except for the wifi driver, so in this entry I’m goig to show how to fix it.

May be you want to read my previous post to get some useful tips.

Ok, let’s get started:

1. Getting some details about your device, in my case is a BCM4331:

[jaehoo@macbookpro-jaehoo broadcom-wl]$ lspci | grep -i broadcom
02:00.0 Ethernet controller: Broadcom Inc. and subsidiaries NetXtreme BCM57765 Gigabit Ethernet PCIe (rev 10)
02:00.1 SD Host controller: Broadcom Inc. and subsidiaries BCM57765/57785 SDXC/MMC Card Reader (rev 10)
03:00.0 Network controller: Broadcom Inc. and subsidiaries BCM4331 802.11a/b/g/n (rev 02)

2. Install the next packages:

# install kernel to build modules
sudo dnf install dkms kernel-devel-`uname -r`

#Install broadcom pakage dependencies
sudo dnf install broadcom-wl kmod-wl

3. Download a copy of the driver from this github repository: https://github.com/antoineco/broadcom-wl and uncompress the zip file

4. Open a terminal, build and install the driver:

[jaehoo@macbookpro-jaehoo broadcom-wl]$ make
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: se entra en el directorio '/usr/src/kernels/6.2.15-300.fc38.x86_64'
warning: the compiler differs from the one used to build the kernel
  The kernel was built by: gcc (GCC) 13.1.1 20230426 (Red Hat 13.1.1-1)
  You are using:           gcc (GCC) 13.1.1 20230511 (Red Hat 13.1.1-2)
CFG80211 API is prefered for this kernel version
Using CFG80211 API
CFG80211 API is prefered for this kernel version
Using CFG80211 API
make[1]: se sale del directorio '/usr/src/kernels/6.2.15-300.fc38.x86_64'

[jaehoo@macbookpro-jaehoo broadcom-wl]$ sudo make install
install -D -m 755 wl.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless

5. Load module to test it:

[jaehoo@macbookpro-jaehoo broadcom-wl]$ sudo depmod -A
[jaehoo@macbookpro-jaehoo broadcom-wl]$ sudo modprobe wl
[jaehoo@macbookpro-jaehoo broadcom-wl]$ sudo akmods
Checking kmods exist for 6.2.15-300.fc38.x86_64            [  OK  ]

[jaehoo@macbookpro-jaehoo broadcom-wl]$ lsmod | grep wl
wl                   6541312  0
cfg80211             1269760  1 wl
[jaehoo@macbookpro-jaehoo broadcom-wl]$ nmcli dev wifi list
IN-USE  BSSID              SSID                     MODE   CHAN  RATE        SIGNAL  BARS  SECURITY 
*       2A:77:77:9E:FB:E6  Nadir                    Infra  11    130 Mbit/s  100     ▂▄▆█  WPA2     
        28:77:77:8E:FB:E6  Jaehoo_home              Infra  11    130 Mbit/s  100     ▂▄▆█  WPA2     
        28:77:77:8D:DC:1C  INFINITUM1883            Infra  1     130 Mbit/s  44      ▂▄__  WPA2     
        B0:08:75:6E:6D:A6  --                       Infra  3     130 Mbit/s  44      ▂▄__  WPA2     
        B0:08:75:6E:6D:A4  Verguliohalf             Infra  3     130 Mbit/s  42      ▂▄__  WPA2     
        D8:D8:66:1E:A6:C3  blueteleA6C3             Infra  5     130 Mbit/s  42      ▂▄__  WPA2     
        48:D7:05:F0:63:66  SICO WIFI                Infra  1     130 Mbit/s  35      ▂▄__  WPA2     
        6C:D8:19:F3:DA:08  Totalplay-2.4G-da08      Infra  6     270 Mbit/s  32      ▂▄__  WPA2     
        6C:D8:19:F3:DA:0B  ClubTotalplay_WiFi_2.4G  Infra  6     270 Mbit/s  30      ▂___  --       
        D4:AB:82:F0:A2:D7  IZZI-8C99                Infra  11    405 Mbit/s  29      ▂___  WPA2     
        14:EB:B6:24:71:EE  Dickbutt                 Infra  6     130 Mbit/s  25      ▂___  WPA2     
        70:54:25:70:9B:F7  IZZI-C6E4                Infra  1     405 Mbit/s  24      ▂___  WPA2   

As you can see the nearest networks are detected.

6. Reboot the system, now the wireless networks must appear into the network manager.

7. In order to avoid rebuild the driver manually on every new kernel installation, you can add the module to be builded by the operating system automaticly:

sudo dkms add /path/to/this/repo
sudo dkms status

References

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.