Как использовать целевой режим в Linux с USB?

Ядро 3.5 вводит:

Этот выпуск включает в себя драйвер для использования соединения IEEE-1394 в качестве транспорта SCSI. Это позволяет подвергать SCSI-устройства другим узлам шины Firewire, например жестким дискам. Это аналогичная функциональность для FireWire Target Disk Mode на многих компьютерах Apple.

В этом выпуске также добавлен драйвер USB-гаджета, который делает то же самое с USB. Драйвер поддерживает два USB-протокола, которые поддерживаются BBB или BOT (только для массового транспорта) и UAS (USB Attached SCSI). BOT рекламируется на альтернативном интерфейсе 0 (первичный), а UAS – на альтернативном интерфейсе 1. Оба протокола могут работать на USB 2.0 и USB 3.0. UAS использует функцию USB 3.0, называемую поддержкой потоков.

http://kernelnewbies.org/Linux_3.5

У меня есть Arch Linux с ядром 3.5.3-1 и хочу попробовать эту функцию.

FireWire – это одноранговая архитектура, поэтому все, что требуется для ПК, чтобы претендовать на жесткий диск, – это некоторое программное обеспечение.

USB, с другой стороны, имеет строгое различие между хостом (ПК) и устройствами. Независимо от того, может ли ваше оборудование работать как хост или как устройство (или и то, и другое в случае USB-On-The-Go), зависит от того, что было разработано вашим чипом интерфейса USB.

Linux работает как на ПК, так и на устройствах, поэтому у него есть драйверы для обоих типов интерфейсов USB. Однако для всех драйверов USB-гаджетов требуется, чтобы чип интерфейса поддерживал режим устройства, и ни один из контроллеров, встроенных в ПК, не делает.

Единственный шанс запустить этот код – использовать какое-то встроенное устройство, например, маршрутизатор, ящик NAS или телефон.

Frome код под этим сообщением, вы можете увидеть патчи. Для вас важно следующее:

--- a/drivers/usb/gadget/Kconfig +++ b/drivers/usb/gadget/Kconfig @@ -798,6 +798,16 @@ config USB_MASS_STORAGE Say "y" to link the driver statically, or "m" to build a dynamically linked module called "g_mass_storage". +config USB_GADGET_TARGET + tristate "USB Gadget Target Fabric Module" + depends on TARGET_CORE + help + This fabric is an USB gadget. Two USB protocols are supported that is + BBB or BOT (Bulk Only Transport) and UAS (USB Attached SCSI). BOT is + advertised on alternative interface 0 (primary) and UAS is on + alternative interface 1. Both protocols can work on USB2.0 and USB3.0. + UAS utilizes the USB 3.0 feature called streams support. + config USB_G_SERIAL tristate "Serial Gadget (with CDC ACM and CDC OBEX support)" help 

Это иллюстрирует добавление USB_GADGET_TARGET , если вы включите этот параметр в своем ядре и перекомпилируете / переустановите ядро, вы сможете использовать целевой режим в Linux с USB. Обратите внимание, что вам также нужно включить TARGET_CORE .

Более подробную информацию можно найти по адресу:

  • Сохранить идентификаторы, добавленные ssh-add, чтобы они сохранялись
  • Как переместить раздел в GNU / Linux?
  • Самый простой способ получить 3 или 4 монитора, работающие на Linux?
  • Почему моя команда xmodmap не запускается при запуске / входе?
  • Являются ли размеры страницы памяти и размер кластера файловой системы одинаковыми?
  • Измерение времени выполнения скрипта
  • Смотреть файловую систему в режиме реального времени на OS X и Ubuntu
  • Как скачать каталог или файлы с командной строкой на сервере Linux
  • Как заставить Windows перестать предполагать приоритет над GRUB?
  • Расширения расширений клавиатуры Linux
  • Регистрация в OpenWrt: как узнать «wifi deauthentication»
  • Interesting Posts

    Разрешен ли объект сущности для запроса HTTP DELETE?

    Программное обеспечение для переключения между ОС

    не может преобразовать ‘std :: basic_string ‘ в ‘const char *’ для аргумента ‘1’ в ‘int system (const char *)’

    Использование оператора & в сигнатурах функций C ++

    Maven – всегда загружайте источники и javadocs

    Система не может найти файл, указанный в java

    HttpContext.Current.User.Identity.Name всегда string.Empty

    C – scanf () vs получает () vs fgets ()

    Проверьте, существует ли значение Cell в столбце, а затем получите значение NEXT Cell

    Переопределить функцию, импортированную в пространстве имен

    Вход в Windows XP со сломанным профилем

    Как проверить адрес электронной почты с помощью регулярного выражения?

    Можно ли напрямую использовать физический раздел с Windows XP для загрузки виртуальной машины?

    Как строки передаются в .NET?

    Не удается установить драйвер tap с помощью tapinstall.exe для OpenVPN при запуске из файла .bat, но он работает при запуске установщика OpenVPN

    Давайте будем гением компьютера.