Solved Macbook Air 2017 : Need Help With Proprietary Firmware/Driver

Details :
Device : MacBook Air (13-inch, 2017)
Card : Broadcom 4360 , PCI-ID : 14e4:43a0
Driver I used on Linux (Ubuntu, Arch) : bcmwl-kernel-source
Linux Driver Reliability : Complete, Unfailing
OS I need driver for : NomadBSD (FreeBSD 13.0-RELEASE-p3, GENERIC kernel, amd64 base).

So basically I need to do what bcmwl-kernel-source did for me when I used to use Linux.
Is there driver support for this ? If yes, could you please guide me on how to get it and set it up ?
Is the driver available in binary form or will I have to compile ? If I have to compile, please let me know how that usually works, am a noob to BSD.

Thanks a lot !
 
I tried with if_bwn_load="YES" appended to /boot/loader.conf and it did load successfully.

Unfortunately, no networking hardware is detected at all, and only device displayed by ifconfig is the lo0 device.

Besides, the second link you shared states that the 802.11ac bcm4360 is not supported by any drivers, at the date of it being written (2018).

So is it possible to conclude that there is no support whatsoever for the MBAir2017's bcm4360 network card ?

Suppose I wanted to get a USB dongle. What do I look for ?
 
It is quite possible there is no support for that Broadcomm device. They are a bit infamous with requiring NDAs and other legal stuff for their hardware, which is not cheap nor easy to come by.

As for a USB dongle: there should be a supported hardware list around for the release versions. start over at freebsd.org, look for "Releases" then 13.0 should take you to the release notes pages.

"man -k wireless" showes a bunch of different intel devices being available, ralink, realtek, atheros. I do not know how well they work or don't work; I'm a "hard wired" kind of guy.
 
It is quite possible there is no support for that Broadcomm device. They are a bit infamous with requiring NDAs and other legal stuff for their hardware, which is not cheap nor easy to come by.
Quick Q : How does Linux have them ?

Also, the release notes (for 13.0 at least) have no hardware list of netwrork cards ...
 
Quick Q : How does Linux have them ?
Not sure. I'd guess "binary blob". Not sure if Broadcomm is actually developing them or something else is going on.
If it's a loadable module, you should be able to see if it adheres to GPL. If not, then it produces a "tainted kernel"

Here's a place to start:
 
Something like this: https://thepihut.com/products/usb-wifi-adapter-for-the-raspberry-pi

