This document describes the kernel module parameters used to optimize Bluetooth functionality on Apple devices.
The file config/modprobe.d/bluetooth-apple.conf contains carefully tuned parameters for Apple Bluetooth hardware. These parameters address various issues discovered during our technical investigation documented in docs/technical/technical-findings.md.
options bluetooth disable_ertm=1 disable_esco=0
disable_ertm=1- Disable Enhanced Re-Transmission Mode, which can cause connection issues with Apple devices due to timing constraintsdisable_esco=0- Enable Enhanced SCO for better audio quality with Apple audio devices
options btusb reset=1 external_amp=0 esco=1
reset=1- Forces a hardware reset during module initialization, addressing the BCM reset failures common on Apple hardwareexternal_amp=0- Disables external amplifier support which is not used in Apple devices and can cause conflictsesco=1- Enables enhanced SCO (eSCO) support for better audio quality in Bluetooth audio devices
options apple_bce power_save=0
power_save=0- Disables power saving features in the Apple BCE (Broadcom) driver which can cause stability issues and connection drops
options usbcore autosuspend=-1
autosuspend=-1- Completely disables USB autosuspend for Bluetooth devices, preventing power management from causing device resets
softdep btusb pre: btintel btbcm bluetooth
- Ensures the kernel modules load in the correct sequence for Apple hardware
- The sequence is essential: bluetooth → btbcm → btintel → btusb → apple_bce
To install these parameters system-wide:
sudo mkdir -p /etc/modprobe.d/
sudo cp config/modprobe.d/bluetooth-apple.conf /etc/modprobe.d/
sudo update-initramfs -u # On Debian/Ubuntu systems
sudo dracut -f # On Fedora/RHEL systemsAfter installation, reboot the system and verify that parameters are applied:
systool -vm btusb | grep -A2 parametersParameters should match those specified in the configuration file.