You are not logged in.

#1 2020-05-27 20:07:58

zincbot
Member
Registered: 2020-05-27
Posts: 3

Wifi Issues on MBP Mid 2015 -- firmware issue?

I installed Arch with the 5.4.42-1-lts kernel on a Macbook Pro 2015 a few days ago. Since, I've been having issues with my wireless card.

HARDWARE & INTERFACE:

Here's what I'm working with:

> lspci -k

...
03:00.0 Network controller: Broadcom Inc. and subsidiaries BCM43602 802.11ac Wireless LAN SoC (rev 01)
	Subsystem: Apple Inc. BCM43602 802.11ac Wireless LAN SoC
	Kernel driver in use: brcmfmac
	Kernel modules: brcmfmac
...

> ip l

...
3: wlp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
    link/ether 12:9e:77:xx:xx:xx brd ff:ff:ff:ff:ff:ff
...

SYMPTOMS / CONTEXT:

Just want to join my LAN.

1. The first red flag is that I can't bring the interface up.

> sudo ip l set wlp3s0 up  #   no error is generated
> ip l

...
3: wlp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
    link/ether 12:9e:77:xx:xx:xx brd ff:ff:ff:ff:ff:ff
...

2. Can't start wpa_supplicant either (and network manager correspondingly doesn't work)

> wpa_supplicant -iwlp3s0 -c /etc/wpa_supplicant/wpa_supplicant.conf -d

...
mkdir[ctrl_interface="/run/wpa_supplicant/"]: No such file or directory
Failed to initialize control interface '"/run/wpa_supplicant/"';.
You may have another wpa_supplicant process already running or the file was
left by an unclean termination of wpa_supplicant in which case you will need
to manually remove this file before starting wpa_supplicant again.

Failed to add interface wlp3s0
...

I disabled Network Manager and killed wpa_supplicant for the test above.

Interestingly enough, I can scan with:

> sudo iw dev wlp3s0 scan

DEBUGGING:

The interface didn't show up until I installed the "linux-firmware" package. This package was like 512 Mb of random drivers. : ( This put "brcmfmac43602-pcie.bin" and "brcmfmac43602-pcie.ap.bin" in  "/lib/firmware/brcm". Also installed "broadcom-wl" per the wiki.

It looks like it's still missing some files:

> dmesg | grep brcm

[   50.611078] usbcore: registered new interface driver brcmfmac
[   50.773906] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43602-pcie for chip BCM43602/1
[   50.776006] brcmfmac 0000:03:00.0: Direct firmware load for brcm/brcmfmac43602-pcie.Apple Inc.-MacBookPro11,4.txt failed with error -2
[   50.776019] brcmfmac 0000:03:00.0: Direct firmware load for brcm/brcmfmac43602-pcie.txt failed with error -2
[   51.296223] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43602-pcie for chip BCM43602/1
[   51.296253] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-2), device may have limited channels available
[   51.296922] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43602/1 wl0: Nov 10 2015 06:38:10 version 7.35.177.61 (r598657) FWID 01-ea662a8c
[   51.467236] brcmfmac 0000:03:00.0 wlp3s0: renamed from wlan0

I figure that "brcmfmac43602-pcie.Apple Inc.-MacBookPro11,4.txt" and "brcm/brcmfmac43602-pcie.txt" were Apple specific configurations or firmware settings. I would think these files would be proprietary and protected by the system. Yet, it seems that some people have these files or similar firmware for other models.
- https://github.com/stefanpartheym/mbp15 … iver-files (firmware for newer model)
- https://askubuntu.com/questions/907489/ … s-pce-ac88 (has brcm/brcmfmac43602-pcie.txt)

I don't know how Stefan got the divers.

The journal also shows some interesting behavior. I've included exerps from Network Manager.

> journalctl -xe

