Skip to content

costaindustries-source/bcm4360-apple

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bcm4360-apple — Custom Wi-Fi Driver for BCM4360 on Debian 13

Progetto driver Wi-Fi personalizzato per Broadcom BCM4360 (rev 03) con subsystem Apple 0x106b:0x0117 (MacBook Air Early 2015 — MacBookAir7,2) su Debian 13 Trixie, kernel 6.12.x+deb13-amd64.


Il problema

Il chip BCM4360 è supportato esclusivamente dal driver proprietario wl (pacchetto broadcom-sta-dkms). Non esistono alternative open-source (brcmfmac/brcmsmac/b43 non supportano questo chip).

Il driver wl è un binary blob del 2013 con un thin C-wrapper.
Broadcom non lo aggiorna più. Su Apple hardware il driver presenta:

Sintomo Causa radice
Disconnessioni frequenti set_power_mgmt() ignorato; il driver torna a PM_FAST automaticamente
Velocità bassa / throughput scarso Power throttling, parametri NVRAM Apple non ottimizzati
Rotto dopo sleep/wake PM settings azzerati all'uscita dal suspend, mai re-applicati
Errori con NetworkManager scan-rand Bug nel MAC address setting (già fixato nel patch 20 Debian)

Soluzione

Questo progetto crea bcm4360-apple, un modulo DKMS che:

  1. Parte dal sorgente broadcom-sta-dkms 6.30.223.271 (37 patch Debian già incluse)
  2. Applica patch Apple-specifiche in cima:
    • apple-001 — forza sempre PM_FORCE_OFF a livello cfg80211
    • apple-002 — applica PM_FORCE_OFF durante l'init dell'interfaccia
    • apple-003 — re-applica PM_FORCE_OFF dopo ogni resume da suspend
    • apple-004 — fix TX power qdBm per hardware Apple
    • apple-005 — soglie di roaming ridotte (evita "sticky AP")
  3. Installa configurazioni di sistema (udev, systemd, NetworkManager, modprobe)
  4. Si auto-aggiorna via DKMS ad ogni aggiornamento kernel

Struttura del progetto

prj-driver-wifi/
├── README.md               ← questo file
├── Makefile                ← orchestratore build (fetch→patch→dkms→install)
├── dkms.conf.in            ← template dkms.conf
├── patches/
│   ├── series              ← lista ordinata delle patch Apple
│   ├── apple-001-pm-force-off-always.patch
│   ├── apple-002-init-pm-off.patch
│   ├── apple-003-wake-pm-reinit.patch
│   ├── apple-004-tx-power-correction.patch
│   └── apple-005-roaming-threshold.patch
├── system/
│   ├── install.sh          ← installa configs di sistema
│   ├── uninstall.sh        ← rollback completo
│   ├── modprobe.d/         ← blacklist conflicting modules + options
│   ├── udev/               ← trigger PM off su interface-up
│   ├── systemd/            ← service PM re-apply post-resume
│   ├── networkmanager/     ← disable NM powersave, scan-rand fix
│   └── scripts/            ← helper scripts
└── docs/
    ├── ANALYSIS.md         ← template raccolta dati sistema
    ├── INSTALL.md          ← guida installazione step-by-step
    ├── PATCHES.md          ← documentazione tecnica di ogni patch
    └── TESTING.md          ← procedura di test e validazione

Quick Start

# 1. Clona il repo (o usa il workspace esistente)
cd /home/matteo/Dev/prj-driver-wifi

# 2. Installa dipendenze
sudo apt-get install -y dkms broadcom-sta-dkms build-essential linux-headers-$(uname -r)

# 3. Build e install completo
sudo make install

# 4. Ricarica il modulo
sudo modprobe -r wl && sudo modprobe wl

# 5. Verifica
make test

Per una installazione manuale passo-passo, vedi docs/INSTALL.md.


Requisiti

Componente Versione testata
OS Debian 13 Trixie
Kernel 6.12.63+deb13-amd64
broadcom-sta-dkms 6.30.223.271-26
DKMS ≥ 2.1.0
GCC ≥ 12

Rollback

sudo make uninstall
sudo apt-get install --reinstall broadcom-sta-dkms
sudo modprobe wl

Note su limitazioni note

  • WPA3 non supportato — il binary blob è troppo datato; usare WPA2
  • IBT warnings — su CPU Intel Broadwell (MacBook Air 2015) non presenti; su CPU post-2020 potrebbero richiedere ibt=off nel kernel cmdline GRUB
  • Windows-only chips — NDISwrapper non è un'opzione praticabile su kernel 6.x
  • brcmfmac/brcmsmac — non supportano BCM4360; esclusivamente wl

About

Custom DKMS driver patches for Broadcom BCM4360 on Apple hardware (MacBook Air 2015) — Debian 13, kernel 6.12

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors