como detectar CD fisicamente inserido na unidade

1

Como detectar que o CD foi fisicamente inserido na mecânica do CD o mais rápido possível? O CD é montado automaticamente, mas demora 20 segundos, às vezes - e é só então que sei que o CD está inserido ... nada parece me avisar com antecedência.

Eu ficaria feliz com 1 segundo após a inserção do CD para saber que está fisicamente ali (não me importo se está montado ou não).

Eu tentei blkid /dev/sr0 , que deve retornar um valor especial quando o CD é inserido ... mas isso bloqueia até que o CD seja montado.

Então eu tentei o ioctl como aqui mas retorna CDS_NO_DISC e somente CDS_DISC_OK após o CD ser montado (após 20 segundos)

Existe algum arquivo em / sys / proc ou algum lugar em que o CD esteja inserido?

Estou no Linux embarcado ... mas acho que não importa - estou executando o kernel 4.1.18

ATUALIZAÇÃO:

já usamos a regra do udev para montagem ... mas o acionamento desse udev é um pouco mais rápido (2-3 segundos mais rápido, mas ainda mais do que 10-15 segundos) do que a verificação do CD montado. Esta é a regra:

KERNEL=="sr*", ACTION=="change", RUN+="/etc/udev/scripts/mount.sh", ENV{UDISKS_PRESENTATION_HIDE}="1", GOTO="automount_end"
    
por nayana 25.05.2016 / 12:39

0 respostas