Доступен USB Raw Gadget, Linux-модуль для эмуляции USB-устройств

Aндрeй Кoнoвaлoв изо кoмпaнии Google рaзвивaeт нoвый мoдуль USB Raw Gadget, пoзвoляющий эмулирoвaть USB-устрoйствa в прoстрaнствe пользователя. Находится нате рассмотрении заявка на включение данного модуля в главный состав ядра Linux. USB Raw Gadget уж применяется в компании Google для упрощения fuzzing-тестирования USB-стека ядра рядом помощи инструментария syzkaller. Модуль добавляет новешенький программный интерфейс в подсистему ядра USB Gadget и развивается в качестве альтернативы GadgetFS. Устроение нового API обусловлено необходимостью получения низкоуровневого и прямого доступа к подсистеме USB Gadget изо пространства пользователя, позволяющего обрабатывать трендец возможные USB-запросы (GadgetFS обрабатывает кое-кто запросы самостоятельно, не передавая в площадь пользователя). Управление USB Raw Gadget производится после устройство /dev/raw-gadget по аналогии с /dev/gadget в GadgetFS, а для взаимодействия применяется интерфейс получай основе ioctl(), а не псевдо-ФС. За исключением прямой обработки всех USB-запросов процессом в пространстве пользователя современный интерфейс также отличается возможностью возвращения любых данных в отповедь на USB-запрос (GadgetFS выполняет проверку корректности USB-дескрипторов и фильтрует определённые ответы, отчего мешает выявлению ошибок при fuzzing-тестировании USB-стека). Raw Gadget и даёт возможность выбрать конкретное склад UDC (USB Device Controller) и драйвер для прикрепления, в так время как GadgetFS прикрепляется к первому доступному устройству UDC. К разных UDC назначаются предсказуемые имена endpoint интересах разделения разных типов каналов обмена данными в глубине одного устройства. Источник: http://www.opennet.ru/opennews/art.shtml?num=52324