fix: убрать detach_kernel_driver() — это отключает audio интерфейсы

Проблема: detach_kernel_driver(0) отключал ядро от интерфейса 0,
который является частью audio function (интерфейсы 0-2).
После этого audio драйвер не мог восстановить устройство.

Решение: Убрать detach_kernel_driver() вообще.
Control transfer с CTRL_TYPE_VENDOR работает без claim interface.
Так работает xvf_host.py — там тоже нет detach_kernel_driver().

Исправленные файлы:
- wyoming_satellite/xvf_usb.py (уже было исправлено)
- examples/example_led.py
This commit is contained in:
2026-05-20 20:43:01 +03:00
parent b1f7185a4f
commit 27703a2f93
+4 -6
View File
@@ -137,12 +137,10 @@ class XVF3800LED:
_LOGGER.debug("Looking for PID %04x...", pid)
dev = usb.core.find(idVendor=USB_VENDOR_ID, idProduct=pid)
if dev is not None:
try:
if dev.is_kernel_driver_active(0):
_LOGGER.info("Detaching kernel driver from device...")
dev.detach_kernel_driver(0)
except Exception as exc:
_LOGGER.warning("Could not detach kernel driver: %s", exc)
# НЕ делаем detach_kernel_driver() — это отключает audio интерфейсы!
# Control transfer с CTRL_TYPE_VENDOR работает без claim interface
# Так работает xvf_host.py — там тоже нет detach_kernel_driver()
self._dev = dev
_LOGGER.info(
"✅ XVF3800 found (USB %04x:%04x, bus %d, addr %d)",