Issue #63: system btusb ZLP test
This test keeps the normal aic_load_fw + btusb architecture. It does not
restore or install the vendor aic_btusb driver.
The patch adds one quirk to the standard Linux btusb source:
- match only AICSemi
368b:8d81; - set
URB_ZERO_PACKETon Bluetooth ACL bulk OUT transfers; - leave every other
btusbdevice and code path unchanged.
The test installer downloads the standard btusb source matching the running
kernel's upstream version, applies the patch, and installs the resulting
btusb.ko through DKMS. The distribution module is not overwritten and can be
restored by removing the DKMS test package.
Install the test module
On Fedora, make sure the test build dependencies are installed:
sudo dnf install dkms gcc make kernel-devel-$(uname -r) curl patch
Stop Bluetooth scanning and disconnect Bluetooth devices, then run:
cd tests/issue63-btusb-zlp
sudo ./btusb-zlp-test.sh install
./btusb-zlp-test.sh status
modinfo -n btusb should point to an updates/dkms path. Secure Boot systems
may require the DKMS module to be signed or enrolled before it can load.
Select AAC again and play audio for at least one hour:
bluetoothctl scan off
pactl set-card-profile bluez_card.28_6F_40_46_AB_B1 a2dp-sink-aac
Please capture sudo btmon -w issue63-zlp.btsnoop and relevant dmesg lines if
the connection still stalls.
Restore the distribution module
sudo ./btusb-zlp-test.sh remove
./btusb-zlp-test.sh status
After removal, modinfo -n btusb should point back to the distribution's
kernel/drivers/bluetooth/btusb.ko path.
Scope
This is an A/B diagnostic patch, not a production workaround. If AAC remains stable, the small kernel patch can be submitted upstream. If it still fails, the next isolated experiment should add an AIC-specific runtime-PM quirk rather than replacing the standard Bluetooth driver.