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
@wwweeds
Copy link

wwweeds commented Jul 25, 2016

Celsom3, that worked perfectly for me on my new fedora24 build on my MacBook! Thanks!

@g13n
Copy link

g13n commented Aug 10, 2016

Celsom3, I can also confirm your instructions worked perfectly on Fedora 24 on my MacBook Pro.
Thanks!

@shi27feng
Copy link

What about the Macbook pro made in late 2014 or earlier 2015? How to solve it since there's no wire connection available, dnf won't work. Thanks a lot!

@alan-soares-dev
Copy link

Celsom3, Worked for me too! MacBook Pro late 2011.

@jamespamplin
Copy link
Author

@celsom3 thanks so much for providing your fix! Confirmed on a clean install of mine too. I've updated the instructions to reflect.

@jamespamplin
Copy link
Author

@shi27feng sorry I missed your question, theres no notifications on gist 😦

The easiest way is to use a lightning to ethernet adapter. Otherwise you might be able to download the packages individually from another computer, but that will be difficult with their dependencies. Not sure of a simple way to do this, sorry.

@caa
Copy link

caa commented Oct 17, 2016

I had issues getting RPM Fusion working. They seem to have changed to HTTPS-only?

http://rpmfusion.org/Configuration

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

I got WiFi working on Fedora 25 Beta. Thanks for the gist!

@hngouveia01
Copy link

Do you want to share your ethernet connection through your WiFi?

If so, you can take full advantage of your driver by downloading the broadcom driver, compiling and installing it:

(AND for those using Fedora 24 kernel 4.7.x and having trouble with this solution):

You can clone this repository that I've made and run install.sh
https://github.com/hngouveia01/hybrid-v35_64-nodebug-pcoem-6_30_223_271

Or you can also download the driver at http://www.broadcom.com/support/802.11
(64 bits) http://www.broadcom.com/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz

apply the patch found at
https://github.com/USA-RedDragon/broadcom-wl-dkms/commit/52ef285fd9c688bb8b161b64d5dd1c4a8f2a1c4f

compile it and install it.

@danilogco
Copy link

Thank you!

@rtjfarrimond
Copy link

Total Linux noob here, trying to do this on macbook pro early 2008 model with Fedora 25. When running sudo dnf install -y akmods "kernel-devel-uname-r == $(uname -r)" I get the following output:

Last metadata expiration check: 0:26:40 ago on Sat Jan 7 14:51:05 2017. No package akmods available. Error: Unable to find a match.

Any clues as to why this might not work?

@default-writer
Copy link

default-writer commented Jan 22, 2017

@rtjfarrimond:

Use https versions

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

@poltys
Copy link

poltys commented Feb 27, 2017

Since the last update, I have lost my Wifi and I am totally clueless here:

akmods
Checking kmods exist for 4.8.6-300.fc25.x86_64 [ OK ]

sudo modprobe wl
modprobe: ERROR: could not insert 'wl': Permission denied

NB: I removed and reinstalled everything.

If someone has any tips to share, it would be fantastic!

@poltys
Copy link

poltys commented Feb 27, 2017

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

sudo setenforce 0
sudo modprobe wl
sudo setenforce 1

@pietroiusti
Copy link

Thank you! It worked perfectly. MacBook Pro late 2011 Fedora 25

@samiraguiar
Copy link

Thank you @jamespamplin and @celsom3, it worked perfectly on Fedora 25 running on Macbook Pro Early 2011!

@davidaparicio
Copy link

Thanks you! It worked perfectly. MacBook Air late 2014 Fedora 26 :)

@NixImagery
Copy link

Thank you so much for this. It worked perfectly on a mid 2009 Macbook Pro with Fedora 27.

@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