Bagaimana cara menonaktifkan tombol eject drive optik laptop dan menetapkan eject ke pintasan keyboard?

8

Catatan: Jawab sekarang diperbarui agar berfungsi di bawah 19.04

Saya pada 14,04 dan tidak sengaja membuka drive cd / dvd / bluray saya sekitar 20 kali sehari. Saya telah melihat beberapa pertanyaan di sini yang tidak memberikan solusi yang berfungsi.

Kedua pertanyaan ini dan pertanyaan ini tampaknya usang - Solusi yang ditawarkan tidak bekerja.

Ketika saya melakukannya, eject -i onsaya bertemueject: unable to find or open device for: 'cdrom'

Ketika saya melakukannya, eject -i on /dev/sr0saya mendapat respons yang lebih baik: CD-Drive may NOT be ejected with device buttonnamun sayangnya tombol masih diaktifkan.

Informasi dari /proc/sys/dev/cdrom/infomenunjukkan bahwa penguncian dimungkinkan:

CD-ROM information, Id: cdrom.c 3.20 2003/12/17

drive name:             sr0
drive speed:            24
drive # of slots:       1
Can close tray:         1
Can open tray:          1
Can lock tray:          1
Can change speed:       1
Can select disk:        0
Can read multisession:  1
Can read MCN:           1
Reports media changed:  1
Can play audio:         1
Can write CD-R:         1
Can write CD-RW:        1

Jawaban ini memiliki solusi yang berfungsi yang memperbaiki aturan UDEV untuk memungkinkan mengunci drive. Saya telah menambahkan beberapa informasi praktis ke solusinya, memungkinkan seseorang untuk:

  • Nonaktifkan tombol pelepas perangkat keras drive optik saat startup
  • Tambahkan pintasan keyboard untuk mengeluarkan drive optik
  • Pastikan drive tetap terkunci setelah bangun dari suspensi
Insperatus
sumber
1
ini bekerja untuk saya. apakah Anda telah memuat ulang aturan udev dengan "kontrol udevadm --reload-rules" ???
solsTiCe

Jawaban:

11

Aktifkan Mengunci Drive

(catatan: jika eject -i onsudah berfungsi, Anda dapat langsung beralih ke "Kunci Drive saat Startup")

Pertama, salin /lib/udev/rules.d/60-cdrom_id.rulesagar /etc/udev/rules.d/seperti:

cp /lib/udev/rules.d/60-cdrom_id.rules /etc/udev/rules.d/

Selanjutnya, edit /etc/udev/rules.d/60-cdrom_id.rules dan berikan komentar pada baris yang bermasalah:

sudoedit /etc/udev/rules.d/60-cdrom_id.rules

Temukan baris ini:

ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdrom_end"

Sekarang tambahkan #(ini "komentar keluar" baris, secara efektif membatalkannya tanpa menghapus) di depan agar terlihat seperti ini:

# ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdrom_end"

Sekarang simpan dan tutup dengan menekan Ctrl+ X, lalu Yuntuk mengonfirmasi, diikuti dengan Enteruntuk menerima nama file saat ini. Jangan khawatir itu muncul sebagai nama file sementara yang aneh, begitulah cara kerja sudoedit.

Sekarang Anda harus dapat menonaktifkan tombol perangkat keras drive optik (pada dasarnya kami mengunci drive) dengan ini:

eject -i on /dev/sr0~ atau ~ eject -i 1 /dev/sr0Mereka melakukan hal yang sama.


Kunci Drive saat Startup

Untuk menjadikan ini lebih bermanfaat, saya ingin perintah ini berlaku pada saat startup. Saya menggunakan program "Aplikasi Startup" GUI (sudah diinstal sebelumnya di Ubuntu, temukan dengan Dash) untuk melakukannya.

Buka program dan kemudian klik tombol "Tambah", kotak dialog baru terbuka.

Ketikkan nama (saya menggunakan "Kunci drive optik" deskriptif) dan di dalam kolom "Command:" bash -c 'eject -i on /dev/sr0'

Klik "Tambah" untuk menyelesaikan dan kemudian tutup program.


Tambahkan Pintasan Keyboard

Sekarang drive optik terkunci pada saat startup. Tetapi bagaimana saya akan membuka drive ketika saya harus menggunakannya ?! Untuk membuatnya lebih sederhana, saya menempatkan perintah-perintah ke dalam pintasan keyboard "keluarkan" yang membuka drive, mengeluarkan drive, kemudian mengunci kembali drive. Dengan cara ini saya masih dapat dengan mudah mengakses drive tetapi tombol perangkat keras tidak pernah menjadi masalah.

