реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> несколько logical unit в Mass Storage, как правильно найти флешку
zuy
сообщение Jun 11 2009, 18:49
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 173
Регистрация: 30-11-05
Из: San Francisco
Пользователь №: 11 593



Есть девайс с усб хостом, который работает с флешками.
Все было ОК пока не начали появляться флешки с технологией U3. Они на компе показываются двумя устройствами CD и флешкой.
Часть таких флешек работает в девайсе, а часть нет.

Оказалось что код хоста не выбирает нужный логический юнит после запроса GetMaxLUN, а вместо этого работает всегда с 0-м.

Для проверки, я сделал возврат запроса INQUIRY для юнита 0 и 1. меняя поле bCBWLUN в CBW.
И получаю что ответ на INQUIRY для обоих номеров юнита абсолютно одинаковый.
Для рабочих флешек PERIPHERAL DEVICE TYPE = 0 в обоих юнитах,
для не рабочих там 5 тоде для обоих.

Подскажите как мне правильно для такого вида флешек правильно выделить именно флешевый девайс и работать с ним?
Go to the top of the page
 
+Quote Post
Deka
сообщение Jun 11 2009, 19:43
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 248
Регистрация: 18-07-06
Из: Сочи
Пользователь №: 18 890



А есть вариант сделать выбор простым перебором? Есть что-то, что отличает один юнит от другого? Например файловая система или наличие файла... Т.е. открыли юнит и проверили его. Если не он - открыли следующий.
Go to the top of the page
 
+Quote Post
zuy
сообщение Jun 12 2009, 08:01
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 173
Регистрация: 30-11-05
Из: San Francisco
Пользователь №: 11 593



Цитата(Deka @ Jun 11 2009, 22:43) *
А есть вариант сделать выбор простым перебором? Есть что-то, что отличает один юнит от другого? Например файловая система или наличие файла... Т.е. открыли юнит и проверили его. Если не он - открыли следующий.


Дело в том, что от типа юнита зависит поддерживаемый набор команд. До файловой системы я не могу добраться.
Следующим запросом идет Read Capacity(из набора SCSI т.к. предпологается что присутствует флешка) и не работающие флешки на нем отказываются работать.
Я пробовал жестко указать в CBW номер юнита 1 вместо 0.
Ситуация не поменялась вообще никак, флешки которые работали так и остались рабочими, а те которые не работали так и не работают.
Может я неправильно юниты переключаю?
Go to the top of the page
 
+Quote Post
galjoen
сообщение Jun 13 2009, 04:35
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(zuy @ Jun 11 2009, 22:49) *
И получаю что ответ на INQUIRY для обоих номеров юнита абсолютно одинаковый.
Для рабочих флешек PERIPHERAL DEVICE TYPE = 0 в обоих юнитах,
для не рабочих там 5 тоде для обоих.

Что-то мне такие флешки не попадались.
Сделал самодельный MassStorage (несколько лет назад). Пробовал делать и в виде нескольких юнитов (один токо для чтения). При изменении поля PERIPHERAL DEVICE TYPE в INQUIRY (для экспериментов) на не 0 комп лез в инет за обновлением... Видимо сейчас ситуация поменялась.

А вы не пробовали смотреть снуппером как комп с такими флешками работает? Что там у него вместо Read Capacity? Выложите лог если можно.
Go to the top of the page
 
+Quote Post
zuy
сообщение Jun 15 2009, 19:55
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 173
Регистрация: 30-11-05
Из: San Francisco
Пользователь №: 11 593



Цитата(galjoen @ Jun 13 2009, 07:35) *
Что-то мне такие флешки не попадались.
Сделал самодельный MassStorage (несколько лет назад). Пробовал делать и в виде нескольких юнитов (один токо для чтения). При изменении поля PERIPHERAL DEVICE TYPE в INQUIRY (для экспериментов) на не 0 комп лез в инет за обновлением... Видимо сейчас ситуация поменялась.

А вы не пробовали смотреть снуппером как комп с такими флешками работает? Что там у него вместо Read Capacity? Выложите лог если можно.


Проблема решилась. пересмотрел логи.
Оказалось, просто некоторые флешки тормознутые и надо в цикле довольно долго делать TEST_UNIT_READY/GET SENSE пока не сработает ( на одной 440 итераций проходит до готовности)
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 20:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01382 секунд с 7
ELECTRONIX ©2004-2016