Как я отключаю свой созданный в Картридере в Debian?

Я пытаюсь отключить встроенный картридер в своем MBP (5,3) рабочее тестирование Debian. Я заметил, что powertop перечисляет картридер как основной фактор, будят события и хотел бы отключить его, поскольку я редко должен читать SD-карты.

Я нашел это с "dmesg":

scsi 6:0:0:0: прямой доступ Читатель SD-карты APPLE 1.00 PQ: 0 ANSI: 0

и это от "sg_scan-i":

/dev/sg2: scsi6 channel=0 id=0 lun=0 [их] Читатель SD-карты APPLE 1.00 [rmb=1 cmdq=0 pqual=0 pdev=0x0]

Я не знаю, где найти устройство в/proc и нет никаких модулей, загруженных для этого устройства (я предполагаю, что это имеет поддержку, скомпилированную в ядро).

Так, идеально, я хотел бы смочь позволить/запретить это устройство без ядра, перекомпилировали. Действительно ли это возможно?

3
задан 11.12.2010, 12:43

1 ответ

Скорее всего, картридер является устройством хранения USB. Однако это не вызывает пробуждения отдельно — вместо этого, HAL или udisks должны опросить его для обнаружения изменений медиа, и этот опрос обнаруживается в powertop. Возможно отключить этот опрос, но затем изменения медиа не будут обнаружены (однако, устройство будет все еще работать, обычно пытаться получить доступ к/dev/sdX заставит ядро обнаруживать медиа, изменяют и обнаруживают разделы, затем монтируя, что те разделы будут возможны).

Можно искать процессы опроса в системе — HAL и шоу udisks опрошенные имена устройств в командной строке, видимой в ps вывод:

ps ax | grep /dev/sdX

С HAL существует отдельное hald-addon-storage процесс для каждого опрошенного устройства; с udisks существует сингл udisks-daemon процесс для всех опрошенных устройств в системе.

Отключение опрашивающий относительно HAL легко — существует специальная команда для него:

hal-disable-polling --device /dev/sdX

Если Вы хотите повторно позволить опросить позже, используйте ту же команду с дополнительным --enable-polling опция.

Для более нового udisks ситуация более сложна. Во-первых, Вам нужен достаточно новый udisks пакет: ошибка Debian № 559562 говорит, что udisks> = 1.0.0~git20100223.a38230-2 необходим. Затем, необходимо добавить правило udev для устройства, как описано в http://bugs.freedesktop.org/show_bug.cgi?id=26508#c0. Для Вашего устройства правило должно, вероятно, быть похожим:

SUBSYSTEM=="block", ENV{ID_VENDOR}=="APPLE*", ENV{ID_MODEL}=="SD Card Reader*", ENV{UDISKS_DISABLE_POLLING}="1" 

Поместите это правило в недавно созданный файл в /etc/udev/rules.d/ (например, 99-local.rules).

3
ответ дан 08.12.2019, 01:07

Теги

Похожие вопросы