Berikut cara menyelesaikan pintasan keyboard ini:

  • Buka program "Keyboard" yang ditemukan dalam Dash.
  • Klik tab "Pintasan"
  • Klik "Pintasan Khusus" di bagian bawah daftar
  • Klik pada tanda "+", kotak dialog baru akan terbuka
  • Beri nama pintasan (saya menggunakan "Unlock, Eject, Relock CD")
  • Masukkan ini ke dalam bidang "Perintah:":

    bash -c 'eject -i off /dev/sr0 && eject /dev/sr0 && eject -i on /dev/sr0'
    
  • Klik "Terapkan"

  • Klik di sebelah kanan nama pintasan Anda yang bertuliskan "Nonaktif". Setelah Anda mengkliknya, "Dinonaktifkan" berubah menjadi "Akselerator Baru":

    Tekan kombinasi tombol yang ingin Anda gunakan. Saya menggunakan Ctrl+ Alt+E

Anda kemudian dapat menguji pintasan dengan segera. Jika semuanya sudah dekat dan Anda selesai!


Drive Kunci Saat Bangun Dari Penangguhan (metode pra-sistemd)

Saya perhatikan drive saya menjadi tidak terkunci lagi setelah melanjutkan dari penangguhan jadi saya membuat skrip untuk memastikan drive tetap terkunci dalam kasus ini.

Buat file skrip:

sudoedit /usr/lib/pm-utils/sleep.d/99lock-optical

Rekatkan yang berikut ke dalam file baru:

#!/bin/sh
# lock the optical drive upon resume from suspend

case "${1}" in
    resume|thaw)
        eject -i 1 /dev/sr0    
;;
esac

Drive Kunci Saat Bangun Dari Penangguhan (metode systemd)

Saya menggunakan 19,04 sekarang dan melihat drive saya menjadi tidak terkunci setelah melanjutkan dari penangguhan. Metode ini berfungsi agar tetap terkunci:

Buat file skrip:

sudoedit /lib/systemd/system-sleep/00start_my_connection

Rekatkan yang berikut ke dalam file baru:

 #!/bin/sh
 if [ $1 = post ]
 then eject -i 1 /dev/sr0
 fi

Simpan dan tutup dan Anda siap!

Insperatus
sumber
Bagus (Dan tidak perlu hacks konyol! Sangat baik! ) Apakah Anda ingin saya menghapus yang dengan pin?
Fabby
1
Terima kasih! Tidak masalah bagi saya untuk meninggalkannya untuk orang yang tidak memiliki solusi lain. Ini seluruh arti lain dari "retas" :)
Insperatus
Rupanya menangguhkan kembali dan membuka kunci drive lagi.
Insperatus
ada sesuatu yang disebut "skrip menangguhkan / bangun" yang dipanggil saat menangguhkan / bangun. Saya sarankan Anda menambahkan solusi Anda di sana juga (saya tidak memiliki jalur absolut ke skrip berguna, hanya tahu itu ada)
Fabby
1
Yap, saya juga mengira begitu. Memeriksa di sini dan di sini untuk solusinya.
Insperatus
1

Bagi saya informasi di sini membantu: https://bugs.launchpad.net/ubuntu/+source/eject/+bug/885051/comments/6

Saya mengedit file di / lib / direktori, bukan di / etc / Now di Ubuntu 14.04 saya bekerja perintah: eject -i 1 / dev / sr0

Dima
sumber
Sayangnya ini tidak bekerja untuk saya.
Insperatus
bekerja untuk saya (Ubuntu 14,04 pada ThinkPad T420, mengedit file lib, seperti disarankan gonzo di launchpad)
mondjunge
Sebenarnya saya mengacaukan struktur direktori, Anda berada di jalur yang benar dengan jawaban ini!
Insperatus
1

Jika semuanya gagal:

Ambil pin (bukan jarum karena Anda akan melukai diri sendiri), dorong dengan kuat di belakang tombol pada drive DVD dan gunakan itu sebagai tuas untuk menarik keluar tombol. Kemudian ambil sepotong kecil plastik 1mm lebih lebar dan lebih besar dari lubang yang dihasilkan, letakkan beberapa lem super di atasnya dan lem itu di lubang berhati-hati jangan meletakkannya di atas lubang kecil di sebelahnya .