Do note that these guys change their chip daily so if you have the funds, just buy a load (and store any that don't work until a time FreeBSD gains support!).
A while back I bought 8 different ones. They all pretty much worked with FreeBSD so either I got lucky or hopefully since they were marketed towards Raspbian, they used fairly open chipsets.

My favorite one is actually some tacky looking white edimax thing (Edimax EW-771x). It uses the if_run driver. You can see these devices in the manpages ( man if_run):

https://www.freebsd.org/cgi/man.cgi?query=if_run&sektion=4&n=1

Perhaps you meant to say kldload if_bwn ?

Yep. That's the one ;)
 
I understand and respect this. However, I have tried to follow reasonable good practice. Firstly is disclosing and making very clear that I'm using NomadBSD, both in the first post and tags, as advised by the linked post.Second is that I have really only asked about something that has to do mostly with the FreeBSD kernel and base (drivers). NomadBSD does nothing to those low levels. In effect, everything about FreeBSD applies to this derivative in this context 1:1.
 
Something like this: https://thepihut.com/products/usb-wifi-adapter-for-the-raspberry-pi

Do note that these guys change their chip daily so if you have the funds, just buy a load (and store any that don't work until a time FreeBSD gains support!).
A while back I bought 8 different ones. They all pretty much worked with FreeBSD so either I got lucky or hopefully since they were marketed towards Raspbian, they used fairly open chipsets.
Do you suggest therefore that most chips will just work , because most aren't total proprietary traps like apple hardware ? Being new to FreeBSD, I'm not able to gauge the depth and kind of driver availability well.

Also, what about Wifi + bluetooth adapters ? How workable is FreeBSD Bluetooth support ?

The good thing is a while back when I had got one of those wifi usb adapters for some windows desktop PC that no longer exists. Still have it around, looks similar : Black with red tones; no text on it whatsoever. Originally even came with a tiny CD with Windows, Mac and Linux drivers + a User guide, which I've since misplaced.

I tried it with if_rsu , because I suspected it was Realtek hardware, and while booting as well as in the dmesg now, I clearly saw the ugen0.2: <Realtek 802.11n> at usbus.

However, ifconfig returns only l0 .
 
Do you suggest therefore that most chips will just work [...]

However, ifconfig returns only l0 .
In general I notice FreeBSD wifi support to be pretty good if not on par with Linux. There are some cases where I have had adapters that work on FreeBSD but not Linux (and vice versa). I think you may have been unlucky.

However, are you aware that you need to actually prepare the wifi interface before it will show up in ifconfig?

Check out this manpage near the bottom for these commands (if_ath because it is what I am using currently).

# ifconfig wlan0 create wlandev ath0

Perhaps yours will be (based on the if_bwn manpage)

# ifconfig wlan0 create wlandev bwn0

Only after this command will you see your wireless device. If you don't know what your interface name is at this point, you can get a list of detected wifi interfaces first by doing sysctl net.wlan.devices.

If you have used Solaris before, this step kind of feels like ifconfig plumb. Once you have done this step, you won't see bwn0 or ath0 in ifconfig. It will be wlan0 and that is the one you will be using (with wpa_supplicant, etc).
 
Thank you, I was not ware of this. But I did thereafter try it for my usb wifi adapter, with the rsu driver as well as the run driver, though I'm fairly certain it is Realtek hardware.

Neither attempt succeeded , which makes me doubt the claim that " FreeBSD wifi support to be pretty good if not on par with Linux" , What makes this infinitely worse is for some reason every message I put here is kept on hold until approved by a mod, which might as well be a timer for a good few hours.

Doing sudo kldload if_rsu rsu-rtl8712fw as suggested by this man page, and then attempting sudo ifconfig wlan0 create wlandev rsu0 causes the ifconfig: SIOCIFCREATE2: Device not configured error. Considering the rsu driver is actually able to name and place the adapter on boot, this was strange to me. Regardless, I tried the run driver thereafter, but first I made sure to sudo kldunload if_rsu rsu-rtl8712fw.

For run, which was unlikely to work to begin with, I did sudo kldload if_run runfw as suggested by this man page, and then attempted sudo ifconfig wlan0 create wlandev run0 , which displayed the error : ifconfig: SIOCIFCREATE2: Device not configured , same as last time.

I do distinctly remember attempting sudo ifconfig wlan0 create wlandev bwn0 after loading bwn on bootup on the macbook, but I also remember getting the same (ifconfig: SIOCIFCREATE2: Device not configured ) error there too, though I will retry this and get back !
.
EDIT : I've tried loading it on boot through the /boot/loader.conf with the licence accept statement legal.realtek.license_ack=1 , still getting ifconfig: SIOCIFCREATE2: Device not configured consistently. Somewhere in dmesg , though, I see ugen0.2: <Realtek 802.11n> at usbus0 , meaning it was recognised?
 
Suggest Closing this thread right here as the original problem was "does the bcm4360 work ?" and the answer is "no".

Have asked the question pertaining to the USB adapter in much more depth as a new thread here.
 
Solution :
USB Tethering, a feature that allows you to use your phone's network in your PC through the USB cable as though it were an ethernet network, is well-supported on FreeBSD and is trivial to configure + involves no new purchases. It routes the phones network to the PC regardless of wether the phone is on Wifi or mobile data. Simply plug in the phone , go to settings and enable USB tethering , then go to your FreeBSD machine and run sudo dhclient ue0. That's it. I will use this.
source : a long thread on reddit with u/rykolepl.
 
OK, it is cool that FreeBSD has drivers for that.

One other solution could be to treat Windows like a glorified NDISwrapper (or proprietary compatibility layer) and use VirtualBox and its USB 1.1 passthrough to connect to a USB dongle and pass the connection to the host (either SSH SOCKS5h proxy or proper NAT).

Will not be fast but neither are many internet connections so it may not be noticeable.

Finally: I am probably just rambling here but I use this for my Solaris 10 and Windows NT machines: https://www.amazon.co.uk/PQI-Air-Express-Wireless-Router/dp/B00BNAST1I

Best described as a wifi <-> ethernet converter. Tiny embedded Linux that really just bridges connections. This will *always* work (providing you have working ethernet).
 
Back
Top