LINUX.ORG.RU
решено ФорумTalks

Превратить компьютер в USB-флешку


0

0

Наткнулся на тему на линуксфоруме, стало интересно. Существуют ли программы, позволяющие сымитировать USB-накопитель?

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

Я видел подобные программы для КПК на PalmOS и WinCE. Платные, медленные и глючные. А под линукс такие существуют?

★★★★★

дружище, под linux есть кое-что гораздо лучше - открытые сырцы. есть сырцы linux, есть сырцы qemu и virtualbox. дерзай, и родина тебя не забудет.

zh_zh_ru
()

Разве можно подключать два юсб напрямую?

Но вообще модули ядра есть для этого. Искать юсб-гаджет или как-то так.

Yareg ★★★
()

В кпк нет юсб-хабов обычно, а когда есть, то они вероятно отключаются при подключении к пк. По крайней мере, в фрираннере надо вручную переключать режим хаба и режим подключения к пк.

Yareg ★★★
()
Ответ на: комментарий от unrealix

> Чем же Вас не устроило сетевое соединение через USB и Samba ?

Устройство может ничего не знать о Samba. Оно знает только флешки, в лучшем случае с FAT32.

question4 ★★★★★
() автор топика
Ответ на: комментарий от Yareg

> Разве можно подключать два юсб напрямую?

> В кпк нет юсб-хабов обычно, а когда есть, то они вероятно отключаются при подключении к пк. По крайней мере, в фрираннере надо вручную переключать режим хаба и режим подключения к пк.

Тот КПК для которого я это пробовал, действительно, не имел хаба.

> Но вообще модули ядра есть для этого. Искать юсб-гаджет или как-то так.

Из их описания в make menuconfig ничего не понял. Можно ссылки? Мне казалось, это простые устройства, подключаемые к компьютеру. А здесь, наоборот, компьютер должен имитировать такой гаджет.

question4 ★★★★★
() автор топика
Ответ на: комментарий от zh_zh_ru

> сырцы linux, qemu и virtualbox. дерзай, и родина тебя не забудет.

В virtualbox с USB всё время что-то не слава богу. Что касается qemu, как соединить USB-порты 2 виртуальных машин?

И учитывая количество портов линукса на те же КПК, я ожидаю, что что-то подобное уже, минимум, пытались сделать. Хотя бы для прикола.

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

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

Yareg ★★★
()

Вообще общение с гугловским андроидом примерно таким образом и происходит - через провод 2 конца - в телефон мини-usb, в компьютер - usb - sd-карта из телефона появляется как usb-накопитель в компьютере (правда внутри самого телефона она при этом отмонтируется, но это наверное уже детали).

bender ★★★★★
()
Ответ на: комментарий от bender

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

bender ★★★★★
()

Встречал информацию про такой экзотический кабель usb. При ближайшем рассмотрении там использовалось ядро линукс, буфер, и видимо, сетевой протокол. Ну и зачем такой специализированный микрокомп за приличные деньги. Флешку воткнуть руки не отсохнут. Кстати, порт андроида у меня на коммуникаторе через usb расшаривается как ifconfig usb0. Всё равно придётся мудрить с usb-network.

kraftello ★★★★★
()
Ответ на: комментарий от balodja

Но раз уж речь идет о том, что обычный писюковый usb-контроллер здесь не поможет, то как хотя бы называется та железка, которая поможет это реализовать на писюке?

balodja ★★★
()
Ответ на: комментарий от balodja

> Но раз уж речь идет о том, что обычный писюковый usb-контроллер здесь не поможет, то как хотя бы называется та железка, которая поможет это реализовать на писюке?

Лорчую вопрос

EmStudio
()
Ответ на: комментарий от kraftello

> Встречал информацию про такой экзотический кабель usb.

Название не припоминшь?

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

Зачем так сложно? Неужели нельзя проще?

> Ну и зачем такой специализированный микрокомп за приличные деньги.

Если 2 компьютера ничего об этом устройстве не знают и оно должно прозрачно превращать каждый компьютер в mass storage для другого, вероятно придётся извращаться.

Но в моём случае один компьютер обо всём знает, и даже на него можно установить соответствующую плату.

Кстати, о переходниках. Устройство для перезаписи с флешки на флешку стоило 900 р. когда ридер SD-USB стоил 200. Думаю, может существовать и искомый переходник в районе нескольких сотен рублей.

> Флешку воткнуть руки не отсохнут.

Можно придумать ситуацию, когда нужно один раз воткнуть кабель, а потом удалённо управлять компьютером и вторым устройством, не имея возможности что-либо переключать физически.

Если б ситуация была реальной, постил бы в Hardware :)

> Кстати, порт андроида у меня на коммуникаторе через usb расшаривается как ifconfig usb0. Всё равно придётся мудрить с usb-network.

Как он запускается? На реальном железе вместо основной ОС или в эмуляторе?

question4 ★★★★★
() автор топика
Ответ на: комментарий от bender

> общение с гугловским андроидом примерно таким образом и происходит - через провод 2 конца - в телефон мини-usb, в компьютер - usb - sd-карта из телефона появляется как usb-накопитель в компьютере

Примерно это же делали программы для КПК, которые я упомянул в 1-ом посте. Но меня интересуют настольные и ноутбуки.

> и еще следуя этой логике, отдавать компьютер должен будет не одну директорию, а целый раздел, тк. флешка монтируется не как nfs, а как цельное устройство с полным доступом ко всей файловой системе.

