Как отключить встроенное устройство чтения карт в Debian?
Я пытаюсь отключить встроенный кард-ридер в моем MBP (5,3), где выполняется тестирование Debian. Я заметил, что powertop перечисляет кард-ридер как основной источник событий пробуждения и хотел бы отключить его, так как мне редко нужно читать SD-карты.
Я нашел это с помощью "dmesg":
scsi 6: 0: 0: 0: APDLE SD Card Reader с прямым доступом 1.00 PQ: 0 ANSI: 0
и это из "sg_scan -i":
/ dev / sg2: канал scsi6 =0 id=0 lun=0 [em] APPLE SD Card Reader 1.00 [rmb=1 cmdq=0 pqual=0 pdev=0x0]
Я не знаю, где найти устройство в /proc, и для этого устройства не загружены модули (полагаю, что оно встроено в ядро).
Поэтому в идеале я хотел бы иметь возможность включать / отключать это устройство без перекомпиляции ядра. Это возможно?
1 ответ
Скорее всего, карт-ридер является USB-накопителем. Однако он сам по себе не вызывает пробуждений - вместо этого HAL или udisks должны опрашивать его, чтобы обнаружить изменения носителя, и этот опрос отображается в powertop. Можно отключить этот опрос, но тогда изменения носителя не будут обнаружены (однако устройство все равно будет работать, обычно попытка доступа к / dev / sdX приведет к тому, что ядро обнаружит изменение носителя и обнаружит разделы, а затем смонтирует эти разделы. будет возможно).
Вы можете искать процессы опроса в вашей системе - HAL и udisks показывают имена опрашиваемых устройств в командной строке, видимые в ps
выход:
пс топор | grep / dev / sdX
С HAL есть отдельный hald-addon-storage
процесс для каждого опрашиваемого устройства; с удисками есть один udisks-daemon
процесс для всех опрашиваемых устройств в системе.
Отключить опрос для HAL легко - для этого есть специальная команда:
hal-disable-polling --device / dev / sdX
Если вы хотите включить опрос позже, используйте ту же команду с дополнительной --enable-polling
вариант.
Для новых удисков ситуация сложнее. Во-первых, вам нужен достаточно новый пакет udisks: в ошибке Debian #559562 говорится, что udisks >= 1.0.0~git20100223.a38230-2 необходим. Затем вам нужно добавить правило udev для вашего устройства, как описано в http://bugs.freedesktop.org/show_bug.cgi?id=26508. Для вашего устройства правило должно выглядеть так:
SUBSYSTEM == "блок", ENV{ID_VENDOR}=="APPLE*", ENV{ID_MODEL}=="Устройство чтения карт SD *", ENV{UDISKS_DISABLE_POLLING}="1"
Поместите это правило во вновь созданный файл в /etc/udev/rules.d/
(например, 99-local.rules
).