DKMS module that adds USB device 13d3:3625 (IMC Networks / MediaTek MT7922) to the Linux btusb driver with the correct BTUSB_MEDIATEK | BTUSB_WIDEBAND_SPEECH flags.
The device 13d3:3625 is not yet in the upstream kernel's btusb device table. Without a matching entry, the driver won't use the MediaTek-specific initialization path and the Bluetooth adapter won't work.
This module patches btusb.c at build time instead of bundling a full copy, so it stays compatible across kernel updates.
pre_build.shfetchesbtusb.cand its local headers from the local kernel tree or, if unavailable (e.g. Arch/CachyOS), downloads them from kernel.org for the target kernel version.- If
13d3:3625is already present in the source (merged upstream), the patch is skipped automatically. - Otherwise, it applies a unified patch (
--fuzz=0). If the context doesn't match the kernel version, a perl fallback inserts the entry after the/* MediaTek MT7922 Bluetooth devices */comment. - The patched
btusb.kois compiled out-of-tree and installed to/updates/dkms/, which takes priority over the in-tree module.
# Copy source to /usr/src
sudo cp -r btusb-13d3-3625-1.0 /usr/src/
# Register and install
sudo dkms add btusb-13d3-3625/1.0
sudo dkms install btusb-13d3-3625/1.0
# Reload the module
sudo modprobe -r btusb && sudo modprobe btusb# DKMS status
dkms status | grep btusb
# Confirm the DKMS module is loaded (not the in-tree one)
modinfo btusb | grep filename
# Expected: /lib/modules/.../updates/dkms/btusb.ko.zstsudo dkms remove btusb-13d3-3625/1.0 --all
sudo rm -rf /usr/src/btusb-13d3-3625-1.0| File | Purpose |
|---|---|
dkms.conf |
DKMS configuration |
pre_build.sh |
Fetches sources, applies patch, handles fallback |
patches/0001-btusb-add-13d3-3625.patch |
Unified diff adding the device entry |
- Tested on CachyOS (Arch-based) with kernel 6.18.x.
- On Arch, kernel headers don't include driver
.cfiles, sopre_build.shdownloads them from kernel.org. An internet connection is required during the first build for each kernel version. AUTOINSTALL="yes"ensures automatic rebuild on kernel upgrades via the DKMS pacman hook.- Once
13d3:3625lands upstream, the module will detect it and skip patching — no manual intervention needed.
The patch modifies GPL-licensed kernel code (drivers/bluetooth/btusb.c). This project is distributed under the same GPL-2.0 license.