Ubuntu Hardy: Testar variáveis de ambiente nas regras do udev parece não funcionar

5

Eu tenho um Ubuntu 8.04 LTS (edição de servidor), e eu preciso escrever uma regra do udev para ele agir ao conectar um pen drive USB. No entanto, preciso de uma ação diferente, dependendo do sistema de arquivos da unidade. Eu sei que posso usar a variável de ambiente ID_FS_TYPE para verificar o sistema de arquivos na unidade.

Seguindo as instruções encontradas aqui , eu tentei uma regra do udev como tal:

KERNEL!="sd[a-z][0-9]", GOTO="my_udev_rule_end"
ACTION=="add", RUN+="/usr/bin/touch /tmp/test_udev_%E{ID_FS_TYPE}"
ACTION=="add", ENV{ID_FS_TYPE}=="vfat", RUN+="/usr/bin/touch /tmp/test_udev_it_works"
LABEL="my_udev_rule_end"

No entanto, quando eu conecto um pendrive com um sistema de arquivos vfat (que deve acionar ambas as regras), acabo com um arquivo chamado /tmp/test_udev_vfat , significando que a primeira regra foi acionada com êxito, e que a variável de ambiente ID_FS_TYPE é "vfat", mas eu não tenho o outro arquivo, o que significa que embora eu saiba que a variável ID_FS_TYPE env é "vfat", não consigo verificar se existe uma correspondência.

Eu tentei fazer o google, mas praticamente todos os resultados parecem assumir ENV{ID_FS_TYPE}=="vfat" . Eu também testei exatamente a mesma regra do udev no servidor Ubuntu 10.04 LTS, e tenho o mesmo resultado.

Provavelmente estou sentindo falta de algo muito simples, mas não entendi. Alguém vê o que há de errado com minha regra do udev que impediria a correspondência no ENV {ID_FS_TYPE}?

Obrigado.

    
por Fred 26.01.2011 / 22:42

2 respostas

1

Tente adicionar a seguinte linha no início do seu arquivo:

IMPORTAR {programa}="/ sbin / blkid -o udev -p% N"

    
por 17.02.2011 / 12:52
0

Você tentou adicionar esta linha?

KERNEL == "sd [a-z] []", IMPORTAR {programa}="/ lib / udev / vol_id / dev /% k"

Você pode localizar "vol_id" em outro lugar.

    
por 13.10.2011 / 09:54

Tags