diff --git a/content/posts/tech/apple-debian-wireless-issues.md b/content/posts/tech/apple-debian-wireless-issues.md new file mode 100644 index 0000000..9dac2c3 --- /dev/null +++ b/content/posts/tech/apple-debian-wireless-issues.md @@ -0,0 +1,528 @@ +--- +title: "Apple Wireless Card issues on Debian Trixie (13)" +subtitle: "" +author: Hyperling +date: "2025-11-19T13:00:00-07:00" +tags: + - tech + - networking + - linux + - wireless + - apple + - macbook air + - kernel + - broadcom + - bcm4360 + - wl + - dkms + - wireless-tools + - iwconfig + - uname + - modprobe + - lsmod + - lspci +series: + - sysadmin +categories: + - guides +aliases: +--- + +## Disclaimer + +This article assumes that your laptop has recently had the wireless card working on Debian recently. I have a Macbook Air (7,2? ~2015) with a BCM4360 [14e4:43a0] and use the `wl` driver. + +``` +$ 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 + +``` + +## Introduction + +If your wireless card is no longer being recognized on a Debian device, ensure the latest version of the Linux kernal came with its headers. + +I'm not sure why this happened, but it was when the kernel version jumped from `6.12.41` to `6.12.43` that its symptoms showed up. I had already migrated from Bookworm to Trixie and thought I had already went through a few kernel updates since then without issues. + +Later versions such as `6.12.48` and `6.12.58` continued to get pulled and I'd try them before rebooting to `6.12.41`. With the newer versions `/sbin/iwconfig` showed no wireless network and GNOME didn't even have a Wi-Fi listing in the Settings app top top menu. + +``` +$ sudo modprobe wl +modprobe: FATAL: Module wl not found in directory /lib/modules/6.12.57+deb13-amd64 +$ +``` + +I then realized that the wl module wasn't being loaded. What was confusing was that it said it was not foud, even though I knew it was installed since it was working on other kernel versions. I saw no error when the new versions were being instaleld, either. And thus began my discovery... + +## Solution -- Install Headers Automagically + +Ubuntu provides the packages `linux-image-generic` and `linux headers-generic`. Debian names them slightly different. + +``` +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. I'm just glad they work! + +## Still Not Working? + +If you're still having problems then it may be something else. + +### Commands to try + +Some good troubleshooting commands are below, as well as examples of when I was running them trying to troubleshoot my system. + +``` +uname -a +lspci -vnn | grep -i net +/sbin/iwconfig +lsmod +modprobe +apt list +``` + +#### Broken Kernel Example + +``` +[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 ~]$ + +--- + +[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 Kernel Example + +``` +--- + +[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. + +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 | 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 ~]$ + +--- +```