Sistema operativo: Ubuntu - 18.04 LTS
Tengo 2 enlaces simbólicos en /sys/class/backlight/
el directorio.
acpi_video0 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0/
nv_backlight -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/nv_backlight/
Las teclas de acceso rápido de brillo cambian el valor de acpi_video0/brightness
. Pero eso en realidad no cambia el brillo de la pantalla.
Pero cambiar manualmente el valor de nv_backlight/brightness
en realidad cambia el brillo de la pantalla.
Entonces, vincular las teclas de acceso rápido nv_backlight
en lugar de acpi_video0
resolverá mi problema, pero no sé cómo hacerlo.
Editar: la barra de progreso del control deslizante emergente aparece en la pantalla sobre el funcionamiento de las teclas Fn para brillo (teclas de acceso rápido).
Editar:
Aporte:
cat /sys/class/backlight/nv_backlight/max_brightness
Producción:
100
Aporte:
cat /sys/class/backlight/nv_backlight/actual_brightness
Salida (este valor cambia automáticamente al mismo valor, lo entregué manualmente
/sys/class/backlight/nv_backlight/brightness
):10
Aporte:
cat /sys/class/backlight/acpi_video0/max_brightness
Producción:
15
Respuesta1
script de bashredirect-brightness
Su problema es que las teclas de función para aumentar/disminuir el brillo se están actualizando /sys/class/backlight/acpi_video0/brightness
en lugar de/sys/class/backlight/nv_backlight/brightness
La petición original era interceptar las teclas de función y utilizarlas para controlar al nv_backlight
conductor. El problema con esto es:
udev
Guiones complicados- No hay control deslizante de notificación emergente que muestre el brillo sin complicadas secuencias de comandos Python.
La solución es utilizar inotify
para monitorear los cambios en acpi_video0
. Luego calcule el porcentaje de brillo y aplique ese mismo porcentaje a nv_backlight
.
En el siguiente script bash, debe configurar:
WatchDriver="/sys/class/backlight/acpi_video0/brightness"
PatchDriver="/sys/class/backlight/nv_backlight/brightness"
Coloque el script /usr/local/bin
y hágalo ejecutable usando:
chmod a+x /usr/local/bin/redirect-brightness
Primero ejecute el script desde la línea de comando usando
redirect-brightness -l
Si hay un problema, verifique el archivo de registro usando:
cat /tmp/redirect-brightness.log
Si todo funciona bien, agréguelo redirect-brightness
a sus aplicaciones de inicio.
redirect-brightness
script de bash
#!/bin/bash
# NAME: redirect-brightness
# PATH: /usr/local/bin
# DESC: Redirect to correct driver when Ubuntu is adjusting the wrong
# /sys/class/DRIVER_NAME/brightness
# DATE: June 13, 2018. Modified June 14, 2018.
# NOTE: Written for Ubuntu question:
# https://askubuntu.com/q/1045624/307523
WatchDriver="/sys/class/backlight/intel_backlight"
PatchDriver="/sys/class/backlight/intel_backlight"
# Must be running as sudo
if [[ $(id -u) != 0 ]]; then
echo >&2 "Root access required. Use: 'sudo redirect-brightness'"
exit 1
fi
# inotifywait required
type inotifywait >/dev/null 2>&1 || \
{ echo >&2 "'inotifywait' required but it's not installed. Aborting."; \
echo >&2 "Use 'sudo apt install inotify-tools' to install it.'"; \
exit 1; }
# Was right watch driver directory name setup correctly?
if [[ ! -d $WatchDriver ]]; then
echo >&2 "Watch directory: '$WatchDriver'"; \
echo >&2 "does not exist. Did you spell it correctly? Aborting.'"; \
exit 1;
fi
# Was right patch driver directory name setup correctly?
if [[ ! -d $PatchDriver ]]; then
echo >&2 "Redirect to directory: '$PatchDriver'"; \
echo >&2 "does not exist. Did you spell it correctly? Aborting.'"; \
exit 1;
fi
# Get maximum brightness values
WatchMax=$(cat $WatchDriver/max_brightness)
PatchMax=$(cat $PatchDriver/max_brightness)
# PARM: 1="-l" or "--log-file" then write each step to log file.
fLogFile=false
if [[ $1 == "-l" ]] || [[ $1 == "--log-file" ]]; then
fLogFile=true
LogFile=/tmp/redirect-brightness.log
echo redirect-brightness LOG FILE > $LogFile
echo WatchMax: $WatchMax PatchMax: $PatchMax >> $LogFile
fi
SetBrightness () {
# Calculate watch current percentage
WatchAct=$(cat $WatchDriver/actual_brightness)
WatchPer=$(( WatchAct * 100 / WatchMax ))
[[ $fLogFile == true ]] && echo WatchAct: $WatchAct WatchPer: $WatchPer >> $LogFile
# Reverse engineer patch brightness to set
PatchAct=$(( PatchMax * WatchPer / 100 ))
echo $PatchAct | sudo tee $PatchDriver/brightness
[[ $fLogFile == true ]] && echo PatchAct: $PatchAct >> $LogFile
}
# When machine boots, set brightness to last saved value
SetBrightness
# Wait forever for user to press Fn keys adjusting brightness up/down.
while (true); do
inotifywait --event modify $WatchDriver/actual_brightness
[[ $fLogFile == true ]] && \
echo "Processing modify event in $WatchDriver/actual_brightness" >> $LogFile
SetBrightness
done
Respuesta original 11 de junio de 2018.
Respuesta de trabajo en progreso
Hay muchos usuarios de nVidia con problemas similares en Ubuntu 18.04:
- El brillo en la computadora portátil MSI GT72VR en Ubuntu 18.04 con NVIDIA GTX 1060 Mobile no funciona
- La computadora no se despierta de la suspensión y no puede cambiar el brillo.
- Falta el control de brillo cuando se usan controladores Nvidia pero reaparece con X.Org
- Xubuntu 18.04: hace que las teclas de brillo Fn funcionen con /sys/class/backlight/nv_backlight/
- Cómo alterar el controlador de retroiluminación en lubuntu
- El brillo en la computadora portátil MSI GT72VR en Ubuntu 18.04 con NVIDIA GTX 1060 Mobile no funciona
- Problema de visualización de NVIDIA con el control de brillo y la reproducción de vídeo
- No se puede cambiar el brillo de la pantalla
- El brillo de la pantalla del portátil no se puede ajustar ni con los botones ni con el control deslizante. Editar
Antes de escribir un guión
Puedo escribir un script para imitar los cambios en /acpi_video y completar /nv_backlight, pero antes de intentar esto:
- Editar
/etc/default/grub
. - Encontrar
quiet splash
- Añadir detrás del chapoteo:
acpi_backlight=vendor
- Guarda el archivo
- Correr
sudo update-grub
Según esta respuesta debería funcionar para ti:Xubuntu 18.04: hace que las teclas de brillo Fn funcionen con /sys/class/backlight/nv_backlight/
wayland
El brillo no funciona con Wayland. Asegúrate de no estar usándolo. Ver:El brillo de la pantalla del portátil no se puede ajustar ni con los botones ni con el control deslizante. Editar