Автодимминг экрана (не работает xfce-power-manager)

Kubuntu, Xubuntu и другие

Модератор: Модераторы разделов

Schlecht
Сообщения: 402

Автодимминг экрана

Сообщение Schlecht »

Здравствуйте.

Вступление/разъяснение:


Xubuntu 12.04, 64 bit на ноуте ~ 2010 года с интегрированным видео Intel (в чипсете, а не в проце, ещё до всяких i3...i7). XFCE 4.10.

Не работает xfce-power-manager. Можно дёргать настройки как угодно, но монитор по таймеру не выключается и не уменьшает яркость в простое. Яркость однако меняется с клавиатуры без проблем и сохраняется. В автозагрузке power-manager есть, среди активных процессов его вижу:

xfce-power-manager
xfce-power-manager –restart –sm-clientid …


Жить с этим, как оказалось, вполне реально, спасает xscreensaver, в котором можно настроить автовыключение экрана, но не уменьшение яркости. Победить power-manager как-то не удалось, так что я на это дело плюнул. В общем, всё бы ничего, но...

Проблема.


С предпоследним обновлением прилетел новый X-server со всеми драйверами. После ребута экран начал сбрасывать яркость в бездействии, строго по таймеру power-manager'a – т.е. он наконец заработал, в т.ч. и после сна и ребутов.
Счастье, однако, было недолгим – после следующего обновления (ядра) всё вернулось на исходные – power-manager не пашет, пользуюсь xscreensaver. Загрузился со старым ядром – безрезультатно, power-manager не заработал.
Я смутно начал припоминать, что когда только ставил систему (давно), всё работало как надо, но автодимминг перестал работать после того, как я накатил все апдейты.
В общем, проблем с железом, я подозреваю, нет, а всё дело в каких-то настройках, которые меняются при обновлении. Поскольку у меня LTS, обновления иксов и ядра не должны бы содержать ничего кроме багфиксов безопасности, так что я полагаю, новые иксы ничего такого не “починили”, а просто что-то переписали в настройках (то же относится и к ядру).

Короче, хочу автодимминг экрана, раз уж он может работать.
Вопрос – что делать, куда рыть?

Спасибо.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21386
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Автодимминг экрана

Сообщение Bizdelnick »

Опции ядра, возможно?
Покажите /etc/default/grub
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Schlecht
Сообщения: 402

Re: Автодимминг экрана

Сообщение Schlecht »

Вот:

Код: Выделить всё

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=vendor"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"


acpi_backlight=vendor
я вставил вручную (давно), без этого яркость экрана не регулировалась с клавиатуры и не сохранялась после перезагрузки.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21386
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Автодимминг экрана

Сообщение Bizdelnick »

А в /boot/grub/grub.cfg что?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Schlecht
Сообщения: 402

Re: Автодимминг экрана

Сообщение Schlecht »

Вот:

Код: Выделить всё

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function recordfail {
  set recordfail=1
  if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos3)'
search --no-floppy --fs-uuid --set=root e920b7b4-07f6-43e4-bf5f-708178b5435e
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  insmod part_msdos
  insmod ext2
  set root='(hd0,msdos3)'
  search --no-floppy --fs-uuid --set=root e920b7b4-07f6-43e4-bf5f-708178b5435e
  set locale_dir=($root)/boot/grub/locale
  set lang=en_US
  insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
  set timeout=-1
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
    set gfxpayload="${1}"
    if [ "${1}" = "keep" ]; then
        set vt_handoff=vt.handoff=7
    else
        set vt_handoff=
    fi
}
if [ "${recordfail}" != 1 ]; then
  if [ -e ${prefix}/gfxblacklist.txt ]; then
    if hwmatch ${prefix}/gfxblacklist.txt 3; then
      if [ ${match} = 0 ]; then
        set linux_gfx_mode=keep
      else
        set linux_gfx_mode=text
      fi
    else
      set linux_gfx_mode=text
    fi
  else
    set linux_gfx_mode=keep
  fi
else
  set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "${linux_gfx_mode}" != "text" ]; then load_video; fi
