Como desabilito meu Card Reader integrado no Debian?

3

Estou tentando desativar o leitor de cartão interno no meu MBP (5,3) executando o teste Debian. Percebi que o powertop lista o leitor de cartão como um dos principais contribuidores de eventos de ativação e gostaria de desativá-lo, já que raramente preciso ler cartões SD.

Eu encontrei isso com "dmesg":

scsi 6:0:0:0: Direct-Access APPLE SD Card Reader 1.00 PQ: 0 ANSI: 0

e isso de "sg_scan -i":

/dev/sg2: scsi6 channel=0 id=0 lun=0 [em] APPLE SD Card Reader 1.00 [rmb=1 cmdq=0 pqual=0 pdev=0x0]

Eu não sei onde encontrar o dispositivo em / proc e não há módulos carregados para este dispositivo (suponho que ele tenha suporte compilado no kernel).

Então, idealmente, eu gostaria de poder habilitar / desabilitar este dispositivo sem uma recompilação do kernel. Isso é possível?

    
por zcid 11.12.2010 / 01:50

1 resposta

3

O mais provável é que o leitor de cartões seja um dispositivo de armazenamento USB. No entanto, ele não causa wakeups por si só - em vez disso, o HAL ou os udisks precisam pesquisá-lo para detectar as alterações de mídia, e essa pesquisa é exibida no powertop. É possível desabilitar esta pesquisa, mas as mudanças de mídia não serão detectadas (no entanto, o dispositivo ainda funcionará, geralmente tentando acessar / dev / sd X fará com que o kernel detecte a mudança de mídia e detectar partições, então a montagem dessas partições será possível).

Você pode procurar os processos de pesquisa em seu sistema - HAL e udisks mostram nomes de dispositivos pesquisados na linha de comando visível na ps output:

ps ax | grep /dev/sdX

Com o HAL, há um processo hald-addon-storage separado para cada dispositivo pesquisado; com os udisks, há um único processo udisks-daemon para todos os dispositivos pesquisados no sistema.

Desabilitar o polling para HAL é fácil - existe um comando especial para isso:

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

Se você quiser reativar a sondagem mais tarde, use o mesmo comando com a opção --enable-polling adicional.

Para os udisks mais recentes, a situação é mais complicada. Primeiro, você precisa de um novo pacote udisks: o bug # 559562 do Debian diz que os udisks > = 1.0.0 ~ git20100223.a38230-2 são necessários. Em seguida, você precisa adicionar uma regra do udev ao seu dispositivo, conforme descrito no link . Para o seu dispositivo, a regra provavelmente deve ser:

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

Coloque esta regra em um arquivo recém-criado em /etc/udev/rules.d/ (por exemplo, 99-local.rules ).

    
por 11.12.2010 / 15:30