Я спрашиваю об этом, потому что я не нашел ничего ясного по этому вопросу после нескольких дней поиска. Итак, извините, если вопрос уже существует.
Я работаю в проекте, просто для удовольствия, где я хочу управлять мышью ПК из Raspberry Pi. Пользовательский ввод будет осуществляться любым оборудованием, подключенным к RP, мое главное сомнение в том, как управлять отправкой инструкций перемещения на ПК с RP через USB.
Я знаю, что мне нужно включить режим OTG, чтобы ПК распознал его как USB-устройство, но я понятия не имею, как отправлять движения мыши на ПК через USB и заставить Windows / Linux понимать его. Я обнаружил, что «Linux-USB Gadget API Framework» существует, но нет примера его использования, и я на самом деле не знаю, является ли это лучшим подходом.
Не могли бы вы дать мне несколько подсказок или ресурсов, чтобы помочь мне?
Большое спасибо.
hid_gadget_test
упоминается программа, у меня нет удобного пи, но вы можете проверитьapt-file search hid_gadget_test
(иapt install apt-file
сначала, если необходимо).usbkbd.ko
g_ether
используется привязка нуля в качестве гаджета Ethernet (но это ведомая сторона, драйвер на стороне хоста является более общимusbnet
).Ответы:
Попробуйте использовать
g_hid
модуль, упомянутый @goldilocks:dtoverlay=dwc2
в свойconfig.txt
и перезагрузитеmodprobe g_hid
hid_gadget_test /dev/hidg0 keyboard
. Вы , возможно , потребуется построить программу первых, используя пример , приведенный здесь .Другой, более гибкий способ достичь желаемого (без написания пользовательских драйверов) - использовать gadgetfs . Я знаю, по крайней мере, один проект, который превратил маленький компьютер ARM в USB / Bluetooth клавиатуру / мышь / геймпад, используя этот подход.
К сожалению, статус gadgetfs на Rapsberry Pi является неопределенным. Эта ветка предполагает, что это не работает, но неясно, что автор пытался сделать точно. Я бы предложил попробовать это все же:
dtoverlay=dwc2
в свойconfig.txt
и перезагрузитеmodprobe gadgetfs
mkdir /dev/gadget; mount -t gadgetfs none /dev/gadget/
Если в этот момент вы не получите ошибок, вы сможете использовать библиотеки gadgetfs, подобные этой, для программирования своих пользовательских USB-устройств.
источник
modprobe
водителям? Не могли бы вы смонтироватьgadgetfs
? Не могли бы вы построить и запуститьhid_gadget_test
?