Betriebssystem: Ubuntu – 18.04 LTS
Ich habe 2 symbolische Links im /sys/class/backlight/
Verzeichnis.
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/
Die Helligkeits-Hotkeys ändern den Wert von acpi_video0/brightness
. Die tatsächliche Helligkeit des Displays wird dadurch jedoch nicht geändert.
Durch manuelles Ändern des Werts wird jedoch nv_backlight/brightness
tatsächlich die Helligkeit des Displays geändert.
Das Verknüpfen der Hotkeys mit nv_backlight
statt mit acpi_video0
würde mein Problem lösen, aber ich weiß nicht, wie ich das machen soll.
Bearbeiten: Der Popup-Schieberegler für den Fortschrittsbalken wird beim Betätigen der Fn-Tasten für die Helligkeit (Hotkeys) auf dem Bildschirm angezeigt.
Bearbeiten:
Eingang:
cat /sys/class/backlight/nv_backlight/max_brightness
Ausgabe:
100
Eingang:
cat /sys/class/backlight/nv_backlight/actual_brightness
Ausgabe (dieser Wert ändert sich automatisch in den gleichen Wert, den ich manuell eingegeben habe
/sys/class/backlight/nv_backlight/brightness
):10
Eingang:
cat /sys/class/backlight/acpi_video0/max_brightness
Ausgabe:
15
Antwort1
Bash-Skriptredirect-brightness
Ihr Problem ist, dass Funktionstasten zum Erhöhen/Verringern der Helligkeit aktualisiert werden, /sys/class/backlight/acpi_video0/brightness
anstatt/sys/class/backlight/nv_backlight/brightness
Die ursprüngliche Anforderung war, die Funktionstasten abzufangen und sie zur Steuerung des nv_backlight
Treibers zu verwenden. Das Problem dabei ist:
- Schwierige
udev
Skripte - Kein Popup-Benachrichtigungsschieberegler, der die Helligkeit ohne kompliziertes Python-Skripting anzeigt.
Die Lösung besteht darin, inotify
Änderungen an zu überwachen acpi_video0
. Berechnen Sie dann den Helligkeitsprozentsatz und wenden Sie denselben Prozentsatz auf an nv_backlight
.
Im folgenden Bash-Skript müssen Sie Folgendes festlegen:
WatchDriver="/sys/class/backlight/acpi_video0/brightness"
PatchDriver="/sys/class/backlight/nv_backlight/brightness"
Platzieren Sie das Skript /usr/local/bin
und machen Sie es ausführbar mit:
chmod a+x /usr/local/bin/redirect-brightness
Führen Sie zunächst das Skript über die Befehlszeile aus.
redirect-brightness -l
Wenn ein Problem auftritt, überprüfen Sie die Protokolldatei mit:
cat /tmp/redirect-brightness.log
Wenn alles gut funktioniert, fügen Sie es redirect-brightness
zu Ihren Startanwendungen hinzu.
redirect-brightness
Bash-Skript
#!/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
Ursprüngliche Antwort vom 11. Juni 2018.
Antwort zu „In Arbeit“
Es gibt viele nVidia-Benutzer mit ähnlichen Problemen in Ubuntu 18.04:
- Helligkeit auf Laptop MSI GT72VR in Ubuntu 18.04 mit NVIDIA GTX 1060 Mobile funktioniert nicht
- Der Computer wird nicht aus dem Ruhezustand geweckt und die Helligkeit konnte nicht geändert werden
- Helligkeitssteuerung fehlt bei Verwendung von Nvidia-Treibern, erscheint aber erneut mit X.Org
- Xubuntu 18.04: Fn-Helligkeitstasten mit /sys/class/backlight/nv_backlight/ kompatibel machen
- So ändern Sie den Hintergrundbeleuchtungstreiber in Lubuntu
- Helligkeit auf Laptop MSI GT72VR in Ubuntu 18.04 mit NVIDIA GTX 1060 Mobile funktioniert nicht
- NVIDIA-Anzeigeproblem mit Helligkeitssteuerung und Videowiedergabe
- Die Bildschirmhelligkeit kann nicht geändert werden
- Die Helligkeit des Laptop-Bildschirms kann weder mit den Tasten noch mit dem Schieberegler eingestellt werden. Bearbeiten
Vor dem Schreiben eines Skripts
Ich kann ein Skript schreiben, um Änderungen an /acpi_video nachzuahmen und /nv_backlight zu füllen, aber vorher versuche ich Folgendes:
- Bearbeiten
/etc/default/grub
. - Finden
quiet splash
- Hinter dem Splash hinzufügen:
acpi_backlight=vendor
- Speicher die Datei
- Laufen
sudo update-grub
Laut dieser Antwort sollte es bei Ihnen funktionieren:Xubuntu 18.04: Fn-Helligkeitstasten mit /sys/class/backlight/nv_backlight/ kompatibel machen
Wayland
Helligkeit funktioniert unter Wayland nicht. Stellen Sie sicher, dass Sie es nicht verwenden. Siehe:Die Helligkeit des Laptop-Bildschirms kann weder mit den Tasten noch mit dem Schieberegler eingestellt werden. Bearbeiten