The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Обеспечение работы многокарточного USB Card Reader в Linux (usb hardware linux scsi)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: usb, hardware, linux, scsi,  (найти похожие документы)
From: Василий Гладкий <hot-orange@narod.ru.> Date: Mon, 10 Mar 2005 18:21:07 +0000 (UTC) Subject: Обеспечение работы многокарточного USB Card Reader в Linux Оригинал: http://hot-orange.narod.ru/chtivo/card-reader.htm Кард-ридер в линуксе. Mini-howto. Вернулся я как-то с работы с Olympus E-10, камера есть такая. И возникло у меня непреодолимое желание завести эту штуку под Линуксом. В Win2000 даже драйвера не нужны, определяется сразу, как съёмный диск, т.е. является кард-ридером. По идее там лежат графические файлы, но можно и музыку таскать, и программы, и вообще-любые файлы. Под линуксом сразу не заработало, пришлось напрячь мозг... Поехали! * Я работал над этим документом в ASPLinux 7.2 * Надеюсь, что ваше ядро версии 2.4 или старше, собрано с включённой поддержкой SCSI и USB. Если с этим всё в порядке, подключаем устройство к порту USB и даём очень простою команду: # modprobe usb-storage Если модуль загрузился, значит всё в порядке. Теперь надо посмотреть появилось ли у нас новое устройство SCSI, узнать это можно с помощью небольшой утилиты sg3-utils (http://www.torque.net/sg/), а можно поступить проще, я использовал такую команду: # cdrecord -scanbus :-) надеюсь вы увидили, что-нибудь типа этого: Cdrecord 1.10 (i686-pc-linux-gnu) Copyright (C) 1995-2001 Jцrg Schilling Linux sg driver version: 3.1.20 Using libscg version 'schily-0.5' scsibus0: 0,0,0 0) 'TEAC ' 'CD-W58E ' '1.0A' Removable CD-ROM 0,1,0 1) * 0,2,0 2) * 0,3,0 3) * 0,4,0 4) * 0,5,0 5) * 0,6,0 6) * 0,7,0 7) * scsibus1: 1,0,0 100) 'OLYMPUS ' 'E-10 ' '1.00' Removable Disk 1,1,0 101) 1,2,0 102) * 1,3,0 103) * 1,4,0 104) * 1,5,0 105) * 1,6,0 106) * 1,7,0 107) * Также можно использвать команду: # cat /proc/scsi/scsi увидеть вы должны что-то такое: Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: TEAC Model: CD-W58E Rev: 1.0A Type: CD-ROM ANSI SCSI revision: 02 Host: scsi1 Channel: 00 Id: 00 Lun: 00 Vendor: OLYMPUS Model: E-10 Rev: 1.00 Type: Direct-Access ANSI SCSI revision: 02 теперь надо смонтировать новое устройство, но сначала узнаем, где оно находится дав команду: # sg_map Увидеть мы должны что-то такое: /dev/sg0 /dev/scd0 /dev/sg1 /dev/sda /dev/sda и есть наш флеш-диск. Стало быть первый раздел на нём будет /dev/sda1, монтируем его: # mount -t vfat /dev/sda1 /mnt/flash Вот и всё! Ваш кард-ридер прикручен к системе. Что бы каждый раз не загружать модуль usb-storage вручную, советую прописать его в hotplug (конечно, если ваш hotplug ничего не знает об этом устройстве, о моём знал :-)) Берём подходящую строку из /etc/hotplug/usb.distmap от другого устройства usb-storage, заменяем в ней Product ID и Vendor ID на соответствующие значения нашего устройства. Узнать Vendor ID и Product ID можно c помощью утилиты USBView (http://usbview.sourceforge.net/) или команды: # cat /proc/bus/usb/devices T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 16 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=07b4 ProdID=0102 Rev= 1.20 S: Manufacturer=OLYMPUS S: Product=E-10 S: SerialNumber=1083046 C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms Копируем модифицированную строку usb-storage 0x0380 0x07b4 0x0102 0x0000 0x0000 0x00 0x00 0x00 0x08 0x03 0x0 0x00000000 в /etc/hotplug/usb.handmap. Теперь модуль usb-storage будет загружаться автоматически при подключении устройства к шине usb. Чтобы облегчить жизнь можно добавить в /etc/fstab следующую строку: /dev/sda1 /mnt/flash vfat noauto,user 0 0 Для того, что бы примонтировать устройство необходимо дать команду: # mount /mnt/flash что бы размонтировать: # umount /mnt/flash Благодарность. Выражаю благодарность Грегу Бэйкеру (Greg Baker) за его работу над документом Using a USB Compact Flash Reader (http://www.cs.sfu.ca/%7Eggbaker/personal/cf-linux) in Linux. Именно этот документ лежал в основе этого мини-howto. Спасибо! Ответственность? А что это такое? :-) Мнение автора по изложенному выше вопросу не является <<истиной последней инстанции>>. Я лишь излагаю то, что проверил, попробовал, <<пощупал>>... Мнения, выводы, результаты и утверждения автора могут не совпадать с вашими, или кого-либо ещё. Данные в статье рекомендации не следует воспринимать как руководство к действию. Все предложения, которые вы, возможно, реализуете после прочтения этой статьи, вы совершаете на свой страх и риск. Автор не берёт на себя ответственности за любой ущерб, который может быть прямо или косвенно причинен использованием рекомендаций, изложенных в данной статье. Авторские права Эта статья, а также её переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но автор статьи желал бы знать о таком использовании. Все переводы и производные работы, выполненные на основании этой татьи должны сопровождаться этой заметкой об авторских правах. Это делается для предотвращения ограничения свободного распространения этой статьи. Исключения могут составить случаи получения особого разрешения у автора, с которым можно связаться по адресу приведенному ниже. Автор хотел бы распространить эту информацию по разным каналам, но при этом сохранить авторские права и быть уведомленным о всех планах распространения статьи. Если у вас возникли вопросы, обратитесь к автору этой статьи по электронной почте: <hot-orange@narod.ru.> © Василий Гладкий, 2003
Заметка про многокарточные кардридеры. Оригинал: http://www.linuxshare.ru/docs/distro/fedora/FedoraFAQ.html#4.5
У меня есть USB card-reader для чтения разных видов флэш-карт. Но система почему-то видит только одно устройство. Что делать? Проблема в том, что ядро в Red Hat и Fedora Core собрано с выключеной опцией CONFIG_SCSI_MULTI_LUN. Из-за этого ядро видит только первое SCSI устройство на канале. Поскольку доступ к USB устройствам в Linux делается через эмуляцию SCSI, то соответственно в card-reader'ах, где несколько слотов под разные типы карт, всегда будет видно только одно первое устройство, которое будет доступно в системе как /dev/sda. Существует два пути решения проблемы. Первый - пересобрать ядро с опцией CONFIG_SCSI_MULTI_LUN. Второй - воспользоваться одной хитрой возможностью псевдофайловой системы /proc. Для этого сперва необходимо узнать для первого USB устройства его SCSI интерфейс, channel, id и lun. Сделать это просто. Нужно посмотреть в файл /var/log/messages после загрузки системы. Вы увидите что-то вроде этого: Nov 15 19:30:01 vitachi kernel: SCSI subsystem initialized Nov 15 19:30:01 vitachi kernel: Initializing USB Mass Storage driver... Nov 15 19:30:01 vitachi kernel: scsi0 : SCSI emulation for USB Mass Storage devices Nov 15 19:30:01 vitachi kernel: Vendor: NEODIO Model: USB Storage-MMC Rev: 305M Nov 15 19:30:01 vitachi kernel: Type: Direct-Access ANSI SCSI revision: 02 Nov 15 19:30:01 vitachi kernel: usbcore: registered new driver usb-storage Nov 15 19:30:01 vitachi kernel: USB Mass Storage support registered. Nov 15 19:30:01 vitachi kernel: Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0 Nov 15 19:30:01 vitachi kernel: Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0 Обратите внимание на текст, который выделен. Т.е. scsi0, channel=0, id=0 и lun=0. Теперь выполняем хитрые манипуляции с файловой системой /proc. Допустим у нас card-reader на четыре разных типа карт. Первое псевдоустройство уже инициализировано. Остаётся инициализировать оставшиеся три. Для этого выполняем следующие команды: echo "scsi add-single-device 0 0 0 1" >/proc/scsi/scsi echo "scsi add-single-device 0 0 0 2" >/proc/scsi/scsi echo "scsi add-single-device 0 0 0 3" >/proc/scsi/scsi Эти команды заставляют ядро просканировать канал SCSI для поиска новых устройств. После их выполнения вы увидите что-то типа этого: Nov 15 19:30:08 vitachi kernel: Vendor: NEODIO Model: USB Storage-CFC Rev: 305M Nov 15 19:30:08 vitachi kernel: Type: Direct-Access ANSI SCSI revision: 02 Nov 15 19:30:08 vitachi kernel: Attached scsi removable disk sdb at scsi0, channel 0, id 0, lun 1 Nov 15 19:30:08 vitachi kernel: Vendor: NEODIO Model: USB Storage-SMC Rev: 305M Nov 15 19:30:08 vitachi kernel: Type: Direct-Access ANSI SCSI revision: 02 Nov 15 19:30:08 vitachi kernel: Attached scsi removable disk sdc at scsi0, channel 0, id 0, lun 2 Nov 15 19:30:08 vitachi kernel: Vendor: NEODIO Model: USB Storage-MSC Rev: 305M Nov 15 19:30:09 vitachi kernel: Type: Direct-Access ANSI SCSI revision: 02 Nov 15 19:30:09 vitachi kernel: Attached scsi removable disk sdd at scsi0, channel 0, id 0, lun 3 Nov 15 19:30:10 vitachi scsi.agent[2739]: disk at /devices/pci0000:00/0000:00:1f.4/usb2/2-2/2-2:1.0/host0/0:0:0:1 Nov 15 19:30:10 vitachi scsi.agent[2749]: disk at /devices/pci0000:00/0000:00:1f.4/usb2/2-2/2-2:1.0/host0/0:0:0:2 Nov 15 19:30:10 vitachi scsi.agent[2759]: disk at /devices/pci0000:00/0000:00:1f.4/usb2/2-2/2-2:1.0/host0/0:0:0:3 Nov 15 19:30:10 vitachi scsi.agent[2759]: disk at /devices/pci0000:00/0000:00:1f.4/usb2/2-2/2-2:1.0/host0/0:0:0:3 Теперь в системе у вас должны стать доступными такие устройства как /dev/sdb, /dev/sdc и /dev/sdd.
Хорошие cтатьи на английском: http://www.linux-sxs.org/hardware/flashreaders.html http://www.cs.sfu.ca/%7Eggbaker/personal/cf-linux http://www.machineofthemonth.org/articles/2002/1216/index.html

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1, Edurad (?), 16:20, 19/05/2006 [ответить]  
  • +/
    Spasibo za statju! :-) S nej smog podklju4itj MSI MegaPlayer 533 na Slackware 10.1! Pri4em sna4ala ne xotel on videtj MMC karto4ku v pleere, no do4itav statju do konca, vse polu4ilosj! Spasibo! :-)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру