Comments 33
Почему бы не записать туда большой файл, а потом не прочитать его оттуда, попутно измеряя скорость чтения?
Месье не ищет легких путей.
Тем более, что флэшка то может и поддреживать USB 3.0, но скорость ее будет низкая.
Если зайти на usb-flash-drives.whoratesit.com/ и посмотреть результаты по флешкам Kingston DataTraveler 3.0 (автор не уточнил модель), то можно увидить разницу в 5-6 раз по скорости на разных моделях!
Если зайти на usb-flash-drives.whoratesit.com/ и посмотреть результаты по флешкам Kingston DataTraveler 3.0 (автор не уточнил модель), то можно увидить разницу в 5-6 раз по скорости на разных моделях!
Если скорость будет ниже, чем 33Мб/с, то уже не имеет значения, 3.0 там или 2.0
Честно говоря, исследование производит сильное впечатление.
Но предпочитаю заливать многогиговый видеофайл, беспрерывно глядя на показатель скорости передачи в файловом менеджере.
Конечно, получается не настолько надёжно; но зато на порядок проще, чем в DOS перезагружаться.
Но предпочитаю заливать многогиговый видеофайл, беспрерывно глядя на показатель скорости передачи в файловом менеджере.
Конечно, получается не настолько надёжно; но зато на порядок проще, чем в DOS перезагружаться.
Да и присутствует некоторая медитативность в наблюдении за скоростью и прогрессбаром.
предпочитаю заливать многогиговый видеофайл, беспрерывно глядя на показатель скорости передачи в файловом менеджере
time $(cp file.avi /mnt/myfleshka && umount /mnt/myfleshka)
же :-)Хаб «Интерфейсы». Ну-ну.
Я аж на календарь посмотрел, но нет, не пятница.
Ничего вроде
Статье не хватает тега «садомазо».
Воспользуемся документацией Intel 8 Series / С220 Series Chipset Family Platform Controller Hub Datasheet
Я аж на календарь посмотрел, но нет, не пятница.
Ничего вроде
lsusb -v
перед этим на ум не пришло?Если у Вас есть накопитель USB 3.0, представьте, пожалуйста, результат работы lsusb -v, чтобы дать развернутый ответ.
Сейчас в ближайшем доступе вообще только Mac OS и без USB 3.0 портов.
lsusb -v показывает поле bcdUSB для устройств.
Сам не проверял, не на чем.
lsusb -v показывает поле bcdUSB для устройств.
A device must report a value of 0300H in the bcdUSB field of its Device Descriptor
Сам не проверял, не на чем.
Не могу ответить за Linux, но в OSX:
~ $ system_profiler SPUSBDataType USB Hi-Speed Bus: ... iPhone: Product ID: 0x12a8 Vendor ID: 0x05ac (Apple Inc.) Version: 6.02 Serial Number: Speed: Up to 480 Mb/sec Manufacturer: Apple Inc. Location ID: 0xfd120000 / 4 Current Available (mA): 500 Current Required (mA): 500 Extra Operating Current (mA): 500 Bluetooth USB Host Controller: Product ID: 0x821f Vendor ID: 0x05ac (Apple Inc.) Version: 1.31 Speed: Up to 12 Mb/sec Manufacturer: Apple Inc. Location ID: 0xfa113000 / 6 Current Available (mA): 500 Current Required (mA): 0
1. Дескрипторы устройств, доступные для просмотра с помощью различных информационных утилит индицируют потенциальные возможности устройства. Скоростной режим, установленный для USB порта при подключении устройства, не всегда соответствует возможностям, декларированным в дескрипторах.
Устройство, декларирующее поддержку USB 3.0, может работать в режиме USB 2.0 из-за заводских недоработок, неисправного кабеля и многих других причин. При этом содержимое дескрипторов может указывать на поддержку режима USB 3.0.
Спецификацией USB рекомендовано, чтобы устройство выдавало разный набор дескрипторов в зависимости от реальной установленной скорости. Но у нас нет гарантии, что эта рекомендация соблюдена разработчиками флешки.
Конечно, содержимое дескрипторов устройства — это более достоверный источник информации, чем надпись на флешке и клятвы продавца. Но по причинам, указанным выше, достоверность отлична от 100 процентов.
Именно стремление довести достоверность до 100% побудила нас на экстремально низкоуровневые исследования.
2. Другой метод – проследить в диспетчере устройств, какой контроллер является родительским для флешки (USB 2.0 EHCI или USB 3.0 XHCI), также неэффективен, так как, согласно спецификации, контроллер USB 3.0 XHCI может поддерживать все виды устройств: от Low-Speed до Super Speed. Поэтому, из того, что для флешки родительским контроллером является xHCI не следует, что устройство работает в режиме Super Speed.
Устройство, декларирующее поддержку USB 3.0, может работать в режиме USB 2.0 из-за заводских недоработок, неисправного кабеля и многих других причин. При этом содержимое дескрипторов может указывать на поддержку режима USB 3.0.
Спецификацией USB рекомендовано, чтобы устройство выдавало разный набор дескрипторов в зависимости от реальной установленной скорости. Но у нас нет гарантии, что эта рекомендация соблюдена разработчиками флешки.
Конечно, содержимое дескрипторов устройства — это более достоверный источник информации, чем надпись на флешке и клятвы продавца. Но по причинам, указанным выше, достоверность отлична от 100 процентов.
Именно стремление довести достоверность до 100% побудила нас на экстремально низкоуровневые исследования.
2. Другой метод – проследить в диспетчере устройств, какой контроллер является родительским для флешки (USB 2.0 EHCI или USB 3.0 XHCI), также неэффективен, так как, согласно спецификации, контроллер USB 3.0 XHCI может поддерживать все виды устройств: от Low-Speed до Super Speed. Поэтому, из того, что для флешки родительским контроллером является xHCI не следует, что устройство работает в режиме Super Speed.
Спасибо за разъяснения, было бы хорошо это в статье сразу написать, чтоб понятно было зачем всё так сложно.
Но в итоге получается что всё равно тестируется не конечное устройство, а связка конкретный хост-контроллер и конкретное устройство. Ведь недоработки могут быть и в контроллере теоретически. Либо недоработки в устройстве могут привести к тому, что с разными контроллерами будут установлены разные скоростные режимы.
Вот еще что нашел
У меня /proc/bus/usb отсутствует, но зато есть
Как Вы думаете, можно этому доверять?
Но в итоге получается что всё равно тестируется не конечное устройство, а связка конкретный хост-контроллер и конкретное устройство. Ведь недоработки могут быть и в контроллере теоретически. Либо недоработки в устройстве могут привести к тому, что с разными контроллерами будут установлены разные скоростные режимы.
Вот еще что нашел
/proc/bus/usb/devices output format:
Legend:
d = decimal number (may have leading spaces or 0's)
x = hexadecimal number (may have leading spaces or 0's)
s = string
Topology info:
T: Bus=dd Lev=dd Prnt=dd Port=dd Cnt=dd Dev#=ddd Spd=dddd MxCh=dd
| | | | | | | | |__MaxChildren
| | | | | | | |__Device Speed in Mbps
| | | | | | |__DeviceNumber
| | | | | |__Count of devices at this level
| | | | |__Connector/Port on Parent for this device
| | | |__Parent DeviceNumber
| | |__Level in topology for this bus
| |__Bus number
|__Topology info tag
Speed may be:
1.5 Mbit/s for low speed USB
12 Mbit/s for full speed USB
480 Mbit/s for high speed USB (added for USB 2.0);
also used for Wireless USB, which has no fixed speed
5000 Mbit/s for SuperSpeed USB (added for USB 3.0)
У меня /proc/bus/usb отсутствует, но зато есть
root@server:~# cat /sys/bus/usb/devices/usb*/speed
480
480
12
Как Вы думаете, можно этому доверять?
С точки зрения производительности — вполне. Если судить с точки зрения функциональности, то информации недостаточно.
Предположительно, у Вас в эксплуатации достаточно новая, но не самая современная платформа, оснащенная контроллерами USB 1.1 и USB 2.0. High-Speed устройства скоммутированы на EHCI, а Full-Speed — на UHCI/OHCI (скорее всего, UHCI, так как вероятнее всего — это Intel). Для недоразумений места почти не осталось.
И тем не менее, какими бы могли быть сюрпризы в данной архитектуре USB?
Сценарий 1. Устройство с характеристикой 12 Mbit/s может оказаться два-нольным, но подключенным к USB 1.1 UHCI/OHCI по причине деградации контактов разъема или в силу плохого качества интерфейсного кабеля (косичек подключения разъемов на лицевой панели десктопа). Это легко определяется любым софтом, типа USB Info, UTLite etc., так как USB 2.0 устройство «отдает» два-нольные дескрипторы.
Сценарий 2. У Вас платформа типа Intel P55 или новее, но без встроенного в чипсет USB 3.0, реализованная не с помощью контроллеров-компаньонов 2.0+1.1, а с использованием архитектуры Rate Matching Hub. По сути, ситуация аналогична выше упомянутой, с той лишь разницей, что сложнее понять, почему устройство работает по Full-Speed. Но причины возможного даунгрейда прежние.
С появлением USB 3.0 количество вариантов увеличивается. Ничто не мешает китайскому производителю сделать два-нольную флешку, коммутируя ее автономный контроллер на пять ламелей разъема USB 3.0 (заглушив при этом четыре ламели USB 2.0). Девайс при этом будет подключен к xHCI-контроллеру на системной платформе, но не будет обеспечивать Super Speed, передавая данный по High-Speed. Такая ситуация очень cложно отслеживается. Особенно, если не загружена драйверная поддержка USB Flash. В силу того, что при корректной реализации платформы все USB 3.0 устройства до этого момента должны по умолчанию коммутироваться на USB 2.0 контроллер.
Предположительно, у Вас в эксплуатации достаточно новая, но не самая современная платформа, оснащенная контроллерами USB 1.1 и USB 2.0. High-Speed устройства скоммутированы на EHCI, а Full-Speed — на UHCI/OHCI (скорее всего, UHCI, так как вероятнее всего — это Intel). Для недоразумений места почти не осталось.
И тем не менее, какими бы могли быть сюрпризы в данной архитектуре USB?
Сценарий 1. Устройство с характеристикой 12 Mbit/s может оказаться два-нольным, но подключенным к USB 1.1 UHCI/OHCI по причине деградации контактов разъема или в силу плохого качества интерфейсного кабеля (косичек подключения разъемов на лицевой панели десктопа). Это легко определяется любым софтом, типа USB Info, UTLite etc., так как USB 2.0 устройство «отдает» два-нольные дескрипторы.
Сценарий 2. У Вас платформа типа Intel P55 или новее, но без встроенного в чипсет USB 3.0, реализованная не с помощью контроллеров-компаньонов 2.0+1.1, а с использованием архитектуры Rate Matching Hub. По сути, ситуация аналогична выше упомянутой, с той лишь разницей, что сложнее понять, почему устройство работает по Full-Speed. Но причины возможного даунгрейда прежние.
С появлением USB 3.0 количество вариантов увеличивается. Ничто не мешает китайскому производителю сделать два-нольную флешку, коммутируя ее автономный контроллер на пять ламелей разъема USB 3.0 (заглушив при этом четыре ламели USB 2.0). Девайс при этом будет подключен к xHCI-контроллеру на системной платформе, но не будет обеспечивать Super Speed, передавая данный по High-Speed. Такая ситуация очень cложно отслеживается. Особенно, если не загружена драйверная поддержка USB Flash. В силу того, что при корректной реализации платформы все USB 3.0 устройства до этого момента должны по умолчанию коммутироваться на USB 2.0 контроллер.
Флешка покупалась для того, чтобы проверить ряд возможностей новой и неисследованной платформы Tyan S5533. Подключение ее к EHCI на другой плате показало, что в дескрипторах указаны значения, соответствующие High Speed. Возникла идея, что при подключении к xHCI контроллер флешки должен выдавать другие дескрипторы, соответствующий Super Speed. Как говорится, идея нашлась, а осадочек остался :)
Пришлось рыть фундаментально.
Пришлось рыть фундаментально.
Насколько я помню, теоретическая максимальная скорость USB 2.0 недостижима из-за высокой паузы между сигналами. На практике максимальная скорость раза в полтора меньше
Еще один важный момент: содержимое дескрипторов USB устройства (которые доступны для просмотра средствами ОС или отдельными утилитами), используется для информирования программного обеспечения о поддерживаемых режимах и не используется в процедуре выбора скоростного режима порта. Последняя выполняется исключительно аппаратно, ведь чтение дескрипторов можно выполнить только после того, как скорость порта уже установлена. Именно поэтому существует вероятность «подлога» – декларации режима USB 3.0 для устройства, не поддерживающего этот режим. При этом такой «подлог» не приведет к нарушению работы устройства, поскольку дескрипторы не имеют прямого влияния на процедуру выбора скоростного режима. Из этого следует, что мы не можем полностью доверять содержимому дескрипторов.
В USB 3.0 устройстве мы имеем олдскульный USB 2.0 интерфейс из 4-х сигналов (Дата+, Дата-, земля и питание) и пять линий для общения собственно по USB 3.0 (извините, напомню: RX+, RX- и TX+, TX- плюс земля). Недобросовестный производитель может использовать только сигналы USB2, затерминировав или оставив в воздухе сигналы из USB 3.0. Процесс распознавания флешки в этом случае будет выполняться только по интерфейсу USB 2.0.
Но? несмотря на это, флешка может обслуживаться контроллером XHCI (его USB2-подсистемой). Напомним, что контроллер XHCI состоит из двух подсистем: USB2.0 и USB3.0. Поэтому из того факта, что в диспетчере устройств родительским устройством является контроллер XHCI, не следует, что используется режим Super-Speed.
Но? несмотря на это, флешка может обслуживаться контроллером XHCI (его USB2-подсистемой). Напомним, что контроллер XHCI состоит из двух подсистем: USB2.0 и USB3.0. Поэтому из того факта, что в диспетчере устройств родительским устройством является контроллер XHCI, не следует, что используется режим Super-Speed.
Один из вариантов реакции — переход в режим USB 2.0 с использованием "старых" сигнальных цепей USB 2.0.
Даже в том случае, если контроллер откажется работать с устройством и не выполнит переход в режим
USB 2.0 аппаратно, то это может сделать драйвер, изменив содержимое регистров Port Super Speed Enable
(обнулив бит, соответствующий данному порту).
Если мы тестируем, используя готовые драйвера и утилиты, то данный процесс от нас скрыт. Именно поэтому решено было работать напрямую с оборудованием.
Даже в том случае, если контроллер откажется работать с устройством и не выполнит переход в режим
USB 2.0 аппаратно, то это может сделать драйвер, изменив содержимое регистров Port Super Speed Enable
(обнулив бит, соответствующий данному порту).
Если мы тестируем, используя готовые драйвера и утилиты, то данный процесс от нас скрыт. Именно поэтому решено было работать напрямую с оборудованием.
Я может чего не понимаю но не проще ли сделать
и посмотреть на скорость записи?
dd if=bigfile of=/dev/sda1
и посмотреть на скорость записи?
Спасибо за статью. Лишней данная публикация, не будет!
Sign up to leave a comment.
Как убедиться, что флешка работает в USB 3.0?