web-dev-qa-db-fra.com

Comment désactiver le bouton d'éjection du lecteur optique de l'ordinateur portable et attribuer l'éjection à un raccourci clavier?

Je suis sur 14.04 et ouvre accidentellement mon lecteur cd/dvd/bluray environ 20 fois par jour. J'ai examiné quelques questions ici qui n'ont fourni aucune solution de travail.

Les deux cette question et cette question semblent obsolètes - la solution proposée ne fonctionne pas.

Quand je le fais, eject -i on je suis rencontré avec eject: unable to find or open device for: 'cdrom'

Quand je le fais, eject -i on /dev/sr0 je reçois une réponse plus favorable: CD-Drive may NOT be ejected with device button mais le bouton est malheureusement toujours activé.

Les informations de /proc/sys/dev/cdrom/info suggèrent que le verrouillage est possible:

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

Cette réponse a une solution de travail qui corrige une règle UDEV pour permettre le verrouillage du lecteur. J'ai ajouté quelques informations pratiques à la solution, permettant de:

  • Désactiver le bouton d'éjection matérielle du lecteur optique au démarrage
  • Ajouter un raccourci clavier pour éjecter le lecteur optique
  • Assurez-vous que le lecteur reste verrouillé après le réveil
8
Insperatus

Activer le verrouillage du lecteur

Commencez par copier /lib/udev/rules.d/60-cdrom_id.rules dans /etc/udev/rules.d/ comme suit:

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

Ensuite, éditez /etc/udev/rules.d/60-cdrom_id.rules et commentez la ligne problématique:

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

Localisez cette ligne:

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

Maintenant, ajoutez un # (ceci "commente" la ligne, en l'annulant effectivement sans la supprimer) devant pour lui donner l'aspect suivant:

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

Maintenant, sauvegardez et fermez en appuyant sur Ctrl+X, puis Y à confirmer, suivi de Enter accepter le nom de fichier actuel. Ne vous inquiétez pas s'il apparaît sous un nom de fichier temporaire étrange, c'est comme ça que sudoedit fonctionne.

Maintenant, vous devriez pouvoir désactiver le bouton matériel du lecteur optique (nous verrons essentiellement le lecteur) avec ceci:

eject -i on /dev/sr0 ~ ou ~ eject -i 1 /dev/sr0 Ils font la même chose.


Verrouiller le lecteur au démarrage

Pour rendre cela plus utile, je voulais que cette commande prenne effet au démarrage. J'ai utilisé le programme "Applications de démarrage" de l'interface graphique (préinstallé dans Ubuntu, que vous trouverez avec Dash) pour accomplir cela.

Ouvrez le programme puis cliquez sur le bouton "Ajouter", une nouvelle boîte de dialogue s'ouvre.

Tapez un nom (je suis allé avec le descriptif "Verrouiller le lecteur optique") et dans le champ "Commande:" entrez bash -c 'eject -i on /dev/sr0'

Cliquez sur "Ajouter" pour terminer puis fermez le programme.


Ajouter un raccourci clavier

Maintenant, le lecteur optique est verrouillé au démarrage. Mais comment vais-je ouvrir le lecteur quand j'ai besoin de l'utiliser?! Pour simplifier les choses, j'ai placé les commandes dans un raccourci clavier "éjecter" qui déverrouille le lecteur, éjecte le lecteur, puis le verrouille à nouveau. De cette façon, je peux toujours accéder facilement au lecteur, mais le bouton matériel n’est jamais un problème.

