Служить файлы через USB


12

Я хотел бы иметь возможность обслуживать часть файловой системы моего устройства через USB на другом компьютере. Например, если файлы находятся в блоке A, а я читаю из блока B, то B монтирует A, просматривает эти файлы и монтирует их как устройство файловой системы (т. Е. Как флэш-накопитель).

В идеале решение подойдет для любого дистрибутива Linux, но я, скорее всего, буду использовать его на вариантах Debian.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Приветствия.


4
Вы не можете просто соединить два компьютера кабелем USB - электрический протокол USB не является симметричным и требует компьютера на одном конце и периферийного устройства на другом конце (поэтому разъемы не совпадают). У вас уже есть определенный аппаратный гаджет, который вы хотите использовать? В противном случае Ethernet (или Firewire) будет лучше адаптирован для создания сети между двумя компьютерами.
Жиль "ТАК - перестань быть злым"

2
@ Жиль - Спасибо за ответ. Исходя из вашего ответа, я думаю, что мой вопрос заключается в том, как сделать так, чтобы мой компьютер выглядел и / или действовал как периферийное устройство через USB-соединение / концентратор. Что разделяет периферийное устройство и хост-компьютер? Приветствия.
Сэм Бисби

Ответы:


11

Исходя из предоставленной вами информации, я предполагаю, что:

  1. У вас есть устройство черного ящика, с которым вы можете установить связь, только подключив к нему USB-накопитель.
  2. Физическое подключение и отключение USB-накопителя недопустимо, после развертывания у вас не будет физического доступа.

Если какое-либо из этих предположений неверно, вам будет легче.

То, что вы ищете, - это способ сделать компьютер похожим на USB-накопитель. В принципе, это не должно требовать большого количества электроники - я думаю, что правильный гаджет может быть произведен серийно всего за пару долларов плюс доставка. Но я не могу найти ссылку на правильный гаджет.

Простое использование USB-кабеля между компьютерами не поможет: они моделируют сеть Ethernet, а черный ящик не говорит по Ethernet. И преобразователи USB-хранилища в локальную сеть не помогут, они идут не так, как надо.

  1. Вы можете создать роботизированную руку, которая отсоединит USB-накопитель от черного ящика и подключит его к компьютеру. Теперь, когда было сделано очевидное, но непрактичное предложение ...

  2. Вы можете создать гаджет и написать драйвер для него. Но это может быть вне вашего ценового диапазона, особенно если вам не нужны миллионы единиц.

  3. Там может быть сложное устройство NAS, которое может общаться с несколькими компьютерами через iSCSI и USB (последние два слова - сложная часть).

  4. Некоторые мобильные телефоны и КПК могут выступать в качестве запоминающего устройства USB и дополнительно иметь соединение GSM, Wi-Fi или Ethernet. Но они часто выступают в качестве запоминающих устройств только в выключенном состоянии, поэтому я не знаю, есть ли такое устройство, которое можно использовать в качестве моста или сервера.

  5. Вот обсуждение примерно такого же требования. Единственное возможное решение, которое он предлагает, - это мост USB-хранилище-Wi-Fi , который выглядит так, как будто он подходит, но стоит дорого.

  6. Существуют USB-переключатели (также называемые общими концентраторами), которые позволяют вам совместно использовать устройство USB между двумя компьютерами. Вы можете использовать один, чтобы разделить устройство хранения между черным ящиком и компьютером. Проблема в том, что они обычно требуют, чтобы пользователь нажимал кнопку для переключения между двумя устройствами, но если вы найдете то, где переключателем можно управлять дистанционно, у вас есть решение.


Спасибо за ваш очень вдумчивый ответ, Жиль. Вы правы в своих предположениях. КПК / мобильный мост - это очень крутая идея, и мне придется еще немного подумать. Другие идеи, которые, по-видимому, в основном ориентированы на локальные сети или роботов, не обсуждаются, поскольку в среде нет локальной сети. Я собираюсь попытаться собрать некоторые POCs и сообщу через день или два. Еще раз спасибо!
Сэм Бисби

2

Я думаю, что это можно сделать с помощью USB-кабеля между хостами и драйвера usbnet для Linux. Совместимость оборудования и подробности о том, как настроить это в Linux, приведены по адресу: http://www.linux-usb.org/usbnet/.


3
Это Ethernet через USB, что хорошо, если устройство поддерживает его ... но у меня сложилось впечатление, что это не так.
Жиль "ТАК - перестать быть злым"

@ Жиль - Вы правы, я не думаю, что черный ящик говорит Ethernet. При этом черный ящик все еще может подхватить и поработать, если он просто обнаружит наличие USB-соединения (через кабель A-A-A). Будет выяснить через день или два. Приветствия.
Сэм Бисби

Ну, я думаю, что по крайней мере устройства, перечисленные на странице драйвера, должны поддерживать это ...
Риккардо Мурри

-1

Я действительно не вижу, как USB вписывается здесь? Почему вы не используете SAMBA или NFS для обмена файлами между этими компьютерами? Может быть, это не работает по какой-то причине, так что вы, вероятно, должны добавить немного больше объяснений ...


Эти протоколы не будут работать, потому что компьютер для чтения не включен по сети. Единственная точка ввода / вывода, которая у меня есть, - это USB, с которого он смотрит и читает файлы. В последней, не тестовой среде я не смогу управлять устройством для чтения (я даже не знаю его программного обеспечения), но оно будет принимать мои файлы. Спасибо!
Сэм Бисби

-1

Даже если вы решите проблемы, связанные с USB, например, сделаете USB-хост похожим на USB-устройство, у вас возникнут проблемы с монтированием файловой системы на двух разных устройствах одновременно.

Если в Box A есть диск (скажем, / dev / sdb1), и он смонтирован и использует файлы из / dev / sdb1, что произойдет, когда при монтировании Box B потребуется доступ к этим файлам? На самом низком уровне USB будет ожидать иметь дело с устройством, а не с файловой системой.


3
Если проблема с оборудованием решена, возможно, существует способ установить блокировку доступа, чтобы только одна сторона могла писать одновременно, и доступ к чтению получал согласованное представление. Некоторые решения в любом случае разрешат доступ к хранилищу только одному компьютеру. Так что да, это проблема, но не подавляющая.
Жиль "ТАК - перестать быть злым"

Это будет ужасно сложно сделать без монтирования и размонтирования файловой системы на Box A при доступе к ней на Box B (и наоборот). Большинство нормальных (не поддерживающих кластер) файловых систем имеют полное право предполагать, что установленные на диске биты не изменяются под ними. Куча структур в памяти будет не синхронизирована. Вам либо нужно смонтировать / размонтировать при переключении между A и B, либо получить совместную работу (т.е. написать новую файловую систему) драйвера файловой системы на блоках A и B.
kbyrd
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.