Files
hugo-recipes/content/posts/tech/apple-debian-wireless-issues.md

217 lines
6.0 KiB
Markdown

---
draft: true
title: "Apple Wireless Card Issues on Debian Trixie"
subtitle: ""
author: Hyperling
date: "2025-11-19T13:00:00-07:00"
toc: true
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 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.
```
$ 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
```
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: Macbook Wireless" "https://wiki.debian.org/MacBook/Wireless" >}}
## Introduction -- Define the Problem
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 went through a few kernel updates since then without issues.
Later versions such as `6.12.48` and `6.12.57` continued to get pulled and I'd try them before having to reboot back to `6.12.41`. While booten into the newer kernel versions `/sbin/iwconfig` would show no wireless network and GNOME didn't have a Wi-Fi button listed in the Settings app nor its system menu. Then I tried this:
```
$ sudo modprobe wl
modprobe: FATAL: Module wl not found in directory /lib/modules/6.12.57+deb13-amd64
$
```
After realizing that the wl module wasn't being loaded I thought maybe there was a packaging issue. I was confused since it said it was not found, even though I knew it was installed since it was still working if I booted to the older installed kernel versions. I saw no error when the new versions were being installed, 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 to now keep the headers installed automatically!
## Still Not Working?
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.
- `uname -a`
- `lspci -vnn | grep -i net`
- `/sbin/iwconfig`
- `lsmod`
- `modprobe`
- `apt list`
### 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 | 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 ~]$
```
### 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.
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 ~]$
```
### 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 ~]$
```