# 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 Tahoe (26.x / Darwin 25), macOS Sequoia (15.x / Darwin 24) ou macOS Sonoma (14.x). - **Environnement de développement** : Xcode 26+ (ex. Xcode 26.6) ou Xcode 16+ avec les outils en ligne de commande (`xcode-select --install`). - **SDK macOS** : macOS 26.x SDK (ex. `MacOSX26.5.sdk`, inclus dans Xcode 26.6). - **Architectures cibles** : Binaire universel `x86_64` (Hackintosh Intel/AMD) et `arm64e` (Apple Silicon). --- ## 2. Arborescence du Projet ```text 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 ├── QualcommWifi/ # Code source du pilote Wi-Fi 7 natif (IO80211Controller) │ ├── Firmware_WCN7850_Wifi.h/.cpp# Microprogrammes Wi-Fi intégrés │ └── QualcommWifi.hpp/.cpp # Implémentation IO80211Controller (Tahoe Skywalk & Legacy) ├── QualcommWireless/ # Code source du pilote Bluetooth USB (IOService) │ ├── Info.plist # Descripteur et personnalités IOKit (v1.1.0) │ ├── Firmware_WCN7850.h # Header des microprogrammes BT intégrés │ ├── QualcommWireless.hpp/.cpp # Implémentation DFU Bluetooth & Shadow VTable │ └── 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 : ```bash 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 : ```bash file build/Release/QualcommWireless.kext/Contents/MacOS/QualcommWireless ``` Sortie attendue : ```text 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é : ```bash 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` : ```xml Arch Any BundlePath QualcommWireless.kext Comment Qualcomm FastConnect 7800 Wi-Fi & Bluetooth Enabled ExecutablePath Contents/MacOS/QualcommWireless MaxKernel MinKernel PlistPath Contents/Info.plist ``` > [!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 (`IOBluetoothL2CAPChannel` taggedRelease registry corruption). > - **CONSERVEZ `BlueToolFixup.kext`**, qui est indispensable pour activer la gestion des dongles tiers dans `bluetoothd`. ### 4.3. Arguments de Démarrage (`NVRAM -> boot-args`) Vérifiez la présence des arguments suivants pour assurer la compatibilité Bluetooth : ```text -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** : ```bash system_profiler SPBluetoothDataType ``` - **Vérifier la détection USB du contrôleur** : ```bash ioreg -l -r -n "IOUSBHostDevice@00a10000" ``` - **Consulter les journaux Bluetooth en temps réel** : ```bash /usr/bin/log stream --predicate 'process == "bluetoothd"' ``` - **Vérifier les extensions noyau chargées** : ```bash kmutil showloaded | grep -iE 'qualcomm|blue' ```