Можно ли сбросить подключение USB-устройства без физического отключения / подключения к ПК?
В частности, мое устройство - это цифровая камера. Я использую gphoto2
, но в последнее время получаю «ошибки чтения устройства», поэтому я хотел бы попробовать выполнить программный сброс соединения.
Насколько я могу судить, для камеры не загружаются модули ядра. Единственный, который выглядит похожим, - это usbhid
.
Это очень элегантный и в то же время уродливый способ сделать это. Я запустил строку оболочки в cpp, которая использует python для сброса usb.
установите usb-библиотеку python:
sudo pip3 install pyusb
получите идентификатор поставщика и продукта, чтобы вы могли использовать его в коде: lsusb -v
скопируйте и вставьте следующий код, но не забудьте заменить
и
на идентификатор поставщика и идентификатор продукта, которые вы нашли на предыдущем шаге:
#include <iostream>
int main()
{
int res = system("echo \"from usb.core import find as finddev; dev=finddev(idVendor=<vendor_id>,idProduct=<product_id>); dev.reset()\" | python3");
return res;
}