No se puede escribir en el archivo / sys / class / backlight / acpi_video0 / brillo (ubuntu)

16

Estoy tratando de cambiar el brillo sobrescribiendo el valor en este archivo:

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

No funciona incluso cuando se usa sudo. Sin embargo, si cambio a superusuario con su, funciona. ¿Porqué es eso?


fuente
Esta acción está restringida solo a usuarios de sudo. Encontré una respuesta en este comentario :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

Respuestas:

17

El error ocurre porque sudo eleva los permisos para el comando ( sudo echo 5) pero no la redirección para escribir el archivo ( > /sys/class/backlight/acpi_video0/brightness). El shell bash real necesita permiso para escribir, por lo que falla con sudo pero funciona como root.

Puede solucionar esto ejecutando el teecomando como root para escribir en el archivo:

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

Tenga en cuenta que esto también hará eco de "5" en su terminal. Este es un efecto secundario normal del teecomando.

mguymon
fuente
El crédito va a @duskwuff por la teesolución inteligente
mguymon
55
No puedo tomar el crédito por pensar en eso: es un poco de folklore de UNIX que aprendí de quién sabe dónde.
duskwuff -inactive-
1
no funciona para mí con / sys / class / drm / card0 / device / pp_sclk_od no puede cambiar el valor
alexela
5

Como está escrito en Arch wiki ( enlace ), por defecto, solo rootpuede cambiar el brillo mediante este método. Para permitir que los usuarios del videogrupo cambien el brillo, udevse puede usar una regla como la siguiente (reemplace la <vendor>con su identificación de proveedor. Por ejemplo 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"

Luego debe agregar su usuario al videogrupo.

usermod -aG video <user>

Después de eso, esto debería funcionar:

echo 5 > /sys/class/backlight/<vendor>/brightness
Manuel Schmitzberger
fuente
1
Este método funciona para mí, después de reemplazarlo acpi_video0por intel_backlight.
Mehdi
1
Gracias por sus comentarios. He actualizado la respuesta.
Manuel Schmitzberger
2

Si no desea que se repitan 5, esto también funciona:

sudo sh -c 'echo 5 > /sys/class/backlight/acpi_video0/brightness'
Rafael
fuente
0

He estado luchando con este problema en mi VAIO VPCEG durante bastante tiempo. Después de hacer todo lo mencionado en cada foro, encontré algo interesante:

Después de cambiar el parámetro de arranque acpi_osi=Linux acpi_backlight=vendore intentar cambiarlo manualmente /sys/class/backlight/[vendor - in my case intel_backlight]/brightness, me di cuenta de que cambiar el permiso para este archivo desde la raíz a mi usuario y reiniciar el servicio acpid, esto me permitiría usar teclas de brillo sin problemas.

usuario273880
fuente
-1

las siguientes soluciones funcionan bien para mí ...

Lo publico como respuesta para que otros puedan obtener ayuda:

cambiar el permiso:

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

ahora cambie el brillo:

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

en su caso sería: /sys/class/backlight/acpi_video0/brightness

noobdeveloper99
fuente
1
¡Bienvenido a Super User! Por favor no agregue "gracias" como respuestas. Invierta algo de tiempo en el sitio y obtendrá los privilegios suficientes para votar las respuestas que le gusten, que es la forma de Súper Usuario de decir gracias.
DavidPostill
Además, realmente no respondiste la pregunta, que era "¿Por qué es eso?"
DavidPostill
muchas gracias ... por la información y realmente lo siento ... solo por mi culpa ... perdiste tu tiempo importante por guiarme ... me aseguraré de que esto no vuelva a suceder
noobdeveloper99
No es una buena práctica permitir que todos lean y escriban un archivo de configuración del sistema como ese.
lindhe
Tengo algunos escenarios, donde la pantalla comienza a funcionar, pero el valor de la luz de fondo sigue siendo 0,
ransh