Change:
I have NixOS installed on a mid-2015 Macbook Pro. The WiFi is not working. More specifically, the wireless chip is not being detected. When enabling the broadcom drivers I get a compile error while running . Some info: In my I have: and in my I have: When I run I get the following error:
I found some useful info here: I'll see if I can cook up a patch within the next 24 hours.
I think this should be resolved by (I still need to test it out, though). If you're feeling impatient, feel free to give it a whirl :).
thanks so much for the quick fix! How do I point my at a specific commit so I can see if this change fixes my WiFi issues?
get a nixpkgs tree (e.g. by ) and use with or with many other tools to make them use that custom tree.
I'm trying that and it's not working. I've cloned nixpkgs, ensured they have the changes, and run and it failed. I also tried , same error.
That approach works for me (for many months regularly). You likely need to be more specific about the error.
the error is that the patch still fails, in the same way it did before, indicating that the alternative isn't being picked up. /cc
oh, nevermind, the proper command is
I think should work. Perhaps also will. (On my checkouts I have symlinks that allow a wider range of specifications.)
yes, I can confirm this worked. alas, my WiFi is still not working! Thanks for your help.
Could you run the following, please?
My laptop is a late 2014 model: MacBookPro11,3 If you can tell me your product name, I can see if I can find anything relevant on lkml or elsewhere. I'm about to receive a mid-2015 model, and it would certainly be nice to have wifi working when I get it.
thanks for looking into this. I feel a bit out of my element but I've been trying hard to figure this out! my product name is: I've heard tell from some Arch and Fedora users that they have WiFi using so it may be a configuration issue? Though my configuration is pretty basic.
Btw, does your MacBook Pro use the ForceTouch trackpad (or whatever it's called)? Curious if you're using 4.2 in order to have keyboard/trackpad work, and if so, how well that's working for you. I saw on the lkml (maybe a month or two ago) that some patches were sent in for keyboard/trackpad fixes on the 2015 models. It's been my intention to backport those patches for NixOS, but I haven't had a chance yet.
: yes it's forcetouch. For kernels , , and , the mouse worked and single-clicks worked, but double-tap clicks did not, nor did right-clicks. On the kernel the mouse works pretty well! I have two-finger scroll and right click and the response is decent.
Ah, you might want to try removing this line from your config: My understanding is that B43 is an alternative implementation, which might be conflicting with broadcom-sta on your machine. Aside from that line, your configuration looks similar to mine.
: ok, I'll try that (though I thought I tried that). should I keep the in ?
Yep. Let me know if that helps, and if not, we'll try something else.
still no luck. I've posted my conifguration here: let me know if you see anything weird in there. I've messed around a lot in there so likely there's weird stuff happening. I appreciate the help!
Hrm... So, the only real difference I see is that where you have this: I have: I suppose it's pretty unlikely, but I perhaps and/or kernel modules might not be loaded? If you run , you should see some entries like the following: Meanwhile, I'll try making my config look more like yours and see if I can break my wifi. Thanks for being patient :).
yes, I have exactly that on the : I think is attempted to get loaded but there's an error? Here is what dmesg says: I'll match your config and see what happens.
still no luck!
Interesting. So, I also have a line like so: However, I don't see those other two messages. A little googling led me here: That suggests that there's a driver shipped as part of the kernel which might be usable, depending on your model. Could you run this, please? That should give you the PCI device ID for your network interface. For example, that gives me: Where is the ID. Let me know what your ID is. If it's listed the following page, we can see if we can skip third-party drivers entirely:
here is what I get: it says supported in . But if I disable the broadcom drivers (by removing the line from ) it still doesn't work. Is there anything else I should do? I'm am going to try again just for good measure, though.
I disabled the package in and it still didn't work. Looking at logs I see this:
Ok, so this suggests that there's a firmware that has to be fetched separately for : In fact, I just realized that's what the link form earlier was suggesting, that on Gentoo one would need to install their package to get the firmware. After a little detective work, it looks like we have the relevant firmware () available as part of our package. You should be able to add the following to your config to make the extra firmware available: After that, you'll want to remove any references to in your config, and I think replace them with . After a restart, you might want to try greping for and/or grep (which will tell you which kernel module is in use for each device). After all of that, hopefully wifi works :). Unfortunately, my device isn't supported, otherwise I'd be my own guinea pig. Mind giving that a go?
I will try this now. thanks!!
OK, so I removed from the , replaced it with and put the flag there. Still no luck. here is what reports: Also, returns (I've removed the ethernet noise): Lastly, returns:
Are there any interesting message in ? Want to make sure found the firmware. At least the kernel module is loaded, which is a good sign.
This answer might be what's missing:
returns nothing.
I can confirm that when I run I get: I'm unsure how to incorporate the changes suggested in that stack exchange answer.
Oh, right - I stumbled across that tidbit, and then promptly forgot after getting carried away with all of the other tidbits. Thanks! Any pointers on how to make that change in our kernel builder?
Ah, this is relevant: (What's sort of sad is that I helped write some of that content. Poor memory...) Something like the following should work, I think: (I found the config option here: )
Try putting that snippet in your config. I just started a kernel build to sanity check it, and it looks like I got the incantation right:
I wonder if there's a reason not to put that into our default config. Moreover, the config line suggests that "Y" is the upstream default. That's unavoidable. Therefore, comments and docs are needed even in one-man projects.
Oh, is that what the capitalization of the "Y" means? I'm still pretty new to this stuff. Only started digging this deep into kernel configuration and such about a year and a half ago - back when I first started contributing to Nix{,OS} :).
If that config option is supposed to default to "Y", I wonder if it's been enabled all this time. I mean, the only reason I can think of that wifi isn't working for is because it's not enabled... It would be nice to have a way to know at a glance what configuration options were enabled for a given kernel. If it's not being enabled by default, then yes, I think we ought to enable it for all supporting kernels.
: ok, I will try this. I had to dip out to run an errand, will be back in about 15-20. Shoudl I add that to my or (I assume the former).
The former.
I think we'll want to add the following to : That way should work without the user needing to customize their kernel. I think I'll open a PR shortly.
back. trying now.
building the kernel now.
Oops, I forgot to reopen this. Better late than never, I suppose.
success!!!! Writing this to you via wifi! Thanks so, so much for all your help! And to as well!!!
You're very welcome - glad I could help! And thank you for being so responsive. I just opened a PR to turn on those config settings by default, so you shouldn't need to customize your kernel for too much longer. I'll also update the wiki. I'm not sure what it would entail, but I might also see if we can have our detect that the driver should be used, instead of - and also add the line.
Awesome support!
:-) Anyway, closing this, as the original issue was pushed already.

Discussion:
{stdenv, fetchurl}: stdenv.mkDerivation rec { <del> name = "ncompress-4.2.4.3"; </del> <ins> name = "ncompress-4.2.4.4"; </ins> builder = ./builder.sh;

src = fetchurl { url = "mirror://sourceforge/project/ncompress/${name}.tar.gz"; <del> sha256 = "1y44ixc1w2vfvj1lm4dkcljlwv882ynrvm5i6l0lg1gf883j246l"; </del> <ins> sha256 = "0yjiwv1hwb253x3m6r1dq2k7m5c9nz0ib2j7fnm3hark7y6s42xh"; </ins> }; meta = {