...
May 27 12:45:52 archlinux kernel: audit: type=1131 audit(1590601552.737:119): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=NetworkManager-dispatcher comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
May 27 12:49:47 archlinux NetworkManager[615]: <info>  [1590601787.3101] device (wlp3s0): set-hw-addr: set MAC address to 1A:06:5D:E3:E6:A6 (scanning)
May 27 12:56:41 archlinux NetworkManager[615]: <info>  [1590602201.3101] device (wlp3s0): set-hw-addr: set MAC address to 42:8B:79:3D:E2:FD (scanning)
May 27 13:03:35 archlinux NetworkManager[615]: <info>  [1590602615.3302] device (wlp3s0): set-hw-addr: set MAC address to 2E:F1:BB:0D:CC:5A (scanning)
May 27 13:10:29 archlinux NetworkManager[615]: <info>  [1590603029.3501] device (wlp3s0): set-hw-addr: set MAC address to 72:60:08:C1:7C:06 (scanning)
May 27 13:17:23 archlinux NetworkManager[615]: <info>  [1590603443.2700] device (wlp3s0): set-hw-addr: set MAC address to 42:56:30:6C:B7:3E (scanning)
May 27 13:24:17 archlinux NetworkManager[615]: <info>  [1590603857.2801] device (wlp3s0): set-hw-addr: set MAC address to 8A:CC:32:8A:79:90 (scanning)
May 27 13:29:45 archlinux rtkit-daemon[3218]: Supervising 5 threads of 3 processes of 1 users.
May 27 13:29:45 archlinux rtkit-daemon[3218]: Successfully made thread 6565 of process 3681 owned by '1000' RT at priority 5.
May 27 13:29:45 archlinux rtkit-daemon[3218]: Supervising 6 threads of 3 processes of 1 users.
May 27 13:31:11 archlinux NetworkManager[615]: <info>  [1590604271.2802] device (wlp3s0): set-hw-addr: set MAC address to 2E:C9:AC:4B:CC:6C (scanning)
May 27 13:38:05 archlinux NetworkManager[615]: <info>  [1590604685.3003] device (wlp3s0): set-hw-addr: set MAC address to 86:9E:61:7C:74:77 (scanning)
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8137] dhcp4 (ens9): option dhcp_lease_time      => '7200'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8138] dhcp4 (ens9): option domain_name_servers  => '192.168.1.1'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8138] dhcp4 (ens9): option expiry               => '1590612162'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8138] dhcp4 (ens9): option ip_address           => '192.168.1.133'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8138] dhcp4 (ens9): option next_server          => '192.168.1.1'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8139] dhcp4 (ens9): option requested_broadcast_address => '1'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8139] dhcp4 (ens9): option requested_domain_name => '1'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8139] dhcp4 (ens9): option requested_domain_name_servers => '1'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8139] dhcp4 (ens9): option requested_domain_search => '1'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8140] dhcp4 (ens9): option requested_host_name  => '1'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8140] dhcp4 (ens9): option requested_interface_mtu => '1'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8140] dhcp4 (ens9): option requested_ms_classless_static_routes => '1'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8141] dhcp4 (ens9): option requested_nis_domain => '1'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8141] dhcp4 (ens9): option requested_nis_servers => '1'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8141] dhcp4 (ens9): option requested_ntp_servers => '1'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8142] dhcp4 (ens9): option requested_rfc3442_classless_static_routes => '1'
May 27 13:42:42 archlinux dbus-daemon[614]: [system] Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus-org.freedesktop.nm-dispatcher.service' requested by ':1.1' (uid=0 pid=615 comm="/usr/bin/NetworkManager --no-daemon ")
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8142] dhcp4 (ens9): option requested_root_path  => '1'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8142] dhcp4 (ens9): option requested_routers    => '1'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8143] dhcp4 (ens9): option requested_static_routes => '1'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8143] dhcp4 (ens9): option requested_subnet_mask => '1'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8143] dhcp4 (ens9): option requested_time_offset => '1'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8143] dhcp4 (ens9): option requested_wpad       => '1'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8144] dhcp4 (ens9): option routers              => '192.168.1.1'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8144] dhcp4 (ens9): option subnet_mask          => '255.255.255.0'
May 27 13:42:42 archlinux NetworkManager[615]: <info>  [1590604962.8144] dhcp4 (ens9): state changed extended -> extended
May 27 13:42:42 archlinux systemd[1]: Starting Network Manager Script Dispatcher Service...
-- Subject: A start job for unit NetworkManager-dispatcher.service has begun execution
-- Defined-By: systemd
-- Support: [url]https://lists.freedesktop.org/mailman/listinfo/systemd-devel[/url]
-- 
-- A start job for unit NetworkManager-dispatcher.service has begun execution.
-- 
-- The job identifier is 1228.
May 27 13:42:42 archlinux dbus-daemon[614]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
May 27 13:42:42 archlinux systemd[1]: Started Network Manager Script Dispatcher Service.
-- Subject: A start job for unit NetworkManager-dispatcher.service has finished successfully
-- Defined-By: systemd
-- Support: [url]https://lists.freedesktop.org/mailman/listinfo/systemd-devel[/url]
-- 
-- A start job for unit NetworkManager-dispatcher.service has finished successfully.
-- 
-- The job identifier is 1228.
May 27 13:42:42 archlinux audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=NetworkManager-dispatcher comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
May 27 13:42:42 archlinux kernel: audit: type=1130 audit(1590604962.817:120): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=NetworkManager-dispatcher comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
May 27 13:42:52 archlinux systemd[1]: NetworkManager-dispatcher.service: Succeeded.
-- Subject: Unit succeeded
-- Defined-By: systemd
-- Support: [url]https://lists.freedesktop.org/mailman/listinfo/systemd-devel[/url]
-- 
-- The unit NetworkManager-dispatcher.service has successfully entered the 'dead' state.
...

