From 54b7f45754ac0120f9967af8a758449f6552c19f Mon Sep 17 00:00:00 2001 From: Hyperling Date: Wed, 19 Nov 2025 19:21:32 -0700 Subject: [PATCH] Large set of edits for Apple WiFi article. --- .../tech/apple-debian-wireless-issues.md | 488 +++--------------- 1 file changed, 82 insertions(+), 406 deletions(-) diff --git a/content/posts/tech/apple-debian-wireless-issues.md b/content/posts/tech/apple-debian-wireless-issues.md index 8080e77..249b926 100644 --- a/content/posts/tech/apple-debian-wireless-issues.md +++ b/content/posts/tech/apple-debian-wireless-issues.md @@ -1,4 +1,5 @@ --- +draft: true title: "Apple Wireless Card Issues on Debian Trixie" subtitle: "" author: Hyperling @@ -27,12 +28,11 @@ series: categories: - guides aliases: -draft: true --- ## Disclaimer -This article assumes that your laptop has had the wireless card working on Debian recently. +This article assumes that your system has had the wireless card working on Debian recently. I have a Macbook Air 7,2 (early 2015, i5) with a BCM4360 [14e4:43a0] and use the `wl` driver. @@ -43,9 +43,9 @@ broadcom-sta-dkms/stable,now 6.30.223.271-26 amd64 [installed] broadcom-sta-source/stable 6.30.223.271-26 amd64 ``` -I do not have experience with other Macbooks, the Debian wiki and forums are your best bet if this article does not apply to you. +I do not have experience with other Mac devices, the Debian wiki and forums are your best bet if this article does not apply to you. -{{< external-link "Debian Wiki: Macbooks" "url tbd" >}} +{{< external-link "Debian Wiki: Macbook Wireless" "https://wiki.debian.org/MacBook/Wireless" >}} ## Introduction -- Define the Problem @@ -71,7 +71,7 @@ Ubuntu provides the packages `linux-image-generic` and `linux headers-generic`. sudo apt install linux-image-amd64 linux-headers-amd64 --reinstall ``` -Some sources say that Debian has no generic/meta package for the kernel and its headers. I can't find any information as to the release date of these to confirm/deny that claim. +Some sources say that Debian has no generic/meta package for the kernel and its headers. I can't find any information as to the release date of these to confirm/deny that claim. I'm just glad they work to now keep the headers installed automatically! @@ -81,254 +81,70 @@ If you're still having problems then it may be something else. Some good troubleshooting commands are below, as well as examples of when I was running them trying to troubleshoot my system. -``` -tbd change this to an unordered list with `` on each command. -uname -a -lspci -vnn | grep -i net -/sbin/iwconfig -lsmod -modprobe -apt list -``` +- `uname -a` +- `lspci -vnn | grep -i net` +- `/sbin/iwconfig` +- `lsmod` +- `modprobe` +- `apt list` -### Missing Kernel Headers Example - -tbd make these individual code blocks. +### Example -- Missing Kernel Headers (6.12.57) ``` [user@hostname ~]$ uname -a Linux debian 6.12.57+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.57-1 (2025-11-05) x86_64 GNU/Linux [user@hostname ~]$ - +``` --- - +``` [user@hostname ~]$ lspci -vnn | grep -i net 03:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM4360 802.11ac Dual Band Wireless Network Adapter [14e4:43a0] (rev 03) [user@hostname ~]$ - +``` --- - +``` [user@hostname ~]$ /sbin/iwconfig lo no wireless extensions. docker0 no wireless extensions. [user@hostname ~]$ - +``` --- - -[user@hostname ~]$ lsmod | sort -ac 16384 0 -acpi_als 16384 1 -aesni_intel 122880 0 -ahci 49152 3 -apple_mfi_fastcharge 16384 0 -applesmc 32768 0 -applespi 53248 0 -async_memcpy 16384 2 raid456,async_raid6_recov -async_pq 16384 2 raid456,async_raid6_recov -async_raid6_recov 20480 1 raid456 -async_tx 16384 5 async_pq,async_memcpy,async_xor,raid456,async_raid6_recov -async_xor 16384 3 async_pq,raid456,async_raid6_recov -autofs4 57344 2 -bcm5974 28672 0 -binfmt_misc 28672 1 -blake2b_generic 24576 0 -bluetooth 1085440 6 btrtl,btmtk,btintel,btbcm,btusb -bridge 389120 0 -btbcm 24576 1 btusb -btintel 69632 1 btusb -btmtk 32768 1 btusb -btrfs 2158592 0 -btrtl 32768 1 btusb -btusb 81920 0 -button 24576 0 -cec 69632 2 drm_display_helper,i915 -configfs 69632 1 -coretemp 16384 0 -crc16 12288 3 bluetooth,ext4,applespi -crc32c_generic 12288 0 -crc32c_intel 16384 5 -crc32_pclmul 12288 0 -crct10dif_pclmul 12288 1 -cryptd 28672 2 crypto_simd,ghash_clmulni_intel -crypto_simd 16384 1 aesni_intel -drm 774144 15 drm_kms_helper,drm_display_helper,drm_buddy,i915,ttm -drm_buddy 24576 1 i915 -drm_display_helper 274432 1 i915 -drm_kms_helper 253952 2 drm_display_helper,i915 -dw_dmac 12288 0 -dw_dmac_core 40960 2 dw_dmac_pci,dw_dmac -dw_dmac_pci 12288 2 -ecdh_generic 16384 1 bluetooth -efi_pstore 12288 0 -efivarfs 28672 1 -evdev 28672 24 -ext4 1142784 2 -fat 102400 1 vfat -gf128mul 16384 1 aesni_intel -ghash_clmulni_intel 16384 0 -hid 262144 3 usbhid,hid_apple,hid_generic -hid_apple 28672 0 -hid_generic 12288 0 -i2c_algo_bit 16384 1 i915 -i2c_i801 36864 0 -i2c_smbus 16384 1 i2c_i801 -i915 4382720 21 -industrialio 139264 3 industrialio_triggered_buffer,acpi_als,kfifo_buf -industrialio_triggered_buffer 12288 1 acpi_als -intel_cstate 20480 0 -intel_pch_thermal 16384 0 -intel_pmc_bxt 16384 1 iTCO_wdt -intel_powerclamp 16384 0 -intel_rapl_common 53248 1 intel_rapl_msr -intel_rapl_msr 20480 0 -intel_uncore 258048 0 -ip_set 69632 1 xt_set -ip_tables 28672 0 -irqbypass 12288 1 kvm -iTCO_vendor_support 12288 1 iTCO_wdt -iTCO_wdt 16384 0 -jbd2 200704 1 ext4 -joydev 24576 0 -kfifo_buf 12288 1 industrialio_triggered_buffer -kvm 1396736 1 kvm_intel -kvm_intel 413696 0 -libahci 61440 1 ahci -libata 462848 2 libahci,ahci -libcrc32c 12288 5 nf_conntrack,nf_nat,btrfs,nf_tables,raid456 -llc 16384 2 bridge,stp -lp 20480 0 -lpc_ich 28672 0 -mbcache 16384 1 ext4 -md_mod 229376 4 raid1,raid10,raid0,raid456 -mei 188416 5 mei_hdcp,mei_pxp,mei_me -mei_hdcp 28672 0 -mei_me 57344 2 -mei_pxp 16384 0 -Module Size Used by -msr 12288 0 -nf_conntrack 204800 5 xt_conntrack,nf_nat,nft_ct,nft_masq,xt_MASQUERADE -nf_defrag_ipv4 12288 1 nf_conntrack -nf_defrag_ipv6 24576 1 nf_conntrack -nf_nat 65536 3 nft_masq,nft_chain_nat,xt_MASQUERADE -nfnetlink 20480 5 nft_compat,nf_tables,ip_set -nf_reject_ipv4 16384 1 nft_reject_inet -nf_reject_ipv6 20480 1 nft_reject_inet -nf_tables 380928 681 nft_ct,nft_compat,nft_reject_inet,nft_masq,nft_chain_nat,nft_reject -nft_chain_nat 12288 6 -nft_compat 20480 6 -nft_ct 28672 6 -nft_masq 12288 1 -nft_reject 12288 1 nft_reject_inet -nft_reject_inet 12288 6 -nls_ascii 12288 1 -nls_cp437 16384 1 -overlay 217088 0 -parport 81920 3 parport_pc,lp,ppdev -parport_pc 40960 0 -pcspkr 12288 0 -ppdev 24576 0 -qrtr 57344 2 -raid0 28672 0 -raid10 77824 0 -raid1 61440 0 -raid456 200704 0 -raid6_pq 122880 4 async_pq,btrfs,raid456,async_raid6_recov -rapl 20480 0 -rc_core 73728 1 cec -rfkill 40960 4 bluetooth -sbs 20480 0 -sbshc 16384 1 sbs -scsi_common 16384 6 scsi_mod,sd_mod,usb_storage,uas,libata,sg -scsi_mod 327680 5 sd_mod,usb_storage,uas,libata,sg -sd_mod 81920 3 -sg 45056 0 -sha1_ssse3 32768 0 -sha256_ssse3 32768 0 -sha512_ssse3 53248 0 -snd 151552 15 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_timer,snd_pcm -snd_hda_codec 217088 4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_cirrus -snd_hda_codec_cirrus 24576 1 -snd_hda_codec_generic 114688 1 snd_hda_codec_cirrus -snd_hda_codec_hdmi 98304 1 -snd_hda_core 143360 5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_cirrus -snd_hda_intel 61440 2 -snd_hrtimer 12288 1 -snd_hwdep 20480 1 snd_hda_codec -snd_intel_dspcfg 40960 1 snd_hda_intel -snd_intel_sdw_acpi 16384 1 snd_intel_dspcfg -snd_pcm 188416 4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core -snd_seq 110592 7 snd_seq_dummy -snd_seq_device 16384 1 snd_seq -snd_seq_dummy 12288 0 -snd_timer 53248 3 snd_seq,snd_hrtimer,snd_pcm -soundcore 16384 1 snd -spi_pxa2xx_core 32768 2 spi_pxa2xx_pci,spi_pxa2xx_platform -spi_pxa2xx_pci 16384 0 -spi_pxa2xx_platform 12288 0 -stp 12288 1 bridge -sunrpc 872448 1 -thunderbolt 540672 0 -ttm 106496 1 i915 -uas 32768 0 -usb_common 16384 2 xhci_hcd,usbcore -usbcore 409600 9 xhci_hcd,usbhid,btmtk,bcm5974,apple_mfi_fastcharge,usb_storage,btusb,xhci_pci,uas -usbhid 77824 0 -usb_storage 94208 1 uas -vfat 24576 1 -video 81920 1 i915 -watchdog 49152 1 iTCO_wdt -wmi 28672 1 video -x86_pkg_temp_thermal 16384 0 -xfrm_algo 16384 1 xfrm_user -xfrm_user 69632 1 -xhci_hcd 364544 1 xhci_pci -xhci_pci 24576 0 -xor 20480 2 async_xor,btrfs -x_tables 53248 6 xt_conntrack,nft_compat,xt_addrtype,xt_set,ip_tables,xt_MASQUERADE -xt_addrtype 12288 4 -xt_conntrack 12288 1 -xt_MASQUERADE 16384 1 -xt_set 20480 0 +``` +[user@hostname ~]$ lsmod | grep wl [user@hostname ~]$ - +``` --- - +``` [user@hostname ~]$ sudo modprobe wl modprobe: FATAL: Module wl not found in directory /lib/modules/6.12.57+deb13-amd64 [user@hostname ~]$ - +``` --- - +``` [user@hostname ~]$ sudo apt list broadcom* broadcom-sta-common/stable 6.30.223.271-26 amd64 broadcom-sta-dkms/stable,now 6.30.223.271-26 amd64 [installed] broadcom-sta-source/stable 6.30.223.271-26 amd64 [user@hostname ~]$ - ---- ``` -### Working Example - -tbd make these individual code blocks. +### Example -- Wireless Working Correctly (6.12.41) ``` ---- - [user@hostname ~]$ uname -a Linux debian 6.12.41+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.41-1 (2025-08-12) x86_64 GNU/Linux [user@hostname ~]$ - +``` --- - +``` [user@hostname ~]$ lspci -vnn | grep -i net 03:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM4360 802.11ac Dual Band Wireless Network Adapter [14e4:43a0] (rev 03) [user@hostname ~]$ - +``` --- - +``` [user@hostname ~]$ /sbin/iwconfig lo no wireless extensions. @@ -342,199 +158,59 @@ wg0-vpn no wireless extensions. docker0 no wireless extensions. [user@hostname ~]$ - ---- - -[user@hostname ~]$ lsmod | sort -ac 16384 0 -acpi_als 16384 1 -aesni_intel 122880 0 -ahci 49152 3 -apple_mfi_fastcharge 16384 0 -applesmc 32768 0 -applespi 53248 0 -async_memcpy 16384 2 raid456,async_raid6_recov -async_pq 16384 2 raid456,async_raid6_recov -async_raid6_recov 20480 1 raid456 -async_tx 16384 5 async_pq,async_memcpy,async_xor,raid456,async_raid6_recov -async_xor 16384 3 async_pq,raid456,async_raid6_recov -autofs4 57344 2 -bcm5974 28672 0 -binfmt_misc 28672 1 -blake2b_generic 24576 0 -bluetooth 1081344 6 btrtl,btmtk,btintel,btbcm,btusb -bridge 389120 0 -btbcm 24576 1 btusb -btintel 69632 1 btusb -btmtk 32768 1 btusb -btrfs 2150400 0 -btrtl 32768 1 btusb -btusb 81920 0 -button 24576 0 -cec 69632 2 drm_display_helper,i915 -cfg80211 1392640 1 wl -chacha_x86_64 28672 1 libchacha20poly1305 -configfs 69632 1 -coretemp 16384 0 -crc16 12288 3 bluetooth,ext4,applespi -crc32c_generic 12288 0 -crc32c_intel 16384 5 -crc32_pclmul 12288 0 -crct10dif_pclmul 12288 1 -cryptd 28672 2 crypto_simd,ghash_clmulni_intel -crypto_simd 16384 1 aesni_intel -curve25519_x86_64 36864 1 wireguard -drm 774144 15 drm_kms_helper,drm_display_helper,drm_buddy,i915,ttm -drm_buddy 24576 1 i915 -drm_display_helper 274432 1 i915 -drm_kms_helper 253952 2 drm_display_helper,i915 -dw_dmac 12288 0 -dw_dmac_core 40960 2 dw_dmac_pci,dw_dmac -dw_dmac_pci 12288 0 -efi_pstore 12288 0 -efivarfs 28672 1 -evdev 28672 24 -ext4 1142784 2 -fat 102400 1 vfat -gf128mul 16384 1 aesni_intel -ghash_clmulni_intel 16384 0 -hid 262144 3 usbhid,hid_apple,hid_generic -hid_apple 28672 0 -hid_generic 12288 0 -i2c_algo_bit 16384 1 i915 -i2c_i801 36864 0 -i2c_smbus 16384 1 i2c_i801 -i915 4386816 22 -industrialio 139264 3 industrialio_triggered_buffer,acpi_als,kfifo_buf -industrialio_triggered_buffer 12288 1 acpi_als -intel_cstate 20480 0 -intel_pch_thermal 16384 0 -intel_pmc_bxt 16384 1 iTCO_wdt -intel_powerclamp 16384 0 -intel_rapl_common 53248 1 intel_rapl_msr -intel_rapl_msr 20480 0 -intel_uncore 258048 0 -ip6_udp_tunnel 16384 1 wireguard -ip_set 69632 1 xt_set -ip_tables 28672 0 -irqbypass 12288 1 kvm -iTCO_vendor_support 12288 1 iTCO_wdt -iTCO_wdt 16384 0 -jbd2 200704 1 ext4 -joydev 24576 0 -kfifo_buf 12288 1 industrialio_triggered_buffer -kvm 1396736 1 kvm_intel -kvm_intel 413696 0 -libahci 61440 1 ahci -libata 462848 2 libahci,ahci -libchacha 12288 1 chacha_x86_64 -libchacha20poly1305 16384 1 wireguard -libcrc32c 12288 5 nf_conntrack,nf_nat,btrfs,nf_tables,raid456 -libcurve25519_generic 45056 2 curve25519_x86_64,wireguard -llc 16384 2 bridge,stp -lp 20480 0 -lpc_ich 28672 0 -mbcache 16384 1 ext4 -md_mod 229376 4 raid1,raid10,raid0,raid456 -mei 188416 5 mei_hdcp,mei_pxp,mei_me -mei_hdcp 28672 0 -mei_me 57344 2 -mei_pxp 16384 0 -Module Size Used by -msr 12288 0 -nf_conntrack 204800 5 xt_conntrack,nf_nat,nft_ct,nft_masq,xt_MASQUERADE -nf_defrag_ipv4 12288 1 nf_conntrack -nf_defrag_ipv6 24576 1 nf_conntrack -nf_nat 65536 3 nft_masq,nft_chain_nat,xt_MASQUERADE -nfnetlink 20480 5 nft_compat,nf_tables,ip_set -nf_reject_ipv4 16384 1 nft_reject_inet -nf_reject_ipv6 20480 1 nft_reject_inet -nf_tables 380928 783 nft_ct,nft_compat,nft_reject_inet,nft_masq,nft_chain_nat,nft_reject -nft_chain_nat 12288 6 -nft_compat 20480 6 -nft_ct 28672 9 -nft_masq 12288 1 -nft_reject 12288 1 nft_reject_inet -nft_reject_inet 12288 6 -nls_ascii 12288 1 -nls_cp437 16384 1 -overlay 217088 0 -parport 81920 3 parport_pc,lp,ppdev -parport_pc 40960 0 -pcspkr 12288 0 -poly1305_x86_64 28672 1 libchacha20poly1305 -ppdev 24576 0 -qrtr 57344 2 -raid0 28672 0 -raid10 77824 0 -raid1 61440 0 -raid456 200704 0 -raid6_pq 122880 4 async_pq,btrfs,raid456,async_raid6_recov -rapl 20480 0 -rc_core 73728 1 cec -rfkill 40960 6 bluetooth,cfg80211 -sbs 20480 0 -sbshc 16384 1 sbs -scsi_common 16384 6 scsi_mod,sd_mod,usb_storage,uas,libata,sg -scsi_mod 327680 5 sd_mod,usb_storage,uas,libata,sg -sd_mod 81920 3 -sg 45056 0 -sha1_ssse3 32768 0 -sha256_ssse3 32768 0 -sha512_ssse3 53248 0 -snd 151552 15 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_timer,snd_pcm -snd_hda_codec 217088 4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_cirrus -snd_hda_codec_cirrus 24576 1 -snd_hda_codec_generic 114688 1 snd_hda_codec_cirrus -snd_hda_codec_hdmi 98304 1 -snd_hda_core 143360 5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_cirrus -snd_hda_intel 61440 2 -snd_hrtimer 12288 1 -snd_hwdep 20480 1 snd_hda_codec -snd_intel_dspcfg 40960 1 snd_hda_intel -snd_intel_sdw_acpi 16384 1 snd_intel_dspcfg -snd_pcm 188416 4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core -snd_seq 110592 7 snd_seq_dummy -snd_seq_device 16384 1 snd_seq -snd_seq_dummy 12288 0 -snd_timer 53248 3 snd_seq,snd_hrtimer,snd_pcm -soundcore 16384 1 snd -spi_pxa2xx_core 32768 2 spi_pxa2xx_pci,spi_pxa2xx_platform -spi_pxa2xx_pci 16384 0 -spi_pxa2xx_platform 12288 0 -stp 12288 1 bridge -sunrpc 872448 1 -thunderbolt 540672 0 -ttm 106496 1 i915 -uas 32768 0 -udp_tunnel 32768 1 wireguard -usb_common 16384 2 xhci_hcd,usbcore -usbcore 409600 9 xhci_hcd,usbhid,btmtk,bcm5974,apple_mfi_fastcharge,usb_storage,btusb,xhci_pci,uas -usbhid 77824 0 -usb_storage 94208 1 uas -vfat 24576 1 -video 81920 1 i915 -watchdog 49152 1 iTCO_wdt -wireguard 118784 0 -wl 6459392 0 -wmi 28672 1 video -x86_pkg_temp_thermal 16384 0 -xfrm_algo 16384 1 xfrm_user -xfrm_user 69632 1 -xhci_hcd 364544 1 xhci_pci -xhci_pci 24576 0 -xor 20480 2 async_xor,btrfs -x_tables 53248 6 xt_conntrack,nft_compat,xt_addrtype,xt_set,ip_tables,xt_MASQUERADE -xt_addrtype 12288 4 -xt_conntrack 12288 1 -xt_MASQUERADE 16384 1 -xt_set 20480 0 -[user@hostname ~]$ - ---- - -[user@hostname ~]$ sudo modprobe wl -[user@hostname ~]$ - +``` --- ``` +[user@hostname ~]$ lsmod | grep wl | sort +cfg80211 1392640 1 wl +wl 6459392 0 +[user@hostname ~]$ +``` +--- +``` +[user@hostname ~]$ sudo modprobe wl +[user@hostname ~]$ +``` + + +### Example -- Wireless Working Correctly (6.12.57) + +``` +[user@hostname ~]$ uname -a +Linux debian 6.12.57+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.57-1 (2025-11-05) x86_64 GNU/Linux +[user@hostname ~]$ +``` +--- +``` +[user@hostname ~]$ lspci -vnn | grep -i net +03:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM4360 802.11ac Dual Band Wireless Network Adapter [14e4:43a0] (rev 03) +[user@hostname ~]$ +``` +--- +``` +[user@hostname ~]$ /sbin/iwconfig +lo no wireless extensions. + +wlp3s0 IEEE 802.11 ESSID:"Private :)" + Mode:Managed Frequency:2.412 GHz Access Point: na:na:na:na:na:na + Retry short limit:7 RTS thr:off Fragment thr:off + Power Management:off + +wg0-vpn no wireless extensions. + +docker0 no wireless extensions. + +[user@hostname ~]$ +``` +--- +``` +[user@hostname ~]$ lsmod | grep wl | sort +cfg80211 1392640 1 wl +wl 6459392 0 +[user@hostname ~]$ +``` +--- +``` +[user@hostname ~]$ sudo modprobe wl +[user@hostname ~]$ +```