Fedora 14'e kadar cdctl
Dizüstü bilgisayarımdaki CD / DVD çıkarma düğmesini etkinleştirmek / devre dışı bırakmak için başarıyla kullanıyordum (Thinkpad T410). Ne yazık ki şimdi çalışmayı durdurdu.
Bu 2 soruda tartışılan yöntemlere başvurdum:
- Linux dizüstü bilgisayarda CD / DVD düğmesini devre dışı bırak (Ubuntu)
- Linux çalıştıran bir Thinkpad'deki DVD çıkarma düğmesini devre dışı bırakın
Hiçbiri benim için çalışmadı. Bu cdctl
yüzden, uzun süre çalıştığı için onunla kırık olanı düzeltemeyip düzeltemeyeceğimizi görmek için geri dönüyorum .
Sorun ayıklama
Bu yüzden cdctl
anahtarlarla başlayarak çoğu şeyin gayet iyi çalıştığını görüyorum.
Örnekler
Bunlar işe yarıyor.
sürücüyü çıkarır
$ cdctl -e
liste yetenekleri
$ cdctl -k
Tray close : 1
Tray open : 1
Can disable eject : 1
Selectable spin speed : 1
Is a jukebox : 0
Is multisession capable: 1
Can read the MCN (UPC) : 1
Can report media change: 1
Can play audio discs : 1
Can do a hard reset : 1
Can report drive status: 1
Bu listeye göre cdctl
, çıkarma düğmesini etkinleştirebileceğini / devre dışı bırakabileceğini düşünüyor.
Can disable eject : 1
Bu yüzden sorunu ayıklamaya devam ediyorum.
Hata ayıklama cdctl
Yani rakam bir yapalım strace
üzerinde cdctl
o ne olup bittiğini biraz ışık tutabilir görmek için.
$ strace cdctl -o1
...
brk(0) = 0x1371000
open("/dev/cdrom", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory)
open("/dev/cd", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory)
open("/dev/scd0", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory)
open("/dev/sr0", O_RDONLY|O_NONBLOCK) = 3
ioctl(3, CDROM_LOCKDOOR, 0x1) = 0
close(3) = 0
exit_group(0) = ?
+++ exited with 0 +++
İlginçtir ki cdctl
düğmeyi devre dışı bıraktığını düşünüyor gibi görünüyor .
$ strace cdctl -o1
ioctl(3, CDROM_LOCKDOOR, 0x1) = 0
$ strace cdctl -o0
ioctl(3, CDROM_LOCKDOOR, 0) = 0
NOT: Bu hakkı anlarsam, 0'ın döndürülmesi başarılı olduğu anlamına gelir.
Burada dikkatimi çeken bir şey, cdctl
etkileşime girmeye çalışan cihazların listesiydi . Ben de "ile bu cihazları ne denerseniz düşünce Yani eject
"?
çıkarma komutu
Yıllar önce kullandığım diğer komutlardan biri eject
de CD / DVD cihazıyla etkileşim kurma komutuydu. Bu komutun artık benzer bir adlandırılmış anahtara sahip olduğunu fark ettim:
$ eject --help
-i, --manualeject <on|off> toggle manual eject protection on/off
Misal
$ eject -i 1 /dev/sr0
eject: CD-Drive may NOT be ejected with device button
$ eject -i 0 /dev/sr0
eject: CD-Drive may be ejected with device button
Bu yüzden eject
düğmenin devre dışı bırakıldığını düşünüyor, ancak ikisi de değil. strace
Burada kullanarak aynı sistem çağrılarını görüyorum:
$ strace eject -i 1 /dev/sr0 |& grep ioctl
ioctl(3, CDROM_LOCKDOOR, 0x1) = 0
$ strace eject -i 0 /dev/sr0 |& grep ioctl
ioctl(3, CDROM_LOCKDOOR, 0) = 0
Şimdi UDEV veya başka bir şeyin cihazın potansiyel olarak engellenip engellenmediğini veya sahipliğini aldığını merak ediyorum.
Düşünceler?