> journalctl -xe |grep wlp3s0

...
May 27 09:57:18 archlinux kernel: brcmfmac 0000:03:00.0 wlp3s0: renamed from wlan0
May 27 09:57:18 archlinux NetworkManager[615]: <info>  [1590591438.2583] device (wlan0): interface index 3 renamed iface from 'wlan0' to 'wlp3s0'
May 27 09:57:18 archlinux NetworkManager[615]: <info>  [1590591438.2765] device (wlp3s0): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
May 27 09:57:18 archlinux NetworkManager[615]: <info>  [1590591438.8410] device (wlp3s0): set-hw-addr: set MAC address to B2:A8:70:E4:7B:3B (scanning)
May 27 09:57:19 archlinux NetworkManager[615]: <info>  [1590591439.2286] device (wlp3s0): supplicant interface state: internal-starting -> disconnected
May 27 09:57:19 archlinux NetworkManager[615]: <info>  [1590591439.2287] Wi-Fi P2P device controlled by interface wlp3s0 created
May 27 09:57:19 archlinux NetworkManager[615]: <info>  [1590591439.2290] manager: (p2p-dev-wlp3s0): new 802.11 Wi-Fi P2P device (/org/freedesktop/NetworkManager/Devices/4)
May 27 09:57:19 archlinux NetworkManager[615]: <info>  [1590591439.2293] device (p2p-dev-wlp3s0): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
May 27 09:57:19 archlinux NetworkManager[615]: <warn>  [1590591439.2298] sup-iface[88daf53ace36c23b,0,wlp3s0]: call-p2p-cancel: failed with P2P cancel failed
May 27 09:57:19 archlinux NetworkManager[615]: <info>  [1590591439.2299] device (wlp3s0): state change: unavailable -> disconnected (reason 'supplicant-available', sys-iface-state: 'managed')
May 27 09:57:19 archlinux NetworkManager[615]: <info>  [1590591439.2305] device (p2p-dev-wlp3s0): state change: unavailable -> disconnected (reason 'none', sys-iface-state: 'managed')
May 27 10:04:11 archlinux NetworkManager[615]: <info>  [1590591851.2787] device (wlp3s0): set-hw-addr: set MAC address to 46:04:E5:72:F0:37 (scanning)
May 27 10:04:11 archlinux NetworkManager[615]: <info>  [1590591851.2834] device (wlp3s0): supplicant interface state: disconnected -> inactive
May 27 10:04:11 archlinux NetworkManager[615]: <info>  [1590591851.2834] device (p2p-dev-wlp3s0): supplicant management interface state: disconnected -> inactive
May 27 10:11:05 archlinux NetworkManager[615]: <info>  [1590592265.2688] device (wlp3s0): set-hw-addr: set MAC address to B6:04:1F:C8:2D:7C (scanning)
May 27 10:17:59 archlinux NetworkManager[615]: <info>  [1590592679.3000] device (wlp3s0): set-hw-addr: set MAC address to 82:31:8F:DA:5E:0A (scanning)
...

RESOURCES:

1. https://wiki.archlinux.org/index.php/Ma … 11,x#HiDPI
- Lists the wifi as not functional. Don't know if that means out of the box or with the avalible packages from the AUR. Seems unstable.
2. https://forum.manjaro.org/t/solved-bcm4 … -rt/105970

Seems like the wireless card is missing something that makes it unstable. Is this feudal exercise? If it is, hope this helps someone. If not, thoughts on how I could proceed? I appreciate any and all help.

Edit: Formatting

Last edited by zincbot (2020-05-29 04:32:02)

Offline

#2 2020-05-28 07:19:03

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,672

Re: Wifi Issues on MBP Mid 2015 -- firmware issue?

Please post outputs in [ code ] [ /code ] tags  without the spaces.