Mulai sekarang, gunakan 2 metode berikut untuk membuka drive DVD:

  1. Gunakan "Keluarkan" Ubuntu melalui tanda hubung
  2. Simpan pin peretasan seumur hidup di sekitar PC Anda mulai sekarang dan dorong ke dalam lubang kecil di sebelah plastik Anda untuk mengeluarkan DVD saat laptop Anda dimatikan. (Gunakan selotip untuk mengencangkan pin life-hack ke bagian bawah laptop Anda)
Fabby
sumber
1
Tetapi menghancurkan cdrom-drive saya tidak benar-benar seperti yang saya harapkan sebagai jawaban untuk bagaimana PERANGKAT LUNAK-mengunci baki! Sebelum melakukan ini, saya bahkan akan mengambil sepotong karton kecil, memotong lubang berbentuk seperti tombol di dalamnya dan menempelkannya di atas tombol eject sehingga menyentuhnya secara tidak sengaja misalnya dengan lutut Anda tidak memicu itu.
Byte Commander
@ByteCommander: itu sebabnya ada judul "jika semuanya gagal" sebagai judulnya. Lebih jauh lagi, poster asli sudah mendapat tawa dari itu dan sudah terbalik. Namun, saya pikir hack-hidup Anda juga layak mendapat jawaban! Jika Anda mempostingnya sebagai jawaban, saya pikir Anda akan mendapatkan 2 upvotes!
Fabby
Pikiran yang bagus, tetapi saya tidak dapat mengubahnya dan saya tidak ingin menulisnya lagi. Jika itu membantu siapa pun tidak apa-apa. Dan Anda juga dapat meningkatkan komentar. Ngomong-ngomong, bagaimana Anda ingin tahu Anda mendapat suara dari poster pertanyaan?
Byte Commander
@ByteCommander: Upvoting komentar tidak membuat Anda mendapat rep Saya hanya memilih komentar jika saya tidak memberikan komentar lain. Seperti tepukan di punggung. Dan komentar tambahan seperti pelukan! > :)
Fabby
@ByteCommander: Biasanya Anda tidak tahu siapa yang naik / turun, tapi saya melihat upvote masuk, pergi ke pertanyaan, pergi ke halaman pengguna OP dan melihat "aktivitas terakhir: 1 menit". Jadi saya menyimpulkan bahwa itu adalah dia dan itu membuat saya tersenyum juga.
Fabby
0

Coba ini untuk membuat tombol tidak mengeluarkan:

  1. Buka: Pengaturan Sistem > Keyboard > Pintasan > Suara dan Media

  2. Pilih "Keluarkan" dan kosongkan pintasan (dengan menekan "Backspace").

Anda dapat menggunakan pengaturan pintasan untuk membuatnya melakukan sesuatu yang lebih berguna sebagai gantinya, seperti membuka aplikasi yang umum digunakan, mengunci layar Anda atau mengatur ulang wifi Anda.


Sumber:

Saya memiliki MacBook Pro yang menjalankan 14,04 dan tombol eject tepat di atas Delete / Backspace, yang membuatnya mudah ditekan secara tidak sengaja (lebih buruk untuk MacBook tanpa disk drive di mana tombol itu untuk Power). Menggunakan pengaturan jalan pintas untuk membuat tombol eject mengunci laptop saya sebagai gantinya. Sudah menggunakan solusi ini sejak 12.04 dan semuanya ada di antaranya.

maki57
sumber
Ini tidak berhasil bagi saya karena saya menekan tombol pada drive yang sebenarnya dan bukan tombol keyboard.
Insperatus
0

Di situs ini saya menemukan saran ini jika eject -i 1tidak berfungsi:
sudo echo 1 > /proc/sys/dev/cdrom/lockuntuk mengunci (0 bukan 1 untuk membuka kunci)
Ada beberapa opsi lain yang juga dibahas.

Berikut ini adalah kode sumber c pendek yang melakukan opsi lain: tautan (perhatikan perbaikan bug untuk versi yang lebih baru di komentar atas!)

Tetapi saya membaca di beberapa forum lain bahwa semua perintah-eject ini hanya mengubah status penguncian drive ketika disk dimasukkan dan dipasang. Satu-satunya solusi tampaknya adalah alat yang disebut cdctl, tetapi tidak terlalu kompatibel dengan banyak sistem, seperti yang saya pelajari di komentar.

Komandan Byte
sumber