Для адаптеров на базе Qualcomm Atheros QCNFA765 (rev 01) — как понимаю подойдет все что QCNxxx
Вызываем lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 27c6:5125 Shenzhen Goodix Technology Co.,Ltd. Goodix Fingerprint Device
Bus 003 Device 002: ID 0489:e0e1 Foxconn / Hon Hai
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0408:1040 Quanta Computer, Inc. ov9734_techfront_camera
Bus 001 Device 002: ID 046d:c52f Logitech, Inc. Unifying Receiver
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
0489:e0e1 - получаем айди нашего устройства (Foxconn)
В настройках — диспетчер драйверов — ububtu software — включаем репозитории с source code
sudo apt install dpkg-dev
(нужно для утилиты dpkg-source)apt-get source linux
(возможно придется еще через обычный apt install установить linux-headers)cd linux-5.15.0/drivers/bluetooth/
(у меня версия ядра 5.15.0 тут соответственно ваша версия)-
vim btusb.c
Находим блок с похожим модулем (изменена по идее только ревизия, особых отличий в работе нет)/* QCA WCN6855 chipset */
добавляем блок с нашим ID
{ USB_DEVICE(0x0489, 0xe0e1), .driver_info = BTUSB_QCA_WCN6855 |
BTUSB_WIDEBAND_SPEECH |
BTUSB_VALID_LE_STATES },0x0489, 0xe0e1 — где цифры из 1 пункта, в зависимости от версии ноута, последняя цифра может отличаться
-
Cобираем модуль
make -C /lib/modules/$(uname -r)/build M=$(pwd) clean cp /usr/src/linux-headers-$(uname -r)/.config ./ cp /usr/src/linux-headers-$(uname -r)/Module.symvers Module.symvers make -C /lib/modules/$(uname -r)/build M=$(pwd) modules install -b btusb.ko /lib/modules/$(uname -r)/kernel/drivers/bluetooth/
modprobe -r btusb
— выгружаем драйвер, пытаемся загрузить драйвер modprobe btusb — выдаст ошибку с правамиГенерируем подписи для ядра
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=MyBtDriver/"
Подписываем наш драйвер/usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n btusb)
Грузим нашу подпись в систему
mokutil --import MOK.der
попросит ввести пароль, придумываем пароль, он нам понадобиться после перезагрузки, один разПерегружаем получаем синее окно с меню, выбираем eroll что-то там, вводим наш пароль из п. 10, просит перегрузить еще раз.
Должно заработать
Спасибо за внимание :)
13werwolf13
пересобирать руками каждый раз с обновлением ядра? не лучше ли опакетить в OBS с автоматической пересборкой при обновлении ядра