НАВИГАЦИЯ - Ширина | Красный | Серый | Белый | Синенький | Антоха |
Начало | Конференция | Архив | Поиск в архиве | Трёп | Члены клуба | Автомобили | База знаний | Вступить!
ЗАЙДИТЕ В КЛУБ
Псевдоним (nick): Пароль:
Вы находитесь в режиме просмотра. Для участия в дискуссиях клуба вам необходимо зарегистрироваться (если вы этого не сделали) и войти в систему.
Начало | Поиск

Читаю ФАК по коре и плачу. :)(+)

Отправлено: riptopaz 06.10.2007 в 00:54
Проблема НА ПУСТОМ МЕСТЕ! Смотрите сами:
 
4.5. У меня есть USB card-reader для чтения разных видов флэш-карт. Но система почему-то видит только одно устройство. Что делать?
 
[FC4] В Fedora Core 4 ядро наконец-то собрано с поддержкой CONFIG_SCSI_MULTI_LUN. Таким образом таких ситуаций быть не должно - по крайней мере два совершенно разных USB card-reader а у меня дома и на работе продиагностировались нормально. Пользователи Fedora Core 3 и ниже могут читать далее.
 
Проблема в том, что ядро в Red Hat и Fedora Core собрано с выключеной опцией CONFIG_SCSI_MULTI_LUN. Из-за этого ядро видит только первое SCSI устройство на канале. Поскольку доступ к USB устройствам в Linux делается через эмуляцию SCSI, то соответственно в card-reader ах, где несколько слотов под разные типы карт, всегда будет видно только одно первое устройство, которое будет доступно в системе как /dev/sda.
 
Существует два пути решения проблемы. Первый - пересобрать ядро [Well))))))))] с опцией 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
 
Обратите внимание на текст, который выделен красным. Т.е. 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
 
[песдец! моск вынесло окончательно!]
 
Теперь в системе у вас должны стать доступными такие устройства как /dev/sdb, /dev/sdc и /dev/sdd.
Вся дискуссия на эту тему:
СТАТИСТИКА
Яндекс цитирования