GNU/Linux >> Znalost Linux >  >> Ubuntu

5% využití procesoru Xorg po změně jasu notebooku?

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

Ubuntu
  1. Velmi vysoké využití procesoru na notebooku HP Dv7 při nečinnosti?

  2. Změna souborového systému kořenového oddílu po instalaci?

  3. Způsobuje, že Ubuntu na Macbooku Pro má vysoké využití CPU?

  1. Jak omezit využití CPU procesu v Linuxu

  2. Baterie notebooku se po přechodu na Ubuntu rychle vybíjí?

  3. Ubuntu 14.04 po přihlášení zamrzne, pokud je k notebooku připojen další displej?

  1. Žádná regulace jasu na notebooku Asus 75?

  2. Jak zjistit využití CPU

  3. Jenkins běží při velmi vysokém využití CPU