NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
17.35k stars 13.59k forks source link

broadcom-wl-dkms #155642

Open johnk1917 opened 2 years ago

johnk1917 commented 2 years ago

Project description The broadcom-wl-dkms driver provides the wl module needed by BCM4xxx wifi chips, usually on Macbooks.

Metadata

ReplayCoding commented 2 years ago

Is this not already provided by the broadcom-sta package?

icodeforyou-dot-net commented 2 years ago

On my Macbook Pro 2013 it is

MacSlash commented 2 years ago

Personally I have had a lot of trouble with broadcom-sta and it doesn't seem to work for BCM4360, if you have a solution please tell me tho

n8henrie commented 1 year ago

Just converted my 2009 Macbook from Arch. Its wifi was working fine for years with broadcom-wl-dkms, not working with:

boot = {
    kernelModules = [ "kvm-intel" "wl" "b43" ];
    extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
};

The respective wpa_supplicant journald entry is spammed with CTRL-EVENT-SCAN-FAILED ret=-22 retry=1.

$ sudo dmesg | grep -i wireless
[   19.357094] eth0: Broadcom BCM432b 802.11 Hybrid Wireless Controller 6.30.223.271 (r587334)
liamdiprose commented 1 year ago

Hi @n8henrie

I was having the same message spammed as well. I switched from wpa_supplicant to network manager and now it seems to work.

{
boot = {
    kernelModules = [ "kvm-intel" "wl" ];
    extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
};

networking.wireless.enable = false;
networking.networkmanager.enable = true;
}

I'm not entirely sure why this worked for me, since networkmanager uses wpa_supplicant under the hood. Also, I think it started working when I toggled 'flight mode' in Gnome.

Hopefully this helps!

n8henrie commented 1 year ago

Thanks for the heads up!

For no reason in particular I'm not a huge fan of NetworkManager, but I tried it and had the same experience -- it worked well. That made me curious, so I tinkered a bit today and was able to get things working well by removing extraModulePackages = [config.boot.kernelPackages.broadcom_sta];, so the relevant parts of my config are currently:

networking = {
    wireless.enable = true;
    enableB43Firmware = true;
};
boot.kernelModules = ["kvm-intel" "wl" "b43"];

Also, as @ReplayCoding mentioned, I looked into things and it looks like nixpkgs already has basically the same patches as broadcom-wl-dkms.

For example, here is the source from the broadcom-wl-dkms arch package I had previously been using: https://github.com/archlinux/svntogit-community/tree/packages/broadcom-wl-dkms/trunk (the repo linked by OP looks like it's actually outdated compared to this).

Compare those patches to https://github.com/NixOS/nixpkgs/tree/master/pkgs/os-specific/linux/broadcom-sta -- the commits there even reference broadcom-wl-dkms: https://github.com/NixOS/nixpkgs/blob/master/pkgs/os-specific/linux/broadcom-sta/linux-6.1.patch

So in short, I think @johnk1917 can close this issue, as the package he's requesting is already implemented AFAIK.

MrFoxPro commented 1 year ago

Thanks for the heads up!

For no reason in particular I'm not a huge fan of NetworkManager, but I tried it and had the same experience -- it worked well. That made me curious, so I tinkered a bit today and was able to get things working well by removing extraModulePackages = [config.boot.kernelPackages.broadcom_sta];, so the relevant parts of my config are currently:

networking = {
    wireless.enable = true;
    enableB43Firmware = true;
};
boot.kernelModules = ["kvm-intel" "wl" "b43"];

Also, as @ReplayCoding mentioned, I looked into things and it looks like nixpkgs already has basically the same patches as broadcom-wl-dkms.

For example, here is the source from the broadcom-wl-dkms arch package I had previously been using: https://github.com/archlinux/svntogit-community/tree/packages/broadcom-wl-dkms/trunk (the repo linked by OP looks like it's actually outdated compared to this).

Compare those patches to https://github.com/NixOS/nixpkgs/tree/master/pkgs/os-specific/linux/broadcom-sta -- the commits there even reference broadcom-wl-dkms: https://github.com/NixOS/nixpkgs/blob/master/pkgs/os-specific/linux/broadcom-sta/linux-6.1.patch

So in short, I think @johnk1917 can close this issue, as the package he's requesting is already implemented AFAIK.

Right now I'm trying to get BCM4360 (PCI card) working with wpa_supplicant with no success. With config you provided ip doesn't ouput card at all. image

MrFoxPro commented 1 year ago

Btw iwd works fine with BCM4360

n8henrie commented 1 year ago

@MrFoxPro interesting. I'm over my depth, but interesting that we have different kernel drivers / modules in use:

$ sudo lspci -vnn -d 14e4:
03:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM4322 802.11a/b/g/n Wireless LAN Controller [14e4:432b] (rev 01)
    Subsystem: Apple Inc. AirPort Extreme [106b:008d]
    Flags: bus master, fast devsel, latency 0, IRQ 20
    Memory at d3200000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: [40] Power Management version 3
    Capabilities: [58] Vendor Specific Information: Len=78 <?>
    Capabilities: [e8] MSI: Enable- Count=1/1 Maskable- 64bit+
    Capabilities: [d0] Express Endpoint, MSI 00
    Capabilities: [100] Advanced Error Reporting
    Capabilities: [13c] Virtual Channel
    Capabilities: [160] Device Serial Number e9-1d-08-ff-ff-df-00-26
    Capabilities: [16c] Power Budgeting <?>
    Kernel driver in use: b43-pci-bridge
    Kernel modules: ssb
MrFoxPro commented 1 year ago

@MrFoxPro interesting. I'm over my depth, but interesting that we have different kernel drivers / modules in use:

$ sudo lspci -vnn -d 14e4:
03:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM4322 802.11a/b/g/n Wireless LAN Controller [14e4:432b] (rev 01)
  Subsystem: Apple Inc. AirPort Extreme [106b:008d]
  Flags: bus master, fast devsel, latency 0, IRQ 20
  Memory at d3200000 (64-bit, non-prefetchable) [size=16K]
  Capabilities: [40] Power Management version 3
  Capabilities: [58] Vendor Specific Information: Len=78 <?>
  Capabilities: [e8] MSI: Enable- Count=1/1 Maskable- 64bit+
  Capabilities: [d0] Express Endpoint, MSI 00
  Capabilities: [100] Advanced Error Reporting
  Capabilities: [13c] Virtual Channel
  Capabilities: [160] Device Serial Number e9-1d-08-ff-ff-df-00-26
  Capabilities: [16c] Power Budgeting <?>
  Kernel driver in use: b43-pci-bridge
  Kernel modules: ssb

Possibly hardware is different, I have PCI card with this chip, and I guess you are using macbook

drupol commented 2 weeks ago

Maybe this thread might help: https://discourse.nixos.org/t/wifi-problems-only-after-installation/27969

drupol commented 2 weeks ago

I'm still looking for a solution on my old iMac. I have submitted a PR #1089 against NixOS/nixos-hardware to add the iMac, I also added a note regarding the Wifi, feel free to suggest how this could be fixed.

https://github.com/NixOS/nixos-hardware/pull/1089/files#diff-231006c10f2e66f60c4759c2119ae62af862441062d69a1170b7d4d4cb14e207R22