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*" в правило. |