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

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

Решение: Убрать detach_kernel_driver() вообще.
Control transfer с CTRL_TYPE_VENDOR работает без claim interface
и не требует отключения ядра.

Это как в xvf_host.py — там тоже нет detach_kernel_driver().
This commit is contained in:
2026-05-20 20:16:41 +03:00
parent ba006c506b
commit 5a5cac90b1
+2 -6
View File
@@ -152,12 +152,8 @@ class XVF3800Controller:
_LOGGER.debug("Looking for PID %04x...", pid) _LOGGER.debug("Looking for PID %04x...", pid)
dev = usb.core.find(idVendor=self._vendor_id, idProduct=pid) dev = usb.core.find(idVendor=self._vendor_id, idProduct=pid)
if dev is not None: if dev is not None:
try: # НЕ делаем detach_kernel_driver() — это отключает audio интерфейсы!
if dev.is_kernel_driver_active(0): # Control transfer с CTRL_TYPE_VENDOR работает без claim interface
_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)
self._dev = dev self._dev = dev
_LOGGER.info( _LOGGER.info(