menuentry 'Ubuntu, with Linux 3.2.0-74-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos3)'
    search --no-floppy --fs-uuid --set=root e920b7b4-07f6-43e4-bf5f-708178b5435e
    linux    /boot/vmlinuz-3.2.0-74-generic root=UUID=e920b7b4-07f6-43e4-bf5f-708178b5435e ro   quiet splash acpi_backlight=vendor $vt_handoff
    initrd    /boot/initrd.img-3.2.0-74-generic
}
menuentry 'Ubuntu, with Linux 3.2.0-74-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos3)'
    search --no-floppy --fs-uuid --set=root e920b7b4-07f6-43e4-bf5f-708178b5435e
    echo    'Loading Linux 3.2.0-74-generic ...'
    linux    /boot/vmlinuz-3.2.0-74-generic root=UUID=e920b7b4-07f6-43e4-bf5f-708178b5435e ro recovery nomodeset
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-3.2.0-74-generic
}
submenu "Previous Linux versions" {
menuentry 'Ubuntu, with Linux 3.2.0-72-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos3)'
    search --no-floppy --fs-uuid --set=root e920b7b4-07f6-43e4-bf5f-708178b5435e
    linux    /boot/vmlinuz-3.2.0-72-generic root=UUID=e920b7b4-07f6-43e4-bf5f-708178b5435e ro   quiet splash acpi_backlight=vendor $vt_handoff
    initrd    /boot/initrd.img-3.2.0-72-generic
}
menuentry 'Ubuntu, with Linux 3.2.0-72-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos3)'
    search --no-floppy --fs-uuid --set=root e920b7b4-07f6-43e4-bf5f-708178b5435e
    echo    'Loading Linux 3.2.0-72-generic ...'
    linux    /boot/vmlinuz-3.2.0-72-generic root=UUID=e920b7b4-07f6-43e4-bf5f-708178b5435e ro recovery nomodeset
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-3.2.0-72-generic
}
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos3)'
    search --no-floppy --fs-uuid --set=root e920b7b4-07f6-43e4-bf5f-708178b5435e
    linux16    /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos3)'
    search --no-floppy --fs-uuid --set=root e920b7b4-07f6-43e4-bf5f-708178b5435e
    linux16    /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows Recovery Environment (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod fat
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 3C98-AC5D
    drivemap -s (hd0) ${root}
    chainloader +1
}
menuentry "Windows 7 (loader) (on /dev/sda2)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(hd0,msdos2)'
    search --no-floppy --fs-uuid --set=root 72FC7E59FC7E1795
    chainloader +1
}
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
  set timeout=10
fi
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21386
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Автодимминг экрана

Сообщение Bizdelnick »

А если загрузиться в recovery - как будет себя вести?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Schlecht
Сообщения: 402

Re: Автодимминг экрана

Сообщение Schlecht »

Я вот ещё что нашёл:

http://ubuntuforums.org/showthread.php?t=2208549

По описаниям - точно то же что у меня, вывод:

Код: Выделить всё

$ for interface in /sys/class/backlight/*; do echo -e "\n $interface"; cat $interface/{brightness,max_brightness,actual_brightness}; done

 /sys/class/backlight/asus_laptop
10
15
10

 /sys/class/backlight/intel_backlight
2556430
3235185
2556430


Но только у меня всё это каким-то образом работало как надо пару дней с перезагрузками и сном...

Recovery сейчас попробую.

P.S. А что там в recovery надо выбирать - просто resume normal boot?
Спасибо сказали:
Schlecht
Сообщения: 402

Re: Автодимминг экрана

Сообщение Schlecht »

Короче, есть прогресс.

Баг описан тут:
https://bugs.launchpad.net/ubuntu/+source/x...er/+bug/1067749

Поскольку для 12.04 никто никаких апдейтов xfce делать не будет, пришлось собрать пропатченный пакет (см. Martin Matuska).
Установился, работает частично, т.е. автодимминг заработал, но отключать экран по таймеру полностью xfce4-power-manager как не мог, так и не может. При этом на закрытие крышки реагирует нормально - т.е. отправляет в сон. Использую в связке с xscreensaver'ом. В общем, такая вот корявая клюка, которая что-то починяет непонятно как.
Спасибо сказали: