Berkat jawaban @Affix yang memberi saya arah yang tepat untuk dituju, saya telah menemukan solusi untuk masalah tersebut.
Masalahnya pasti disebabkan oleh UDEV seperti yang Anda duga. Masalahnya adalah baris ini yang ada di sebagian besar file UDEV yang terkait dengan drive cdrom.
Contoh
Di Fedora 19 ada file berikut, /usr/lib/udev/rules.d/60-cdrom_id.rules
. Dalam file ini adalah baris berikut yang mengkooptasi tombol eject untuk perangkat CD/DVD.
ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdrom_end"
Anda dapat mengatasi masalah ini dan menonaktifkan kemampuan UDEV untuk mengkooptasi tombol keluarkan dengan melakukan hal berikut:
-
Buat salinan file
60-cdrom_id.rules
$ sudo cp /usr/lib/udev/rules.d/60-cdrom_id.rules /etc/udev/rules.d/.
-
Edit versi file yang disalin ini dan beri komentar pada baris yang berisi string,
DISK_EJECT_REQUEST
.$ sudoedit /etc/udev/rules.d/60-cdrom_id.rules
-
Simpan file dan perubahannya akan segera terlihat!
Solusi di atas memperbaiki masalah untuk kedua eject
dan cdctl
. Jadi sekarang perintah berikut berfungsi seperti yang diharapkan:
mengunci drive
$ eject -i on /dev/sr0
eject: CD-Drive may NOT be ejected with device button
-or-
$ cdctl -o1
buka kunci drive
$ eject -i off /dev/sr0
eject: CD-Drive may be ejected with device button
-or-
$ cdctl -o0
Tambahkan baris:
DISC_EJECT_REQUEST
ke aturan CD ROM udev. Ini akan memungkinkan Anda untuk mengunci dengan:
eject -i