А можно создать для него фиктивную файловую систему :) Какой-нибудь файл, содержащий все служебные сектора (MBR, FAT, директории). Распределить имеющиеся файлы по секторам фиктивного диска. А для секторов вне файлов отдавать /dev/zero. Хотя loop проще.

question4 ★★★★★
() автор топика
Ответ на: комментарий от exception13

> нужен usb device контроллер а не host

Спасибо, ищу. Нашёл много упоминаний на чипа Net 2280 (в основном вопросы по их настройке под FreeBSD), дискретных(?) карт(?) и ноутбуков с ним, но самих устройств в продаже пока не нашёл.

question4 ★★★★★
() автор топика
Ответ на: комментарий от sergej

> CONFIG_USB_GADGET в ядре

Это требует наличия специального чипа.

> и USB_FILE_STORAGE

А это как раз работает с файлами-образами или loop.

Спасибо.

question4 ★★★★★
() автор топика
Ответ на: комментарий от EmStudio

> А я вот такую штуку нашел: http://www.dealextreme.com/details.dx/sku.25392

$38 плюс пошлины. Думаю, внутри полноценный компьютер, управляемый через веб-интерфейс. Расшаривающий флешки, принтеры, колонки и камеры. Не удивлюсь, если на нём стоит линукс :)

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

Пошлины для этой страны начинаются после 300 баксов, переплата идет только если сам не покупаешь (барыгам и прочим посредникам). Поищи, на том сайте еще несколько подобных девайсов видел.

EmStudio
()
Ответ на: комментарий от question4

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

EmStudio
()
Ответ на: комментарий от question4

>Примерно это же делали программы для КПК, которые я упомянул в 1-ом посте. Но меня интересуют настольные и ноутбуки.

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

bender ★★★★★
()
Ответ на: комментарий от question4

>Как он запускается? На реальном железе вместо основной ОС?

Да, winglinux, запускается и работает с cd карты. Интересно, какой чип здесь? http://www.nix.ru/autocatalog/hdd_accessories/HDD_External_Aluminum_Case_OTG_... Устройство позволяет копировать на встроенный HDD данные с внешних носителей таких как картоввод, USB flash drive, фотоаппарат etc. Надо почитать про usb on-the-go. Самому интересно стало. По идее, микросхемой определяется флешка и по сигналу (нажатию кнопки, производится копирование на хард) и индикатор переполнения диска есть, значит и служебной информацией обменивается с диском? Всё равно софтовое решение сложнее и плясать надо от qemu ибо виртуалбокс с поддержкой усби не открытый. Кстати, сегодня виртуалбокс обновил, он уже usbfs не требует для usb устройств.

kraftello ★★★★★
()

Вот как в fstab usbfs монтировалась: none /proc/bus/usb usbfs auto,busgid=108,busmode=0775,devgid=108,devmode=0664 0 0

kraftello ★★★★★
()
Ответ на: комментарий от kraftello

> winglinux, запускается и работает с cd карты.

В смысле SD? (CD-card это немного странно для КПК.) Спасибо.

> http://www.nix.ru/autocatalog/hdd_accessories/HDD_External_Aluminum_Case_OTG_... Устройство позволяет копировать на встроенный HDD данные с внешних носителей таких как картоввод, USB flash drive, фотоаппарат etc.

Если копирует С флешек, значит там есть USB-хост, как в PC и более дорогих КПК.

> Надо почитать про usb on-the-go.

Спасибо за название. Получается, хост и гость могут быть объединены в одном устройстве и автоматически задействоваться при необходимости.

question4 ★★★★★
() автор топика
Ответ на: комментарий от bender

>> Но меня интересуют настольные и ноутбуки.

> Ну андроид как раз примечателен тем, что у него внутри крутится настоящий линукс

Я имел в виду не ОС, а аппаратное обеспечение. Как выяснили выше, PC обычно имеют только чип USB-хоста, а КПК — подчинённого устройства (как его правильно называть? guest? slave?) или оба.

question4 ★★★★★
() автор топика

>Существуют ли программы, позволяющие сымитировать USB-накопитель?

Если бы Intel в конце 1990-х не пропихнула свою говношину USB, то сейчас был бы 22 век с FireWire и равноправными hot-plug устройствами.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

> Если бы Intel в конце 1990-х не пропихнула свою говношину USB, то сейчас был бы 22 век с FireWire и равноправными hot-plug устройствами.

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

question4 ★★★★★
() автор топика

Нашёл про OTG? Только посмотрел: USB OTG (аббр. от On-The-Go) — дальнейшее расширение спецификации USB 2.0, предназначенное для лёгкого соединения периферийных USB-устройств друг с другом. Например, цифровой фотоаппарат можно подключать к фотопринтеру напрямую, если они оба поддерживают стандарт USB OTG. К моделям КПК и коммуникаторов, поддерживающих USB OTG, можно подключать некоторые USB-устройства. Обычно это флэш-накопители, цифровые фотоаппараты, клавиатуры, мыши и другие устройства, не требующие дополнительных драйверов. Этот стандарт возник из-за резко возросшей в последнее время необходимости надёжного соединения различных USB-устройств без использования ПК. В данной спецификации устройства обходятся без персонального компьютера, то есть выступают как одноранговые приёмопередатчики (на самом деле только создаётся такое ощущение). В действительности же устройства определяют, какое из них будет мастер-устройством, а какое — подчиняемым. Одноранговый интерфейс USB существовать не может. Если реализация в железе есть, значит должны быть софтовые аналоги.

kraftello ★★★★★
()
Ответ на: комментарий от Novell-ch

Точно, простое решение всегда последним приходит. Это же порт дебиана.

kraftello ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.