From 27703a2f9395da513c629b5a92e1de1b04953a8d Mon Sep 17 00:00:00 2001 From: sirmrak Date: Wed, 20 May 2026 20:43:01 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D1=83=D0=B1=D1=80=D0=B0=D1=82=D1=8C=20d?= =?UTF-8?q?etach=5Fkernel=5Fdriver()=20=E2=80=94=20=D1=8D=D1=82=D0=BE=20?= =?UTF-8?q?=D0=BE=D1=82=D0=BA=D0=BB=D1=8E=D1=87=D0=B0=D0=B5=D1=82=20audio?= =?UTF-8?q?=20=D0=B8=D0=BD=D1=82=D0=B5=D1=80=D1=84=D0=B5=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). После этого 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 --- examples/example_led.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/examples/example_led.py b/examples/example_led.py index 96e678d..3e10cad 100644 --- a/examples/example_led.py +++ b/examples/example_led.py @@ -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)",