You are not logged in.
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
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
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
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
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