Když změním jas na notebooku pomocí kláves notebooku, jas se po několik minut chová divně a Xorg během této doby spotřebovává 5 % CPU.
Měl jsem stejný účinek na můj předchozí notebook, což jsem připisoval jeho umírajícímu hardwaru. Nyní mám stejný problém po roce používání mého nového notebooku.
Na prvním notebooku jsem používal proprietární ovladače ATI Radeon a na současném používám proprietární ovladače NVIDIA.
Momentálně používám Kubuntu-dev, ale na starém notebooku jsem použil stabilní verzi.
Našel jsem trochu podobné staré vlákno na fórech ubuntu bez odezvy.
Upravit
Zkoušel jsem upravit jas z cli (viz sem a tam) a také pomocí gui wigdetu (jsem na KDE) — ale nic nefunguje:nedbalý stav mě osvobodí rychleji — ale nemění jas.
Jas se mění pouze pomocí kláves jasu notebooku a dokončení úlohy 5% CPU Xorg trvá několik minut.
Přijatá odpověď:
Vyřešeno!
$ find /sys -name "max_brightness"
/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-LVDS-1/intel_backlight/max_brightness
/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/leds/phy0-led/max_brightness
/sys/devices/platform/dell-laptop/backlight/dell_backlight/max_brightness
$ cat /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-LVDS-1/intel_backlight/max_brightness
4648
$ sudo bash -c 'echo 2000 >> /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-LVDS-1/intel_backlight/brightness'
# note that now it is brightness - not max_brightness
Tím se okamžitě změní jas! Stejně jako předtím.
Stále však nevím, co bylo špatně.
Upravit
Řešení lze snadno naskriptovat. Jediná nevýhoda — vyžaduje root a nemám ponětí, jak správně nastavit PolicyKit, abych se bez něj obešel.
Úprava 2 :
Používám následující skript. Má dvě pevně zakódované hodnoty:Max
a BrightnessFile
najdete na řádcích 17 a 18:
#!/bin/bash
# to get description use the -h flag
# exit after a single error:
set -e
# ================
## default values:
Inc=
Dec=
Set=
Get=false
Max=4648 # max_brightness
BrightnessFile=/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-LVDS-1/intel_backlight/brightness
Current=`cat $BrightnessFile`
# ===========
## preambula:
PROGNAME=${0##*/}
PROGVERSION=0.01
noColors=false
usage()
{
cat << EO
usage: $PROGNAME [OPTIONS...]
Changes brightness of the laptop.
The value of the max brightness depends on the hardware, and is hardcoded. On my machine it is 4648:
$ find /sys -name "max_brightness"
/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-LVDS-1/intel_backlight/max_brightness
/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/leds/phy0-led/max_brightness
/sys/devices/platform/dell-laptop/backlight/dell_backlight/max_brightness
$ cat /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-LVDS-1/intel_backlight/max_brightness
4648
Requires superuser privilages.
Examples:
Increase brightness by 10 percents:
$PROGNAME --inc 10
Decrease brightness by 10 percents:
$PROGNAME --dec 10
Set brightness to 10 percents:
$PROGNAME --set 10
optional arguments:
EO
cat << EO | column -s\& -t
-i, --inc & increase brightness (in percents)
-d, --dec & decrease brightness (in percents)
-s, --set & set brightness (in percents)
-g, --get & print current value (in percents)
-G, --GUI & ask password with kdialog
-h, --help & show this output
-v, --version & show version information
EO
}
SHORTOPTS="hvi:d:s:g"
LONGOPTS="help,version,inc:,dec:,set:get"
ARGS=$(getopt -s bash --options $SHORTOPTS --longoptions $LONGOPTS --name $PROGNAME -- "[email protected]")
eval set -- "$ARGS"
while true; do
case $1 in
-i|--inc)
Inc=$2; shift;;
-d|--dec)
Dec=$2; shift;;
-s|--set)
Set=$2; shift;;
-g|--get)
Get=true;;
-h|--help)
usage; exit 0;;
-v|--version)
echo "$PROGVERSION"; exit 0;;
--)
shift; break;;
*)
shift; break;;
esac
shift
done
# =========
## program:
if $Get; then
CurrentRelVal=`bc <<< "$Current*100/$Max"`
echo "Current brightness: $CurrentRelVal%"
exit 0
elif [ -n "$Inc" -a $Inc -eq $Inc 2>/dev/null ]; then
IncAbsVal=`bc <<< "$Current+$Inc*$Max/100"`
sudo bash -c "echo $IncAbsVal >> $BrightnessFile"
exit
elif [ -n "$Dec" -a $Dec -eq $Dec 2>/dev/null ]; then
DecAbsVal=`bc <<< "$Current-$Dec*$Max/100"`
sudo bash -c "echo $DecAbsVal >> $BrightnessFile"
exit 0
elif [ -n "$Set" -a $Set -eq $Set 2>/dev/null ]; then
SetAbsVal=`bc <<< "$Set*$Max/100"`
sudo bash -c "echo $SetAbsVal >> $BrightnessFile"
exit 0
else
usage
fi