Como desativo o botão de ejeção da unidade óptica do laptop e atribuo ejetar a um atalho de teclado?

7

Estou em 14.04 e acidentalmente abro minha unidade de cd / dvd / bluray cerca de 20 vezes por dia. Eu olhei algumas perguntas aqui que não forneceram solução de trabalho.

Ambas esta questão e esta pergunta parece estar desatualizada - a solução oferecida não funciona .

Quando faço isso, eject -i on , recebi eject: unable to find or open device for: 'cdrom'

Quando faço isso, eject -i on /dev/sr0 recebo uma resposta mais favorável: CD-Drive may NOT be ejected with device button no entanto, infelizmente, o botão ainda está ativado.

As informações de /proc/sys/dev/cdrom/info sugerem que o bloqueio é possível:

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 resposta tem uma solução funcional que corrige uma regra UDEV para permitir o bloqueio da unidade. Eu adicionei algumas informações práticas à solução, permitindo que uma delas:

  • Desativar o botão de ejeção de hardware da unidade óptica na inicialização
  • Adicione um atalho de teclado para ejetar a unidade óptica
  • Verifique se a unidade permanece bloqueada depois de acordar da suspensão
por Insperatus 07.01.2015 / 20:52

5 respostas

10

Ativar o bloqueio da unidade

Primeiro, copie /lib/udev/rules.d/60-cdrom_id.rules para /etc/udev/rules.d/ da seguinte forma:

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

Em seguida, edite /etc/udev/rules.d/60-cdrom_id.rules e comente a linha problemática:

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

Localize esta linha:

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

Agora, adicione um # (isso "comenta" a linha, anulando-a efetivamente sem excluí-la) para torná-la assim:

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

Agora salve e feche pressionando Ctrl + X , então Y para confirmar, seguido por Enter para aceite o nome do arquivo atual. Não se preocupe se ele aparecer como um estranho nome de arquivo temporário, é assim que o sudoedit funciona.

Agora você deve poder desabilitar o botão de hardware da unidade óptica (basicamente estamos travando a unidade) com isto:

eject -i on /dev/sr0 ~ ou ~ eject -i 1 /dev/sr0 Eles fazem o mesmo.

Bloqueie a unidade na inicialização

Para tornar isso mais útil, eu queria que este comando tivesse efeito após a inicialização. Eu usei o programa "Startup Applications" da GUI (pré-instalado no Ubuntu, encontre-o com Dash) para fazer isso.

Abra o programa e clique no botão "Adicionar", uma nova caixa de diálogo é aberta.

Digite um nome (eu fui com o descritivo "Lock optical drive") e dentro do campo "Command:" digite bash -c 'eject -i on /dev/sr0'

Clique em "Adicionar" para concluir e, em seguida, feche o programa.

Adicionar um atalho de teclado

Agora, a unidade óptica está bloqueada na inicialização. Mas como vou abrir a unidade quando precisar usá-la? Para simplificar, coloco os comandos em um atalho de teclado de "ejeção" que desbloqueia a unidade, ejeta a unidade e, em seguida, bloqueia novamente a unidade. Dessa forma, ainda posso acessar facilmente a unidade, mas o botão de hardware nunca é um problema.

Veja como realizar esse atalho de teclado:

  • Abra o programa "Teclado" encontrado no Dash.
  • Clique na guia "Atalhos"
  • Clique em "Atalhos personalizados" na parte inferior da lista
  • Clique no sinal "+" para abrir uma nova caixa de diálogo
  • Nomeie o atalho (usei "Desbloquear, Ejetar, Retocar CD")
  • Insira isso no campo "Comando:":

    bash -c 'eject -i off /dev/sr0 && eject /dev/sr0 && eject -i on /dev/sr0'
    
  • Clique em "Aplicar"

  • Clique à direita do nome do seu atalho, onde está escrito "Desativado". Depois de clicar, "Disabled" muda para "New Accelerator":

    Pressione a combinação de teclas que você deseja usar. Eu usei Ctrl + Alt + E

Você pode então testar o atalho imediatamente. Se tudo estiver bem perto e pronto!

Bloqueie a unidade após o Wake From Suspend

Percebi que minha unidade se tornou desbloqueada novamente após a retomada da suspensão, então criei um script para garantir que a unidade permaneça bloqueada neste caso.

Crie o arquivo de script:

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

Cole o seguinte no novo arquivo:

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

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

Salve e feche e está tudo pronto!

    
por Insperatus 15.01.2015 / 22:43
1

Para mim, informações aqui ajudam: link

Eu editei o arquivo no diretório / lib / , não em / etc / Agora no meu comando Ubuntu 14.04 funciona: ejetar -i 1 / dev / sr0

    
por Dima 08.01.2015 / 21:14
1

Se tudo mais falhar:

Pegue um alfinete (não uma agulha como você vai se machucar), empurre-o firmemente atrás do botão na unidade de DVD e use-o como alavanca para puxar o botão. Em seguida, pegue um pequeno pedaço de plástico 1mm mais largo e maior que o buraco resultante, coloque um pouco de super cola nele e cole no buraco tomando cuidado para não colocá-lo no buraco minúsculo próximo a ele .

De agora em diante, use os dois métodos a seguir para abrir a unidade de DVD:

  1. Use o "Eject" do Ubuntu através do traço
  2. Guarde esse pino life-hack em seu PC a partir de agora e empurre-o no orifício minúsculo ao lado do seu pedaço de plástico para ejetar o DVD quando seu laptop estiver desligado. (Use um pedaço de fita adesiva para prender o pino de vida na parte de baixo do seu laptop)
por Fabby 14.01.2015 / 14:51
0

Tente fazer com que o botão não seja ejetado:

  1. Aberto: Configurações do sistema > Teclado > Atalhos > Som e mídia

  2. Selecione "Ejetar" e limpe o atalho (pressionando "Backspace").

Você pode usar as configurações de atalho para fazer algo mais útil, como abrir um aplicativo comumente usado, bloquear sua tela ou redefinir seu Wi-Fi.

Fonte:

Eu tenho um MacBook Pro rodando 14.04 e o botão de ejetar está na parte superior de Delete / Backspace, o que o torna facilmente pressionado acidentalmente (é pior para MacBooks sem unidades de disco onde o botão é Power). Usou as configurações de atalho para fazer o botão de ejeção bloquear meu laptop. Use esta solução desde 12.04 e tudo mais.

    
por maki57 12.01.2015 / 04:55
0

Neste site , encontrei esta sugestão se eject -i 1 não funciona:
sudo echo 1 > /proc/sys/dev/cdrom/lock para bloquear (0 em vez de 1 para desbloquear)
Existem algumas outras opções discutidas também.

Aqui está um pequeno código-fonte c executando outra opção: link (observe o bugfix para versões mais novas nos comentários superiores!)

Mas eu li em alguns outros fóruns que todos esses comandos de ejeção apenas alteram o status de bloqueio da unidade quando um disco é inserido e montado. A única solução parece ser uma ferramenta chamada cdctl , mas não é muito compatível com muitos sistemas, já que estudei os comentários.

    
por Byte Commander 15.01.2015 / 20:56

Tags