From 5a5cac90b1d46c2faaf86fe9e1c224201f042dcc Mon Sep 17 00:00:00 2001 From: sirmrak Date: Wed, 20 May 2026 20:16:41 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=9D=D0=95=20=D0=B4=D0=B5=D0=BB=D0=B0?= =?UTF-8?q?=D1=82=D1=8C=20detach=5Fkernel=5Fdriver()=20=E2=80=94=20=D1=8D?= =?UTF-8?q?=D1=82=D0=BE=20=D0=BE=D1=82=D0=BA=D0=BB=D1=8E=D1=87=D0=B0=D0=B5?= =?UTF-8?q?=D1=82=20audio=20=D0=B8=D0=BD=D1=82=D0=B5=D1=80=D1=84=D0=B5?= =?UTF-8?q?=D0=B9=D1=81=D1=8B!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Проблема: 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(). --- wyoming_satellite/xvf_usb.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/wyoming_satellite/xvf_usb.py b/wyoming_satellite/xvf_usb.py index 622b101..9542d21 100644 --- a/wyoming_satellite/xvf_usb.py +++ b/wyoming_satellite/xvf_usb.py @@ -152,12 +152,8 @@ class XVF3800Controller: _LOGGER.debug("Looking for PID %04x...", pid) dev = usb.core.find(idVendor=self._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 self._dev = dev _LOGGER.info(