Вопрос или проблема
При обновлении ядра с 6.8.0-49-generic до 6.8.0-50-generic я столкнулся с ошибками, связанными с драйвером bluetooth, установленным из https://github.com/jeremyb31/bluetooth-6.8. Вот сообщение об ошибке:
Сборка модуля:
Очистка зоны сборки…
‘make’ all KVER=6.8.0-50-generic…(неудачный код выхода: 2)
ОШИБКА (dkms apport): двоичный пакет для btusb: 4.1 не найден
Ошибка! Плохой код возврата при сборке модуля на ядре: 6.8.0-50-generic(x86_64)
Консультируйтесь с /var/lib/dkms/btusb/4.1/build/make.log для получения дополнительной информации.
dkms autoinstall на 6.8.0-50-generic/x86_64 завершился неудачей для btusb(10)
Ошибка! Один или несколько модулей не удалось установить во время автоподстановки.
Обратитесь к предыдущим ошибкам для получения дополнительной информации.
- dkms: автоподстановка для ядра 6.8.0-50-generic…неудача!
run-parts: /etc/kernel/header_postinst.d/dkms завершился с кодом возврата 11
dpkg: ошибка при обработке пакета linux-headers-6.8.0-50-generic(–configure):
скрипт пост-установки установленного пакета linux-headers-6.8.0-50-generic завершил работу с кодом ошибки 11
dpkg: проблемы с зависимостями препятствуют настройке linux-headers-generic:
linux-headers-generic зависит от linux-headers-6.8.0-50-generic; однако:
Пакет linux-headers-6.8.0-50-generic еще не настроен.
dpkg: ошибка при обработке пакета linux-headers-generic (–configure):
проблемы с зависимостями – оставлено без настройки
Нет отчета apport, так как сообщение об ошибке указывает, что это последующая ошибка после предыдущей неудачи.
Обработка триггеров для linux-image-6.8.0-50-generic (6.8.0-50.51) …/etc/kernel/postinst.d/dkms:
- dkms: запуск службы автоподстановки для ядра 6.8.0-50-generic
Команда подписи: /usr/bin/kmodsign
Ключ подписи: /var/lib/shim-signed/mok/MOK.priv
Публичный сертификат (MOK): /var/lib/shim-signed/mok/MOK.der
Сборка модуля:
Очистка зоны сборки…
‘make’ all KVER=6.8.0-50-generic…(неудачный код выхода: 2)
ОШИБКА (dkms apport): двоичный пакет для btusb: 4.1 не найден
Ошибка! Плохой код возврата при сборке модуля на ядре: 6.8.0-50-generic (x86_64)
Консультируйтесь с /var/lib/dkms/btusb/4.1/build/make.log для получения дополнительной информации.
dkms autoinstall на 6.8.0-50-generic/x86_64 завершился неудачей для btusb(10)
Ошибка! Один или несколько модулей не удалось установить во время автоподстановки.
Обратитесь к предыдущим ошибкам для получения дополнительной информации.
- dkms: автоподстановка для ядра 6.8.0-50-generic…неудача!
run-parts: /etc/kernel/postinst.d/dkms завершился с кодом возврата 11
dpkg: ошибка при обработке пакета linux-image-6.8.0-50-generic (–configure):
скрипт пост-установки установленного пакета linux-image-6.8.0-50-generic завершил работу с кодом ошибки 11
Во время обработки были обнаружены ошибки:
linux-headers-6.8.0-50-generic
linux-headers-generic
linux-image-6.8.0-50-generic
E: Подпроцесс /usr/bin/dpkg вернул код ошибки (1)
Я удалил dkms btusb/4.1 -all, клонировал репозиторий github и снова попытался установить dkms btusb 4.1, но столкнулся с той же ошибкой. Вот содержание make.log:
DKMS make.log для btusb-4.1 для ядра 6.8.0-50-generic (x86_64)
Ср Дек 11 21:52:35 +08 2024
make -C /lib/modules/6.8.0-50-generic/build M=/var/lib/dkms/btusb/4.1/build модули
make[1]: Вход в каталог ‘/usr/src/linux-headers-6.8.0-50-generic’
внимание: компилятор отличается от того, который использовался для сборки ядра
Ядро было собрано с помощью: x86_64-linux-gnu-gcc-13 (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
Вы используете: gcc-13 (Ubuntu 13.2.0-23ubuntu4) 13.2.0
CC [M] /var/lib/dkms/btusb/4.1/build/btusb.o
/var/lib/dkms/btusb/4.1/build/btusb.c: В функции ‘btusb_probe’:
/var/lib/dkms/btusb/4.1/build/btusb.c:4501:25: ошибка:
‘HCI_QUIRK_VALID_LE_STATES’ не объявлен (первый раз используется в этой функции); вы имели в виду ‘HCI_QUIRK_BROKEN_LE_STATES’?4501 | set_bit(HCI_QUIRK_VALID_LE_STATES,
&hdev->quirks);| ^~~~~~~~~~~~~~~~~~~~~~~~~ | HCI_QUIRK_BROKEN_LE_STATES
/var/lib/dkms/btusb/4.1/build/btusb.c:4501:25: примечание: каждый не объявленный идентификатор сообщается только один раз для каждой функции, в которой он появляется
make[3]: *** [scripts/Makefile.build:243:/var/lib/dkms/btusb/4.1/build/btusb.o] Ошибка 1
make[2]: *** [/usr/src/linux-headers-6.8.0-50-generic/Makefile:1925:/var/lib/dkms/btusb/4.1/build] Ошибка 2
make[1]: *** [Makefile:240: __sub-make] Ошибка 2
make[1]: Выхожу из каталога ‘/usr/src/linux-headers-6.8.0-50-generic’
make: *** [Makefile:7: all] Ошибка 2
В настоящее время я без bluetooth, чтобы обновиться до 6.8.0-50. Есть ли альтернативное решение для того, чтобы bluetooth заработал?
Ответ или решение
Как исправить несовместимость btusb 4.1 с Ubuntu 24.04.1 LTS и ядром 6.8.0-50-generic
Ваша проблема с Bluetooth на Ubuntu 24.04.1 LTS после обновления ядра до версии 6.8.0-50-generic связана с несовместимостью модуля btusb версии 4.1. Давайте рассмотрим, как эту ситуацию можно исправить.
1. Понимание проблемы
Произошла ошибка при сборке модуля Bluetooth с использованием DKMS, что видно из представленных вами логов. Основная проблема заключается в том, что при сборке модуля был обнаружен неопределенный идентификатор HCI_QUIRK_VALID_LE_STATES
, что указывает на изменения в API ядра или на отсутствие необходимых заголовочных файлов.
2. Решение проблемы
Чтобы устранить проблему с модулем btusb, следуйте следующим шагам:
Шаг 1: Убедитесь, что система обновлена
Перед тем как что-либо делать, убедитесь, что ваша система полностью обновлена. Используйте команды:
sudo apt update && sudo apt upgrade
Шаг 2: Переустановите модули DKMS
Так как вы уже установили модуль btusb через DKMS, попробуйте удалить и переустановить его:
sudo dkms remove btusb/4.1 --all
Затем клонируйте репозиторий снова:
git clone https://github.com/jeremyb31/bluetooth-6.8.git
cd bluetooth-6.8
Далее, установите его снова:
sudo dkms add btusb/4.1
sudo dkms build btusb/4.1
sudo dkms install btusb/4.1
Шаг 3: Проверьте версию компилятора
Ваш вывод лога указывает на то, что компилятор, использованный для сборки модуля, отличается от компилятора, используемого для сборки ядра. Убедитесь, что у вас установлена одинаковая версия компилятора:
gcc --version
Вы можете установить нужную версию GCC:
sudo apt install gcc-13
Шаг 4: Проверка совместимости
Если по-прежнему возникают ошибки, возможно, btusb 4.1 несовместим с вашим ядром. Постарайтесь найти более новую версию модуля или обратитесь к документации GitHub-репозитория для получения рекомендаций. Можно также рассмотреть использование другого репозитория, предоставляющего более актуальные версии драйверов.
Шаг 5: Обратитесь к альтернативным решениям
Если ничего не помогает, вы можете рассмотреть использование USB Bluetooth адаптера, который работает из коробки с вашей версией Ubuntu. Эти адаптеры часто имеют хорошие драйверы, совместимые с современными версиями ядра.
Дополнительные рекомендации
- Для поиска информации о последних обновлениях драйверов и решения проблем обратитесь к форумам сообщества Ubuntu или к специализированным площадкам.
- Не забывайте делать резервные копии ваших данных перед выполнением значительных изменений в системе.
Следуя этим шагам, вы должны быть в состоянии устранить проблемы с Bluetooth в вашей системе на Ubuntu 24.04.1 LTS. Если у вас останутся вопросы или проблемы, не стесняйтесь задавать их в комментариях.