Skip to content

Instantly share code, notes, and snippets.

@jamespamplin
Last active July 1, 2024 22:00
Show Gist options
  • Save jamespamplin/7a803fd5be61d4f93e0c5dcdea3f99ee to your computer and use it in GitHub Desktop.
Save jamespamplin/7a803fd5be61d4f93e0c5dcdea3f99ee to your computer and use it in GitHub Desktop.

The current kernel/drivers of Fedora 24 do not support the Wifi chip used on my Mac Book Pro. Proprietary Broadcom drivers are packaged and available in the rpmfusion repo.

Verify that your card is a Broadcom using: lspci -vnn -d 14e4:

Sample output:

02:00.0 Network controller [0280]: Broadcom Corporation BCM4360 802.11ac Wireless Network Adapter [14e4:43a0] (rev 03)

Install

Install the rpmfusion repo, note only "nonfree" is required, as the Broadcom Driver is proprietry: http://rpmfusion.org/

su -c 'dnf install -y http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm'

Then install the akmods and kernel-devel packages (special thanks to @celsom3 for providing this):

sudo dnf install -y akmods "kernel-devel-uname-r == $(uname -r)"

Finally install broadcom-wl package from the rpmfusion repo, which will install kmod-wl, akmod-wl, and other dependencies.

sudo dnf install -y broadcom-wl

Next run akmods to rebuild the kernel extension in the broadcom-wl package:

sudo akmods

Finally, reboot Fedora.

Troubleshooting

  • lsmod to list all kernel modules
  • sudo modprobe wl will force the wireless kernel extension to load.
  • sudo systemctl restart NetworkManager
@Xiol
Copy link

Xiol commented Feb 14, 2018

All good on a MacBook 11,x (late-2013) with Fedora 27. Thanks.

@Gh0stlyKn1ght
Copy link

Thank you works like a charm!

@alexismansilla
Copy link

Thank you 👍

@ryancheta
Copy link

well this is completely useless when you've a MacBook pro WITHOUT an ethernet port. How are we suppose to install a repo when we aint got internet connection in the first place!!??? Guess y'all didn't consider that

@Minkiu
Copy link

Minkiu commented Sep 27, 2018

well this is completely useless when you've a MacBook pro WITHOUT an ethernet port. How are we suppose to install a repo when we aint got internet connection in the first place!!??? Guess y'all didn't consider that

Use your phone (usb) tethering.

On another note, just report that this steps worked for Fedora 28 on a MacBook Pro (13-inch, Early 2011).

@remipoulenard
Copy link

Thank you so much, it worked perfectly fine on a dual-boot with osx mojave on a macbook pro retina mid-2014 !

@fredfortier
Copy link

fredfortier commented Apr 17, 2019

I tried this tutorial with a mid-2014 MacBook Pro and Fedora 29. Note that UnitedRPMs also publish the driver: https://github.com/UnitedRPMs/broadcom-wl-dkms

$ modinfo wl
filename:       /lib/modules/5.0.7-200.fc29.x86_64/extra/wl/wl.ko
license:        MIXED/Proprietary
alias:          pci:v*d*sv*sd*bc02sc80i*
depends:        cfg80211
retpoline:      Y
name:           wl
vermagic:       5.0.7-200.fc29.x86_64 SMP mod_unload
parm:           passivemode:int
parm:           wl_txq_thresh:int
parm:           oneonly:int
parm:           piomode:int
parm:           instance_base:int
parm:           nompc:int
parm:           intf_name:string

It works but it's highly unreliable for me. The wl adapter drops its internet access frequently. I tried finding errors in the system logs but nothing stood out. Anyone else having similar issues?

As a workaround, I created a cron job with the following script to keep the connection alive:

#!/bin/bash
x=`ping -c1 google.com 2>&1 | grep unknown`
if [ ! "$x" = "" ]; then
   echo "Network down!! Attempting to restart."
   systemctl restart NetworkManager
else
   echo "Network up"
fi

@DangerFone
Copy link

DangerFone commented May 26, 2019

Okay SELinux was to blame:
https://bugzilla.redhat.com/show_bug.cgi?id=1426741

sudo setenforce 0
sudo modprobe wl
sudo setenforce 1

Worked perfectly for me on Mid-2013 Macbook Air running F30; but I had to run @poltys inputs. Maybe this step should be included in the instructions now, too. Keeping an eye on connection stability a la @fredfortier. So far so good.

@acypert
Copy link

acypert commented Jul 17, 2019

Mostly worked like a charm on Fedora 30 on late 2008 model Macbook (unibody). I just had to adjust NetworkManager.conf file with then reboot:

Try to put:

[device]
wifi.scan-rand-mac-address=no

in /etc/NetworkManager/NetworkManager.conf

See: https://ask.fedoraproject.org/t/wifi-not-working-on-mac-mini-after-installing-fedora/827/4

@Villarrealized
Copy link

I had to omit the second equal sign for the following line on Fedora 32:

sudo dnf install -y akmods "kernel-devel-uname-r == $(uname -r)"

Running it with both equal signs produced the following error:

$ sudo dnf install akmods "kernel-devel-uname-r == $(uname -r)"
Last metadata expiration check: 0:15:14 ago on Fri 15 May 2020 12:41:50 PM MDT.
Package akmods-0.5.6-25.fc32.noarch is already installed.
No match for argument: kernel-devel-uname-r == 5.6.6-300.fc32.x86_64
Error: Unable to find a match: kernel-devel-uname-r == 5.6.6-300.fc32.x86_64

@orrmy
Copy link

orrmy commented Oct 30, 2020

Thanks a lot! I had almost given up when I found this...

But now I can confirm it works flawlessly in Fedora 33 on my late 2013 15" MBP, with Villarealized's modification.

@zwalex
Copy link

zwalex commented Sep 7, 2022

Trying this on a late 2009 Mac Mini with Fedora Server 36.
After running akmods, I saw the following on dmesg:
[ 1251.670088] wl: loading out-of-tree module taints kernel.
[ 1251.670097] wl: module license 'MIXED/Proprietary' taints kernel.
[ 1251.670099] Disabling lock debugging due to kernel taint
[ 1251.676955] wl: module verification failed: signature and/or required key missing - tainting kernel
That made me a little nervous but there were no more dmesg like that any more after review (not sure what happened).
After finding out how to configure the wireless adapter (BCM4321, btw.) headless via nmcli it's now working fine.

@zwalex
Copy link

zwalex commented Sep 7, 2022

Hahaha - meant to say "after reboot" (not review ...)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment