Broadcom WiFi chip help

  • I am new here and I have installed libreelec 11.06 on Mac Mini Late 2012. It runs great but doesn’t detect WiFi.

    This device has a BCM4331 WiFi chip and I got WiFi working on Manjaro Linux with enabled AUR, flatpack, Snap after using my Ethernet port temporarily and going to terminal and installing linux61-headers and broadcom-wl-dkms

    Is it possible for me to install these drivers so I can use WiFi on libreelec? Any Linux terminal, access to AUR or other repositories?

    Note: The reason I didn’t install the latest version of libreelec is because it wouldn’t boot on my Mac Mini.

  • I've seen another report of not being able to boot the LE12 installer (where LE11 worked). The issue was just in the installer though, so once LE11 has installed to the internal drive you should be able to update to LE12.

    The Generic image should have the brcmfmac driver for the card included, but it might be missing the firmware, which can be easily solved: https://wiki.libreelec.tv/how-to/add-firmware

  • I've seen another report of not being able to boot the LE12 installer (where LE11 worked). The issue was just in the installer though, so once LE11 has installed to the internal drive you should be able to update to LE12.

    The Generic image should have the brcmfmac driver for the card included, but it might be missing the firmware, which can be easily solved: https://wiki.libreelec.tv/how-to/add-firmware

    I do not know what was going on with my life that caused me to not pursue this fix. I will pursue it soon tomorrow and report back on success or failure. Thank you for the support chewitt.

  • I think I miss-read the original post. LE11/12 already include the "wl" driver for BCM4331 cards, although it has been dropped for LE13 because it no longer compiles. It hasn't been actively maintained for years and the in-kernel but less functional 'b43' driver is not much better. Regardless the install LE11 and update advice should still stand. If you really need WiFi the best option will be an external USB device or if you're brave enough to crack the mini open, it should be trivial to swap the BCM4331 card out for a better supported Intel chip device. It's just a PCIe card so anything with the same form-factor pulled from a laptop will work fine.

  • I see, I’m currently on 11.0.6 and can confirm it didn’t work on that version. Interestingly the Bluetooth does work and if I’m not mistaken both WiFi and Bluetooth are from the same chip. I have left the device to update to 12.0.1 and will check if it works later today.

  • WiFi/BT are in the same chip package but powered and addressed differently (WiFi is a PCI device, BT is a serial UART device) so one working and the other not doesn't prove too much. Please run "dmesg | paste" over SSH once updated to 12.0.1 and share the log URL so we can check the boot log for error messages or other info.

  • I am really grateful for your quick responses and I am really sorry for pursuing this so late after initially opening my request.

    Here is the paste url I got https://paste.libreelec.tv/sterling-jackass.log

    I found references of my chip ID 4331 and of wl tainting kernel somewhere though I cannot make sense of those messages, here are the copied lines.

    Code
    [    0.276799] pci 0000:02:00.0: [14e4:4331] type 00 class 0x028000
    [    4.689517] bcma-pci-bridge 0000:02:00.0: bus0: Found chip with id 0x4331, rev 0x02 and package 0x09
    
    [    5.683566] wl: loading out-of-tree module taints kernel.
    [    5.683586] wl: module license 'MIXED/Proprietary' taints kernel.
    [    5.683588] Disabling lock debugging due to kernel taint
    [    5.683590] wl: module license taints kernel.
  • All drivers native to the Linux kernel are GPLv2.0 so when an out-of-tree (vendor/proprietary) non-GPLv2.0 driver (or in this case, a mixed license driver) is loaded this "taints" the kernel from a license perspective (it is no longer pure GPLv2.0). This is harmless, it has no functional or performance impact or meaning.

    I don't see any errors in the log (nothing about firmware loading etc.) but the driver is old and poorly maintained so there might be errors somewhere else once networks are configured. Have you tried to configure a network in LE settings? What does "journalctl | paste" show?

    NB: The BT device is USB connected (Universal Serial Bus)

  • Kernel drivers need to be compiled for the specific kernel version running and 'dkms' drivers automatically rebuild (recompile) when a change in the kernel version (magic) is detected. Compiling requires header files, so that's easily explained.

    Logs show the hardware being probed and the wl driver loading. If that doesn't result in a working interface it's probably due to a difference between current kernel APIs and ageing/un-current driver code. The kernel evolves and moves (drifts) forwards while the driver code is static, so at some point the kernel has drfted far enough for things to stop working.

    I have a suspicion the driver stopped working (although still compiled) some time ago, but few people use hardware old enough to need 'wl' these days (most people use Ethernet) so the breakage has gone un-reported.

    As per earlier comments: a decent USB wifi stick or replacing the PCIe module are probably the best options. The latter is probably cheapest although cracking older 'mini' boxes open is quite a task.

  • I see, alright I will drop the current wifi card and try to stay with offline usb playback or ethernet or usb wifi stick.

    I appreciate your time and effort and I think we can close the topic now.

  • The newer versions of libreelec drops support for older wifi chips. I've already pointed this out. The old drivers aren't even in the legacy edition, unfortunately.