| Summary: | Некоторые самартфоны HUAWEI не могут подключиться в качестве mass storage из-за ошибочного срабатывания usb-modeswitch | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Sergey Y. Afonin <asy> |
| Component: | usb-modeswitch-data | Assignee: | Mikhail Efremov <sem> |
| Status: | NEW --- | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P3 | CC: | asy, sem |
| Version: | unstable | ||
| Hardware: | all | ||
| OS: | Linux | ||
| See Also: | https://bugzilla.altlinux.org/show_bug.cgi?id=38208 | ||
|
Description
Sergey Y. Afonin
2016-07-20 22:56:40 MSK
Дополню с форума. Проблема в правиле
# Generic entry for most Huawei devices, excluding Android phones
ATTRS{idVendor}=="12d1", ATTRS{manufacturer}!="Android"
У прблемного смартфона параметры такие:
ATTR{idProduct}=="1037"
ATTR{idVendor}=="12d1"
ATTR{manufacturer}=="Huawei Incorporated"
ATTR{product}=="Android Adapter"
Видимо, проверка на "Android" должна быть не только у атрибута "manufacturer".
Кстати, интересно, а ATTR{} и ATTRS{} одинаково обрабатываются, получается ? Иначе непонятно, каким образом срабатывает правило ATTRS{idVendor}=="12d1".
(В ответ на комментарий №2) > Кстати, интересно, а ATTR{} и ATTRS{} одинаково обрабатываются, получается ? > Иначе непонятно, каким образом срабатывает правило ATTRS{idVendor}=="12d1". Нет, один из них относится к устройству, а другой к родительскому устройству (не помню какой куда). Это написано в документации к udev. Разобрался. Полностью исходное правило выглядит так:
ATTRS{idVendor}=="12d1", ATTRS{manufacturer}!="Android", ATTR{bInterfaceNumber}=="00", ATTR{bInterfaceClass}=="08", RUN+="usb_modeswitch '%b/%k'"
То есть, из-за наличия ATTR{bInterfaceNumber}=="00", ATTR{bInterfaceClass}=="08" оно срабатывает не при добавлении устройства, а добавлении его подустройства (usb-storage получается). В этот момент нужные атрибуты присутствуют, как раз, у родительского устройства, потому и ATTRS.
Проблема, видимо, должна решиться добавлением ATTRS{product}!="Android*" в правило.
|