¿Cómo desactivo el botón de expulsión de la unidad óptica de la computadora portátil y asigno la expulsión a un método abreviado de teclado?

¿Cómo desactivo el botón de expulsión de la unidad óptica de la computadora portátil y asigno la expulsión a un método abreviado de teclado?

Nota: La respuesta ahora se actualizó para funcionar en 19.04

Estoy en 14.04 y accidentalmente abro mi unidad de CD/DVD/Bluray unas 20 veces al día. He analizado algunas preguntas aquí que no proporcionaron una solución funcional.

Ambosesta preguntayesta preguntaparecen estar desactualizados: la solución ofrecida no funciona.

Cuando lo hago, eject -i onme encuentro coneject: unable to find or open device for: 'cdrom'

Cuando lo hago, eject -i on /dev/sr0obtengo una respuesta más favorable: CD-Drive may NOT be ejected with device buttonsin embargo, lamentablemente el botón todavía está habilitado.

La información de /proc/sys/dev/cdrom/infosugiere que el bloqueo es posible:

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

esta respuestatiene una solución funcional que corrige una regla UDEV para permitir bloquear la unidad. Agregué información práctica a la solución, lo que permite:

  • Deshabilite el botón de expulsión del hardware de la unidad óptica al inicio
  • Agregue un atajo de teclado para expulsar la unidad óptica
  • Asegúrese de que la unidad permanezca bloqueada después de salir de la suspensión

Respuesta1

Habilitar el bloqueo de la unidad

(nota: si eject -i onya funciona, puede pasar a "Bloquear la unidad al iniciar")

Primero, copia /lib/udev/rules.d/60-cdrom_id.rulespara que /etc/udev/rules.d/te guste:

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

A continuación, edite /etc/udev/rules.d/60-cdrom_id.rulesy comente la línea problemática:

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

Localice esta línea:

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

Ahora agregue un #(esto "comenta" la línea, anulándola efectivamente sin eliminarla) al frente para que se vea así:

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

Ahora guarde y cierre presionando Ctrl+ X, luego Ypara confirmar, seguido de Enteraceptar el nombre del archivo actual. No te preocupes si aparece como un nombre de archivo temporal extraño, así es como funciona Sudoedit.

Ahora deberías poder desactivar el botón de hardware de la unidad óptica (esencialmente estamos bloqueando la unidad) con esto:

eject -i on /dev/sr0o eject -i 1 /dev/sr0Ellos hacen lo mismo.


Bloquear la unidad al iniciar

Para que esto sea más útil, quería que este comando surtiera efecto al iniciar. Usé la GUIAplicaciones de inicioprograma (preinstalado en Ubuntu, encuéntrelo con Dash) para lograr esto.

Abra el programa y luego haga clic enAgregar, se abre un nuevo cuadro de diálogo.

Escriba un nombre (yo elegí el descriptivo "Bloquear unidad óptica") y dentro delDominio:entrar en el campobash -c 'eject -i on /dev/sr0'

Hacer clicAgregarpara completar y luego cerrar el programa.


Agregar un atajo de teclado

Ahora la unidad óptica está bloqueada al inicio. Pero, ¿cómo abriré el disco cuando necesite usarlo? Para hacerlo simple, pongo los comandos en un atajo de teclado de "expulsión" que desbloquea la unidad, la expulsa y luego la vuelve a bloquear. De esta manera todavía puedo acceder fácilmente a la unidad, pero el botón de hardware nunca es un problema.

A continuación se explica cómo realizar este atajo de teclado:

  • Abre elTecladoprograma que se encuentra dentro del Dash.

  • Haga clic en elAtajospestaña

  • Haga clic enAtajos personalizadosal final de la lista

  • Clickea en el+firmar, se abrirá un nuevo cuadro de diálogo

  • Nombra el acceso directo (yo usé "Desbloquear, expulsar, volver a bloquear CD")

  • Introduzca esto en elDominio:campo:

    bash -c 'eject -i off /dev/sr0 && eject /dev/sr0 && eject -i on /dev/sr0'
    
  • Hacer clicAplicar

  • Haga clic a la derecha del nombre de su acceso directo donde diceDesactivado. Una vez que hagas clic en él,Desactivadocambios aNuevo acelerador:

Presione la combinación de teclas que desea utilizar. Yo usé Ctrl+ Alt+E

Luego podrá probar el acceso directo inmediatamente. Si todo está bien cierra y ¡listo!


Bloquear la unidad al reactivarse desde la suspensión (método anterior al sistema)

He notado que mi unidad se desbloquea nuevamente al salir de la suspensión, por lo que creé una secuencia de comandos para garantizar que la unidad permanezca bloqueada en este caso.

Cree el archivo de secuencia de comandos:

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

Pegue lo siguiente en el nuevo archivo:

#!/bin/sh
# lock the optical drive upon resume from suspend
        
case "${1}" in
    resume|thaw)
        eject -i 1 /dev/sr0    
;;
esac

Bloquear la unidad al reactivarse desde la suspensión (método systemd)

Estoy usando 19.04 ahora y noté que mi unidad se estaba desbloqueando al reanudar desde la suspensión. Este método funciona para que permanezca bloqueado:

Cree el archivo de secuencia de comandos:

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

Pegue lo siguiente en el nuevo archivo:

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

Guarde y cierre el archivo, hágalo ejecutable y ¡listo!

Respuesta2

Para mí la información aquí ayuda: https://bugs.launchpad.net/ubuntu/+source/eject/+bug/885051/comments/6

Edité el archivo en/lib/directorio, no en/etc/ Ahora en mi Ubuntu 14.04 el comando funciona: eject -i 1 /dev/sr0

Respuesta3

Pruebe esto para que el botón no se expulse:

  1. Abierto:Ajustes del sistema>Teclado>Atajos>Sonido y Medios

  2. Seleccione "Expulsar" y borre el acceso directo (presionando "Retroceso").

Puedes usar la configuración de acceso directo para que haga algo más útil, como abrir una aplicación de uso común, bloquear la pantalla o restablecer tu wifi.


Fuente:

Tengo una MacBook Pro con versión 14.04 y el botón de expulsión está justo encima de Eliminar/Retroceso, lo que hace que sea fácil presionarlo accidentalmente (es peor para las MacBooks sin unidades de disco donde ese botón es para Encendido). Usé la configuración de acceso directo para hacer que el botón de expulsión bloqueara mi computadora portátil. He utilizado esta solución desde el 12.04 y todo lo demás.

Respuesta4

En estesitioEncontré esta sugerencia si eject -i 1no funciona:
sudo echo 1 > /proc/sys/dev/cdrom/lockbloquear (0 en lugar de 1 para desbloquear).
También se analizan otras opciones.

Aquí hay un breve código fuente en C que realiza otra opción:enlace(¡Observe la corrección de errores para versiones más recientes en los comentarios superiores!)

Pero leí en otros foros que todos estos comandos de expulsión sólo cambian el estado de bloqueo de la unidad cuando se inserta y monta un disco. La única solución parece ser una herramienta llamada cdctl, pero no es muy compatible con muchos sistemas, según estudié los comentarios.

información relacionada