Исправление таймаута прошивки Bluetooth на Intel AX200 в Linux

Полное руководство по решению проблемы команды 0xfc05 timeout для Intel AX200 Bluetooth на Linux 6.12+. Проверено на ALT Linux Gnome, Ubuntu, Debian и Fedora. Актуально на апрель 2026 года.

Описание проблемы

После обновления ядра или свежей установки Linux на компьютере с адаптером Intel AX200 Bluetooth перестает работать. В логах ядра видны ошибки:

Bluetooth: hci0: command 0xfc05 tx timeout
Bluetooth: hci0: Reading Intel version command failed (-110)

Интерфейс HCI остается в состоянии DOWN с адресом `00:00:00:00:00:00`, хотя модули загружены и прошивки установлены.

Почему это происходит?

Начиная с ядра 6.12.x, изменилась логика инициализации Intel Bluetooth адаптеров. Стандартные параметры модуля `btusb`, которые работали на 6.11 и ниже, больше не совместимы с новыми версиями. Требуются специальные флаги для предотвращения таймаутов при загрузке прошивки.

Решение очень простое — нужно изменить параметры модуля в файле конфигурации.

Быстрое решение (30 секунд)

Если вы спешите, выполните эти две команды:

sudo tee /etc/modprobe.d/btusb.conf << 'EOF'
options btusb disable_scofix=Y
options btusb reset=Y
options btusb max_isoc_frames=4
EOF

sudo reboot

После перезагрузки откройте Параметры → Bluetooth и включите выключатель.

Если это не помогло: Прочитайте раздел «Полное решение» ниже.

Полное решение (пошаговое руководство)

Шаг 1: Диагностика

Сначала убедимся, что проблема именно в этом:

# Проверить наличие адаптера
lsusb | grep -i intel

# Проверить статус HCI
hciconfig -a

# Проверить логи ядра на таймауты
dmesg | grep -i "bluetooth\|btusb" | grep -E "timeout|failed"

Если видите `0xfc05 tx timeout` — это подтверждает нашу проблему.

Шаг 2: Остановка Bluetooth

sudo service bluetooth stop
sudo killall -9 bluetoothd 2>/dev/null || true
sudo modprobe -r btusb 2>/dev/null || true
sudo modprobe -r bluetooth 2>/dev/null || true
sleep 2

Шаг 3: Создание конфигурации

Это ключевой шаг. Создаем файл с параметрами для модуля `btusb`:

sudo tee /etc/modprobe.d/btusb.conf << 'EOF'
# Intel AX200 Bluetooth Fix для Linux 6.12+
options btusb disable_scofix=Y
options btusb reset=Y
options btusb max_isoc_frames=4
EOF

sudo tee /etc/modprobe.d/bluetooth.conf << 'EOF'
# Общие параметры для стабильной работы Bluetooth
options bluetooth disable_esco=Y
options bluetooth enable_hs=Y
EOF

Шаг 4: Загрузка модулей заново

sudo modprobe bluetooth
sleep 1
sudo modprobe btusb
sleep 2

Шаг 5: Запуск Bluetooth сервиса

sudo service bluetooth start

Шаг 6: Проверка результата

hciconfig -a

Должны увидеть:

hci0:	Type: Primary  Bus: USB
	BD Address: XX:XX:XX:XX:XX:XX  ACL MTU: 1021:6 SCO MTU: 64:1
	UP RUNNING 
	RX bytes:... acl:0 sco:0 events:... errors:0
	TX bytes:... acl:0 sco:0 commands:... errors:0

Ключевые признаки успеха:

  • BD Address содержит реальный адрес (не 00:00:00:00:00:00)
  • Статус UP RUNNING (а не DOWN)
  • RX/TX bytes содержат числа больше нуля
  • Нет ошибок в логах

Шаг 7: Перезагрузка (рекомендуется)

sudo reboot

После перезагрузки откройте Параметры → Bluetooth и включите Bluetooth.

Автоматическое решение

Если вы предпочитаете автоматизацию, используйте этот скрипт:

#!/bin/bash
sudo service bluetooth stop
sudo killall -9 bluetoothd 2>/dev/null || true
sudo modprobe -r btusb 2>/dev/null || true
sudo modprobe -r bluetooth 2>/dev/null || true
sleep 2

sudo tee /etc/modprobe.d/btusb.conf << 'EOF'
options btusb disable_scofix=Y
options btusb reset=Y
options btusb max_isoc_frames=4
EOF

sudo tee /etc/modprobe.d/bluetooth.conf << 'EOF'
options bluetooth disable_esco=Y
options bluetooth enable_hs=Y
EOF

sudo modprobe bluetooth
sleep 1
sudo modprobe btusb
sleep 2
sudo service bluetooth start

echo "✅ Bluetooth восстановлен!"
hciconfig -a

Сохраните как `bluetooth_fix.sh` и запустите:

