Não é possível gravar no arquivo / sys / class / backlight / acpi_video0 / brightness (ubuntu)

16

Estou tentando alterar o brilho substituindo o valor nesse arquivo:

sudo echo 5 > /sys/class/backlight/acpi_video0/brightness
-bash: /sys/class/backlight/acpi_video0/brightness: Permission denied

Não funciona mesmo ao usar o sudo. No entanto, se eu mudar para superusuário com su, ele funcionará. Por que é que?


fonte
Esta ação é restrita apenas aos usuários do sudo. Eu encontrei uma resposta em este comentário :The reason that this is set at su permissions is that a virus could conceivably make your screen dim and go bright at incredible speed ultimately damaging your hardware display. In the 90's I encountered a virus that would adjust the screen refresh Hertz so rapidly that your monitor would fry.
Alexey Volodko

Respostas:

17

O erro ocorre porque o sudo eleva as permissões para o comando ( sudo echo 5), mas não o redirecionamento para gravar o arquivo ( > /sys/class/backlight/acpi_video0/brightness). O shell bash real precisa de permissão para escrever, e é por isso que falha com o sudo, mas funciona como root.

Você pode contornar isso executando o teecomando como root para gravar no arquivo:

echo 5 | sudo tee /sys/class/backlight/acpi_video0/brightness

Observe que isso também ecoará "5" para o seu terminal. Este é um efeito colateral normal do teecomando.

mguymon
fonte
O crédito vai para @duskwuff para a inteligente teesolução
mguymon
5
Não posso me responsabilizar por isso - é um pouco do folclore do UNIX que aprendi com quem sabe onde.
duskwuff -inactive-
1
não funciona para mim com / sys / class / DRM / card0 / dispositivo / pp_sclk_od não pode alterar o valor
alexela
5

Conforme escrito no wiki do Arch ( link ), por padrão, somente rootpode alterar o brilho por esse método. Para permitir que os usuários do videogrupo alterem o brilho, uma udevregra como a seguinte pode ser usada (substitua <vendor>por sua identificação de fornecedor. Por exemplo acpi_video0, intel_backlight):

% cat /etc/udev/rules.d/backlight.rules
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="<vendor>", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness"
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="<vendor>", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"

Então você precisa adicionar seu usuário ao videogrupo.

usermod -aG video <user>

Depois disso, isso deve funcionar:

echo 5 > /sys/class/backlight/<vendor>/brightness
Manuel Schmitzberger
fonte
1
Este método funciona para mim, depois de substituir acpi_video0por intel_backlight.
Mehdi
1
Obrigado pelo seu feedback. Eu atualizei a resposta.
Manuel Schmitzberger 5/05/19
2

Se você não deseja que ecoem 5, isso também funciona:

sudo sh -c 'echo 5 > /sys/class/backlight/acpi_video0/brightness'
raphael
fonte
0

Estou enfrentando esse problema no meu VAIO VPCEG há um bom tempo. Depois de fazer tudo mencionado em todos os fóruns, achei algo interessante:

Após alterar o parâmetro de inicialização acpi_osi=Linux acpi_backlight=vendore tentar alterar manualmente /sys/class/backlight/[vendor - in my case intel_backlight]/brightness, percebi que alterar a permissão para esse arquivo da raiz para o usuário e reiniciar o serviço acpid, permitiria que eu usasse as teclas de brilho na perfeição.

user273880
fonte
-1

as soluções abaixo funcionam bem para mim ..

Estou postando como resposta para que outras pessoas possam obter ajuda:

altere a permissão:

sudo chmod a+rw /sys/class/backlight/intel_backlight/brightness

agora mude o brilho:

echo 400 > /sys/class/backlight/intel_backlight/brightness

no seu caso, seria: /sys/class/backlight/acpi_video0/brightness

noobdeveloper99
fonte
1
Bem-vindo ao Super Usuário! Por favor, não adicione "obrigado" como respostas. Invista algum tempo no site e você obterá privilégios suficientes para votar de imediato as respostas que desejar, que é a maneira do Superusuário de dizer obrigado.
DavidPostill
Além disso, você realmente não respondeu à pergunta, que era "Por que isso?"
DavidPostill
thanks a lot .. para a informação e realmente sinto muito .. só por causa de mim .. você perdeu seu tempo importante para orientar me..i vai garantir que isso não aconteça novamente
noobdeveloper99
Não é uma boa prática permitir que todos leiam e gravem um arquivo de configuração do sistema assim.
Lindhe
Eu tenho alguns cenários, onde a tela começa a funcionar, mas o valor da luz de fundo ainda é 0,
ransh