4.7 KiB
4.7 KiB
Compilation et Déploiement de QualcommWireless
Ce guide détaille les étapes pour compiler le kext QualcommWireless à partir des sources et l'intégrer proprement dans l'EFI OpenCore.
1. Prérequis Système
- Système d'exploitation hôte : macOS Sonoma (14.x) ou macOS Sequoia (15.x).
- Environnement de développement : Xcode 15+ ou 16+ avec les outils en ligne de commande (
xcode-select --install). - SDK macOS : macOS 15.x SDK (inclus dans Xcode).
- Architectures cibles : Binaire universel
x86_64(Hackintosh Intel/AMD) etarm64e(Apple Silicon).
2. Arborescence du Projet
QualcommWireless/
├── .gitignore # Filtres pour conserver un dépôt git propre
├── docs/ # Documentation technique détaillée
│ ├── ARCHITECTURE.md # Vue d'ensemble matérielle & logicielle
│ ├── BLUETOOTH.md # Analyse Bluetooth, diagnostic crash & fix
│ ├── NATIVE_WIFI.md # Pile Wi-Fi native (IO80211Controller)
│ └── BUILD.md # Ce guide de compilation et d'installation
├── firmware/ # Binaires de microprogrammes WCN7850
│ ├── amss.bin # Microprogramme principal Wi-Fi
│ ├── board-2.bin # Données de calibration radio RF
│ └── m3.bin # Microprogramme d'économie d'énergie M3
├── QualcommWireless/ # Code source du pilote C++ / IOKit
│ ├── Info.plist # Descripteur et personnalités IOKit
│ ├── Firmware_WCN7850.h # Header des microprogrammes BT intégrés
│ ├── Firmware_WCN7850_Wifi.h # Déclarations des microprogrammes Wi-Fi
│ ├── QualcommWifi.hpp/.cpp # Implémentation du pilote Wi-Fi natif
│ ├── QualcommWireless.hpp/.cpp # Implémentation de la partie Bluetooth USB
│ └── include/ # Headers internes IOKit & 802.11
└── QualcommWireless.xcodeproj # Projet Xcode configuré pour build KEXT
3. Compilation
3.1. En Ligne de Commande (Recommandé)
Depuis la racine du projet :
xcodebuild -project QualcommWireless.xcodeproj -configuration Release
Le bundle kext final est généré dans :
build/Release/QualcommWireless.kext
3.2. Vérification du Binaire
Pour s'assurer que le kext est bien un binaire universel prêt pour le chargement noyau :
file build/Release/QualcommWireless.kext/Contents/MacOS/QualcommWireless
Sortie attendue :
Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit kext bundle x86_64] [arm64e]
4. Déploiement dans OpenCore
4.1. Copie du Kext dans l'EFI
Montez votre partition EFI (ex. /Volumes/EFI), puis copiez le kext compilé :
cp -R build/Release/QualcommWireless.kext /Volumes/EFI/EFI/OC/Kexts/
4.2. Configuration dans config.plist
Dans la section Kernel -> Add de votre config.plist :
<dict>
<key>Arch</key>
<string>Any</string>
<key>BundlePath</key>
<string>QualcommWireless.kext</string>
<key>Comment</key>
<string>Qualcomm FastConnect 7800 Wi-Fi & Bluetooth</string>
<key>Enabled</key>
<true/>
<key>ExecutablePath</key>
<string>Contents/MacOS/QualcommWireless</string>
<key>MaxKernel</key>
<string></string>
<key>MinKernel</key>
<string></string>
<key>PlistPath</key>
<string>Contents/Info.plist</string>
</dict>
Caution
RÈGLE CRITIQUE POUR ÉVITER LES CRASHS :
- DÉSACTIVEZ ET SUPPRIMEZ
IntelBTPatcher.kext. Il est conçu uniquement pour les puces Intel et provoque un Kernel Panic immédiat à la connexion des périphériques Bluetooth sous macOS 15 Sequoia (IOBluetoothL2CAPChanneltaggedRelease registry corruption).- CONSERVEZ
BlueToolFixup.kext, qui est indispensable pour activer la gestion des dongles tiers dansbluetoothd.
4.3. Arguments de Démarrage (NVRAM -> boot-args)
Vérifiez la présence des arguments suivants pour assurer la compatibilité Bluetooth :
-btlfxallowanyaddr -btlfxnvramcheck
5. Diagnostic et Commandes Utiles
Pour vérifier l'état du système après un redémarrage :
- Vérifier l'état du Bluetooth :
system_profiler SPBluetoothDataType - Vérifier la détection USB du contrôleur :
ioreg -l -r -n "IOUSBHostDevice@00a10000" - Consulter les journaux Bluetooth en temps réel :
/usr/bin/log stream --predicate 'process == "bluetoothd"' - Vérifier les extensions noyau chargées :
kmutil showloaded | grep -iE 'qualcomm|blue'