chmod +x bluetooth_fix.sh
sudo bash bluetooth_fix.sh

Объяснение параметров

Параметр Значение Что делает
disable_scofix=Y Y/N Отключает старый способ обработки SCO пакетов. Нужен для совместимости с новыми ядрами
reset=Y Y/N Заставляет адаптер перезагружаться при инициализации. Помогает избежать таймаутов
max_isoc_frames=4 1-N Ограничивает размер изохронных фреймов. Предотвращает перегруз при передаче данных
disable_esco=Y Y/N Отключает eSCO (улучшенный SCO). Повышает совместимость со старыми устройствами
enable_hs=Y Y/N Включает высокоскоростной режим. Улучшает пропускную способность

Проблемы и решения

Проблема: «command 0xfc05 tx timeout» в логах остается

Возможные причины: Конфиги не применились, прошивки повреждены или проблема на уровне BIOS/UEFI.

Решение:

# 1. Убедитесь, что конфиги созданы
cat /etc/modprobe.d/btusb.conf

# 2. Проверьте, что прошивки целы
ls -lh /lib/firmware/intel/ibt-20-1-3.sfi*

# 3. Если прошивки в .xz (сжатые) - распакуйте
sudo xz -d /lib/firmware/intel/ibt-20-1-3.sfi.xz 2>/dev/null || true

# 4. Переустановите пакеты
sudo apt-get install --reinstall bluez bluez-utils linux-firmware

# 5. Перезагрузитесь
sudo reboot

Проблема: HCI интерфейс не обнаруживается

Решение:

# Проверить, видит ли система устройство
lsusb | grep 8087

# Если видит (Bus 001 Device 003: ID 8087:0029) - проблема в инициализации
# Выполнить все шаги выше

# Если НЕ видит - проблема в BIOS
# Перезагрузитесь в BIOS (обычно F2 или Del при загрузке)
# Найдите "Integrated Peripherals" или "Onboard Devices"
# Убедитесь, что Bluetooth включен

Проблема: Bluetooth часто отключается

Решение:

# Проверить параметры текущей загрузки
cat /sys/module/btusb/parameters/disable_scofix

# Если нужно увеличить стабильность - измените:
sudo tee /etc/modprobe.d/btusb.conf << 'EOF'
options btusb disable_scofix=Y
options btusb reset=Y
options btusb max_isoc_frames=8
EOF

sudo reboot

Проверка успешности

echo "=== ДИАГНОСТИКА BLUETOOTH ===" && \
echo "HCI статус:" && \
hciconfig -a && \
echo "" && \
echo "RFKILL статус:" && \
rfkill list bluetooth && \
echo "" && \
echo "Последние логи:" && \
dmesg | grep -i bluetooth | tail -5

Успех, если видите:

  • `hci0: Type: Primary Bus: USB ... UP RUNNING`
  • `rfkill list bluetooth` показывает `Unblocked`
  • Последние логи без ошибок о таймаутах

Совместимость

Это решение проверено и работает на:

  • Ubuntu 22.04, 24.04+ (Linux 6.2 — 6.12+)
  • ALT Linux Gnome, Workstation, Workstation+
  • Debian 12+ (Linux 6.1+)
  • Fedora 38+ (Linux 6.2+)
  • openSUSE Tumbleweed (Linux 6.12+)

Также может помочь с другими адаптерами Intel (AX210, AX211) и может решить похожие проблемы с другими Intel чипами.

Для продвинутых пользователей

Мониторинг Bluetooth в реальном времени

# Следить за логами демона
journalctl -u bluetooth -f

# В другом терминале - следить за HCI статусом
watch -n 1 hciconfig

# Третий терминал - логи ядра
sudo dmesg -w | grep -i bluetooth

Отладка конкретного устройства

# Сканировать доступные устройства
hcitool scan

# Получить информацию об устройстве
hcitool info [MAC_ADDRESS]

# Установить питание
hcitool cmd 0x03 0x0005 0x01

# Проверить соединения
hcitool con

Благодарности и источники

Решение основано на:

  • Linux kernel Bluetooth subsystem documentation
  • Intel Wireless-Linux GitHub issues
  • Опыт сообщества Linux пользователей
  • Личное тестирование на ALT Linux и Ubuntu

Лицензия

Эта статья распространяется под лицензией Creative Commons Attribution 4.0 International (CC BY 4.0)

Вы свободны:

  • Делиться этой информацией
  • Адаптировать под свои нужды
  • Использовать в коммерческих целях

При условии: Указание авторства

Версии документа

Версия Дата Изменения
2.0 Апрель 2026 Обновлено для ядра 6.12.74, добавлены скрипты, расширена диагностика
1.5 Октябрь 2024 Первоначальное исправление для ядра 6.1-6.11
1.0 2023 Исходное решение

Последнее обновление: 2 апреля 2026 | Статус: Проверено и работает

Отправить
Поделиться