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"