Пі як USB-клієнт


16

Я шукаю спосіб, щоб Pi діяла як USB-клієнт і маскувалася під флешку.

Я бачив багато пропозицій, проте більшість з них вже старі (1+ років) і невизначені / неповні - я хотів би попросити оновлення щодо того, що спрацювало, що не зробило тощо.

Також є численні пропозиції використовувати натомість Pi як пристрій типу NAS. Це не спрацює для моїх цілей, оскільки у мене є "німий" хост, який може приймати лише флешки (і я хочу використовувати Pi, щоб зробити його "розумнішим")

резюме пропозицій, які я вже бачив:

  1. емуляція USB-клієнта через штифти GPIO
  2. емулюйте послідовне з'єднання через GPIO, а потім використовуйте наявні кабелі, щоб перейти від послідовного до USB
  3. використовуючи модель A, використовуйте програмне забезпечення, щоб переконати пі, що він діє як клієнт
  4. за допомогою USB-кабелю "хост-хост" (не впевнений, що я бачив будь-який, що підтримує Linux ...)

хтось міг би більш глибоко пояснити деякі запропоновані рішення?

PS - Я не потребую і не очікую високої продуктивності від цієї конфігурації, швидкості USB 1.1 були б достатніми.

редагувати: Мені також були б цікаві будь-які альтернативи, які могли б забезпечити цю функціональність, однак я ще не бачив жодних "розумних" usb-паличок або варіантів Android на палицю.


1
Однозначно є кабелі, які підтримує Linux; це частина мети з usbnetводієм. На них є сторінка, де згадуються деякі; це виглядає застарілим, тому зараз їх може бути більше. Перш ніж купувати що-небудь, огляньте навколо.
золотинки

Деякі зауваження, характерні для моделі A з цього приводу, тут
золотинки

Ви також можете знайти такі проекти , як usbip: stackoverflow.com/a/19689740/544721 або linux-usb.org/gadget корисно при складанні рішення.
Grzegorz Wierzowiecki

Відповіді:


6

Вам би пощастило, якби порти USB на PI були OTG, а не USB Host.

Можливо, вам слід розглянути якийсь інший пристрій, оскільки жодне з запропонованих вами рішень не може бути практичним:

емуляція USB-клієнта за допомогою штифтів GPIO: теоретично можливо емуляцію USB за допомогою бітових штифтів. Це може спричинити досить великі накладні витрати на програмне забезпечення. Рішення буде досить важким у виконанні. Теоретично це можливо, але вам потрібно зробити аналіз витрат / вигод.

емулюйте послідовне з'єднання через GPIO, а потім використовуйте наявні кабелі для переходу від послідовного до USB: Це рішення не буде служити вашим цілям, оскільки ви (скоріше ваш хост DUMB) хотів би емуляції "пристрою масового зберігання" (тип пристрою 0x08), а не "Емуляція пристрою зв'язку та управління CDC" (тип пристрою 0x02).

використовуючи модель A, використовуйте програмне забезпечення, щоб переконати пі, щоб він діяв як клієнт: Незрозуміло, що вам запропонували

за допомогою USB-кабелю "хост-хост" (не впевнений, що я бачив будь-який, що підтримує Linux ...): У цьому випадку обидва пристрої побачать пристрій масового зберігання, підключений до їх хост-контролера. Використовуючи цей метод, ваш Raspberry pi відображатиметься як пристрій масового зберігання, який експортує ваш накопичувач на базі SD-карти. За допомогою цього рішення ви можете розглянути, який тип пам’яті ви хочете експортувати на хост DUMB. Ваш хост DUMB може не експортувати себе як пристрій масового зберігання. На даний момент у вас будуть інші опції USB, крім Raspberry Pi.


Які інші пристрої ви б рекомендували? (Я сподіваюся на щось із wifi та можливістю запускати
папку "ящик"

Ваші потреби щодо обслуговування хоста DUMB доволі незрозумілі. Потрібна більша чіткість.
Четан Бхаргава

2
Гаразд, сьогодні у мене в машині є флешка, яка відтворює mp3 - коли я хочу змінити музику на ній, я мушу фізично переміщувати флешку - я хотів би просто синхронізувати пристрій із чимось на робочому столі, і представіть USB-інтерфейс для автомобіля - також USB-порт на моделі A Pi - це мікросхема OTG (і на моделі B, але Ethernet-порт відключає цю функціональність) - Джерело
user2813274

Перейдемо до чату (Пекарня), щоб ми не захаращували повідомлення коментарями :-)
Четан Бхаргава

2

Зараз існує варіант Pi zero, який може робити те, що я хотів, і Adafruit зробив підручник для цього:

https://learn.adafruit.com/turning-your-raspberry-pi-zero-into-a-usb-gadget/overview

Офіційною назвою для цього, схоже, є "gbget system usb", і просто потрібен кабель OTG.

Я не зміг перевірити це, оскільки Pi zero є в наявності майже скрізь, але я думаю, що це найкращий маршрут

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.