Мне нужно написать клиент-серверное приложение, где крошечный сервер опирается на USB-гаджет и взаимодействует с клиентским приложением на хосте.
Раньше я такого не делал, но я делал веб-приложения и обычно все они разрабатываются и отлаживаются на локальной машине с использованием петлевого сетевого интерфейса lo
. Возможно, это повлияло на мой образ мыслей, и я ищу способ имитации хоста USB и гаджета на моей машине, чтобы я мог полностью собрать оба конца приложения на своем ПК, прежде чем погрузиться в настоящий гаджет и получить дело идет
Это правильный путь? Я понимаю, что протокол USB является асимметричным, и нашел здесь несколько ссылок на здесь , но это наиболее естественный способ сделать это.
Если это правильный путь, как мне начать с чего-то подобного и есть ли потенциальные проблемы, о которых другие знают, на которые я мог бы наткнуться?
Обновление
Ссылки, которые я нашел от Googling ранее. Существуют модули ядра Linux (также часть моей установки Ubuntu), которые, по-видимому, способны имитировать стороны хоста и гаджета (а именно: dummy_hcd и gadgetfs соответственно). Моя идея просто иметь что-то вроде
Host application (client) on PC <-> device file 0 <-> Loopback device <-> device file 1 <-> Gadget application (server) also on PC (will be moved to gadget).