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:
@@ -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)",
|
||||
|
||||
Reference in New Issue
Block a user