Voici comment accomplir ce raccourci clavier:

  • Ouvrez le programme "Clavier" présent dans le tableau de bord.
  • Cliquez sur l'onglet "Raccourcis"
  • Cliquez sur "Raccourcis personnalisés" au bas de la liste.
  • Cliquez sur le signe "+", une nouvelle boîte de dialogue s'ouvrira
  • Nommez le raccourci (j'ai utilisé "Déverrouiller, éjecter, relancer un CD")
  • Entrez ceci dans le champ "Command:":

    bash -c 'eject -i off /dev/sr0 && eject /dev/sr0 && eject -i on /dev/sr0'
    
  • Cliquez sur "Appliquer"

  • Cliquez à droite du nom de votre raccourci où il est écrit "Désactivé". Une fois que vous cliquez dessus, "Désactivé" devient "Nouvel accélérateur":

    Appuyez sur la combinaison de touches que vous souhaitez utiliser. j'ai utilisé Ctrl+Alt+E

Vous pouvez alors tester le raccourci immédiatement. Si tout va bien et que vous avez terminé!


Verrouiller le lecteur au réveil de la suspension

J'ai remarqué que mon lecteur était à nouveau déverrouillé à la reprise de la suspension. J'ai donc créé un script pour s'assurer que le lecteur reste verrouillé dans ce cas.

Créez le fichier de script:

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

Collez les éléments suivants dans le nouveau fichier:

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

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

Sauvegarder et fermer et vous êtes tous ensemble!

10
Insperatus

Si tout échoue:

Prenez une épingle (pas une aiguille car vous vous blesserez), poussez-la fermement derrière le bouton du lecteur de DVD et utilisez-la comme levier pour tirer le bouton. Ensuite, prenez un petit morceau de plastique de 1 mm plus large et plus large que le trou obtenu, mettez-y de la colle et collez-le sur le trou en prenant soin de ne pas le mettre sur le minuscule trou à côté.

A partir de maintenant, utilisez les 2 méthodes suivantes pour ouvrir le lecteur de DVD:

  1. Utilisez le "éjecter" Ubuntu par le tiret
  2. Gardez cette goupille de vie autour de votre PC à partir de maintenant et poussez-le dans le minuscule trou à côté de votre morceau de plastique pour éjecter le DVD lorsque votre ordinateur portable est éteint. (Utilisez un morceau de ruban adhésif pour fixer la goupille de sécurité au dessous de votre ordinateur portable)
1
Fabby

Pour moi, les informations ici aident: https://bugs.launchpad.net/ubuntu/+source/eject/+bug/885051/comments/6

J'ai édité le fichier dans le répertoire /lib/, pas dans /etc/ Maintenant, ma commande Ubuntu 14.04 fonctionne: eject -i 1/dev/sr0

1
Dima

Essayez ceci pour que le bouton ne soit pas éjecté:

  1. Ouvrir: Paramètres système> Clavier> Raccourcis> Son et média

  2. Sélectionnez "Ejecter" et effacez le raccourci (en appuyant sur "Retour arrière").

Vous pouvez utiliser les paramètres de raccourci pour lui faire faire quelque chose de plus utile, comme ouvrir une application couramment utilisée, verrouiller votre écran ou réinitialiser votre wifi.


La source:

J'ai un MacBook Pro fonctionnant sous 14.04 et le bouton d'éjection se trouve juste au-dessus de Suppr/Retour arrière, ce qui le rend facile à appuyer accidentellement (c'est pire pour les MacBook sans lecteurs de disque où ce bouton est destiné à l'alimentation). Utilisez les paramètres de raccourci pour que le bouton d’éjection verrouille mon ordinateur portable à la place. Avoir utilisé cette solution depuis 12.04 et tout le reste.

0
maki57

Sur ce site j'ai trouvé cette suggestion si eject -i 1 ne fonctionne pas:
Sudo echo 1 > /proc/sys/dev/cdrom/lock pour verrouiller (0 au lieu de 1 pour déverrouiller)
Il existe également d’autres options.

Voici un court code source c effectuant une autre option: lien (notez le correctif pour les versions plus récentes dans les commentaires supérieurs!)

Mais j'ai lu dans d'autres forums que toutes ces commandes d'éjection ne modifient le statut de verrouillage du lecteur que lorsqu'un disque est inséré et monté. La seule solution semble être un outil appelé cdctl, mais il est peu compatible avec de nombreux systèmes, car j'ai étudié les commentaires.

0
Byte Commander