USB Raw Gadget, модул за ядрото, който позволява емулиране на USB устройства

USB Raw притурка

Вече в някои случаи тук в блога говорихме за работата, извършена от Андрей Коновалов (разработчик на Google) в Linux, от работата си по своевременното откриване на грешки в USB драйверите на ядрото на Linux, а също и в Wifi устройствата.

Сега той работи в момента разработването на нов модул за ядрото на Linux, който той е посочил като "USB Raw Gadget" което се описва като помощна програма, която позволява емулиране на USB устройства в потребителското пространство.

Освен, че споменава, че се обмисля приложение за включване на този модул в основното ядро ​​на Linux. Google Raw Gadget вече се използва от Google, за да опрости размитото тестване на стека на USB ядрото с инструментариума syzkaller.

Първоначално използвах GadgetFS (заедно с Dummy HCD / UDC модула), за да емулирам USB устройства за размиване, но след това той беше превключен към персонализиран писмен интерфейс.

Стимулът за внедряване на различен интерфейс беше да се осигури директен и донякъде суров достъп до слоя USB Gadget за потребителско пространство, където всяка USB заявка се предава на потребителското пространство за отговор.

Относно USB Raw Gadget

Модулът се грижи за добавяне на нов интерфейс програмиране към подсистемата на ядрото наречен "USB Gadget" и който се разработва като алтернатива на GadgetFS.

Създаването на нов API се дължи на необходимостта от директен достъп и достъп на ниско ниво към подсистемата Gadget USB от потребителско пространство, което позволява да се обработват всички възможни USB заявки (GadgetFS обработва някои заявки самостоятелно, без да ги прехвърля в потребителско пространство).

USB Raw Gadget се управлява чрез устройството / dev / raw-gadget по аналогия с / dev / gadget в GadgetFS, но за взаимодействие се използва интерфейс, базиран на ioctl (), вместо псевдо-FS.

В допълнение към директната обработка на всички USB заявки от процес в потребителското пространство, новият интерфейс също така има възможност да връща всички данни в отговор на USB заявка (GadgetFS проверява коректността на USB дескрипторите и филтрира определени отговори, което пречи на откриване на грешки по време на теста за изчистване на USB стека).

USB Raw Gadget също ви позволява да изберете конкретно UDC устройство (Драйвер за USB устройство) и драйвер за свързване, докато GadgetFS се свързва с първото налично UDC устройство.

За различни UDC, предсказуемите имена на крайни точки се съпоставят с различни видове отделни комуникационни канали в рамките на едно устройство.

И накрая, ако искате да научите повече за това, можете да проверите подробностите, както и дневника на промените, направени в USB Raw Gadget В следващия линк.

Как да инсталирам USB модула Raw Gadget в Linux?

За тези, които се интересуват от възможността да тестват този модул на своята система, те могат да го направят, като следват инструкциите, описани подробно тук.

За фиктивни HCD / UDC (модул, който конфигурира виртуални USB устройства и хост контролери, които са свързани помежду си в ядрото). Трябва да отворим терминал и в него ще напишем следната команда:

svn checkout https://github.com/xairy/raw-gadget/trunk/dummy_hcd

С това ще получим папката с модулите, които ще компилираме, като изпълним следната команда в терминала:

cd dummy_hcd

make

И ние продължаваме да ги инсталираме с:

./insmod.sh

В случай, че искаме да актуализираме модула, го правим с:

./update.sh

Сега за тези, които искат да инсталират модула на ядрото. В терминал ще получим необходимите файлове за това, като изпълним следната команда:

svn checkout https://github.com/xairy/raw-gadget/trunk/raw_gadget

С това ще получим папката с модулите, които ще компилираме, като изпълним следната команда в терминала:

cd dummy_hcd

make

И ние продължаваме да ги инсталираме с:

./insmod.sh

В случай, че искаме да актуализираме модула, го правим с:

./update.sh

Можете да проверите работата следната връзка. 


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорник за данните: AB Internet Networks 2008 SL
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.