Grâce à la réponse de @Affix qui m'a donné la bonne direction à suivre, j'ai trouvé la solution au problème.
Le problème est certainement causé par UDEV comme vous l'avez deviné. Le problème est cette ligne qui se trouve dans la plupart des fichiers UDEV liés au lecteur de cdrom.
Exemple
Sur Fedora 19, il y a le fichier suivant, /usr/lib/udev/rules.d/60-cdrom_id.rules
. Dans ce fichier se trouve la ligne suivante qui coopte le bouton d'éjection pour les appareils CD/DVD.
ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdrom_end"
Vous pouvez contourner le problème et désactiver la capacité d'UDEV à coopter le bouton d'éjection en procédant comme suit :
-
Faire une copie du fichier
60-cdrom_id.rules
$ sudo cp /usr/lib/udev/rules.d/60-cdrom_id.rules /etc/udev/rules.d/.
-
Modifiez cette version copiée du fichier et commentez la ligne contenant la chaîne,
DISK_EJECT_REQUEST
.$ sudoedit /etc/udev/rules.d/60-cdrom_id.rules
-
Enregistrez le fichier et le changement devrait être visible immédiatement !
La solution ci-dessus résout le problème pour les deux eject
et cdctl
. Alors maintenant, les commandes suivantes fonctionnent comme prévu :
verrouiller le lecteur
$ eject -i on /dev/sr0
eject: CD-Drive may NOT be ejected with device button
-or-
$ cdctl -o1
déverrouiller le lecteur
$ eject -i off /dev/sr0
eject: CD-Drive may be ejected with device button
-or-
$ cdctl -o0
Ajoutez la ligne :
DISC_EJECT_REQUEST
aux règles du CD ROM udev. Cela vous permettra de verrouiller avec :
eject -i