You are correct that broadcom chipsets often have issues with the free drivers, there exists a proprietary driver by broadcom though: https://wiki.archlinux.org/index.php/Br … roadcom-wl that tends to be more stable. If you continue to stay on LTS you will have to install the linux-lts-header and the -dkms variant of this driver.

Edit: Ah just gone through the walls of outputs, you've identified that already, but yes the current issue is that you did not install the correct broadcom-wl driver for your kernel.

Btw linux-firmware can be necessary for all sorts of hardware/drivers you almost always want it on bare-metal installations.

Last edited by V1del (2020-05-28 07:22:24)

Offline

#3 2020-05-29 20:52:58

zincbot
Member
Registered: 2020-05-27
Posts: 3

Re: Wifi Issues on MBP Mid 2015 -- firmware issue?

Thanks for the feedback. Very helpful.

Already had linux-lts-headers installed. I ran:

> sudo pacman -S dkms broadcom-wl-dkms

This removed broadcom-wl automagically.

I removed conflicting modules as it suggested:

> sudo rmmod b43 b43legacy bcm43xx bcma brcm80211 brcmfmac brcmsmac ssb wl

And added it:

> sudo modprobe wl

Curiously, wlp3s0 disappeared from "ip l". I removed broadcom-wl-dkms and restarted and the interface reappeared.

There's nothing in dmsg about firmware, brcm, or wlp3s0. Reinstalled it and I saw wl fail:

[   19.180735] wl: loading out-of-tree module taints kernel.
[   19.180739] wl: module license 'MIXED/Proprietary' taints kernel.
[   19.266226] wl: module verification failed: signature and/or required key missing - tainting kernel
[   19.333124] wl driver 6.30.223.271 (r587334) failed with code 1
[   19.333126] ERROR @wl_cfg80211_detach : 
[   19.333127] NULL ndev->ieee80211ptr, unable to deref wl

This looks like the same issue: https://bbs.archlinux.org/viewtopic.php?id=220734

Tried to install broadcom-wl-lts but ran into errors while building.

> makepkg -si PKGBUILD
/home/zincbot/usrcmp/broadcom-wl-lts/PKGBUILD: line 34: /usr/lib/modules/extramodules-5.4-lts/version: No such file or directory
==> Making package: broadcom-wl-lts 6.30.223.271-2 (Fri May 29 15:42:08 2020)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Found modprobe.d
  -> Found license.patch
  -> Found wl_linux.c.patch
  -> Found hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz
==> Validating source files with sha256sums...
    modprobe.d ... Passed
    license.patch ... Passed
    wl_linux.c.patch ... Passed
==> Validating source_x86_64 files with sha256sums...
    hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz ... Passed
==> Extracting sources...
  -> Extracting hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz with bsdtar
==> Starting prepare()...
patching file src/wl/sys/wl_linux.c
Hunk #1 succeeded at 207 (offset 2 lines).
patching file src/wl/sys/wl_linux.c
==> Removing existing $pkgdir/ directory...
==> Starting build()...
make: *** /usr/lib/modules//build: No such file or directory.  Stop.
==> ERROR: A failure occurred in build().
    Aborting...

Last edited by zincbot (2020-05-29 20:59:33)

Offline

#4 2020-05-29 21:01:27

loqs
Member
Registered: 2014-03-06
Posts: 17,327

Re: Wifi Issues on MBP Mid 2015 -- firmware issue?

https://aur.archlinux.org/packages/broadcom-wl-lts/ has not been updated since 2016-12-16,  it requires the existance of /usr/lib/modules/extramodules-5.4-lts/ which linux-lts does not supply.
It is also missing patches for kernel changes since the driver was produced by broadcom  https://git.archlinux.org/svntogit/comm … om-wl-dkms
Edit:
If you reinstall broadcom-wl-dkms then reboot does it still produce the same error?

Last edited by loqs (2020-05-29 21:40:22)

Offline

#5 2020-05-30 05:00:41

zincbot
Member
Registered: 2020-05-27
Posts: 3

Re: Wifi Issues on MBP Mid 2015 -- firmware issue?

That's unfortunate.

Yep. I get "wl driver 6.30.223.271 (r587334) failed with code 1". I'm guessing the interface isn't initialized because the driver I've added failed. Is there any way to debug a proprietary driver?

Edit: Also, could I download the driver from the upstream and install it myself? If so, I can't find the BRCM43602 driver on the upstream for broadcom-wl.

Last edited by zincbot (2020-05-30 05:16:53)

Offline

Board footer

Powered by FluxBB