[Решено] Не работает ждущий режим на Dell E6520

Автор ksander, 21 января 2014, 19:51:15

« назад - далее »

0 Пользователи и 3 гостей просматривают эту тему.

ksander

Приветствую участников этого сообщества.
Недельку назад поставил Debian jessie себе на ноутбук + несколько пакетов из экспериментальной ветки.
И все это время доводил под себя рабочую машинку с xfce и gnome3 (никак не могу определиться что будет использоваться на постоянной основе. больше склоняюсь к xfce).
Так вот ... В итоге у меня осталось 2 проблемы не решенных (есть подозрение что они зависят между собой ). и ответа однозначного в интернете пока не нашел.
1. laptop-mode

sudo service laptop-mode restart
/usr/sbin/laptop_mode: 205: /usr/sbin/laptop_mode: arithmetic expression: expecting EOF: "CPUFREQ~_DEBUG"
[FAIL] Laptop mode disabled, not active ... failed!
/usr/sbin/laptop_mode: 205: /usr/sbin/laptop_mode: arithmetic expression: expecting EOF: "CPUFREQ~_DEBUG"
[FAIL] Laptop mode enabled, active ... failed!

2. Не выходит из ждущего режима (в ждущий уходит вроде нормально.  Спящий режим работает нормально засыпает/просыпается после увеличения области swap файлом. ), :
вырезки из /var/log/pm-suspend.log

Running hook /usr/lib/pm-utils/sleep.d/99video suspend suspend:
/usr/lib/pm-utils/sleep.d/99video suspend suspend: disabled.

Tue Jan 21 01:26:48 EET 2014: performing suspend
Allocated buffer at 0x11000 (base is 0x0)
ES: 0x1100 EBX: 0x0000
Function not supported?
halt_sys: file ^H, line 67108863
Real mode call failed
This kernel doesn't have KMS support.
Calling save_state
Calling get_mode
Calling do_post
Calling restore_state_from
Calling set_vbe_mode
Tue Jan 21 01:26:59 EET 2014: Awake.
Tue Jan 21 01:26:59 EET 2014: Running hooks for resume
Running hook /usr/lib/pm-utils/sleep.d/99video resume suspend:
/usr/lib/pm-utils/sleep.d/99video resume suspend: disabled.

и вот второй подозрительный момент - из-за чего и связываю с проблемой laptop-mode

Running hook /usr/lib/pm-utils/sleep.d/01laptop-mode resume suspend:
Laptop mode
enabled, active
/usr/sbin/laptop_mode: 205: /usr/sbin/laptop_mode: arithmetic expression: expecting EOF: "CPUFREQ~_DEBUG"
/usr/lib/pm-utils/sleep.d/01laptop-mode resume suspend: Returned exit code 2.


на всякий случай

$ lspci
00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
00:16.3 Serial controller: Intel Corporation 6 Series/C200 Series Chipset Family KT Controller (rev 04)
00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04)
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b4)
00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 (rev b4)
00:1c.2 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 3 (rev b4)
00:1c.3 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 4 (rev b4)
00:1c.5 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 6 (rev b4)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation QM67 Express Chipset Family LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (rev 04)
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 04)
01:00.0 VGA compatible controller: NVIDIA Corporation GF119M [NVS 4200M] (rev ff)
01:00.1 Audio device: NVIDIA Corporation GF119 HDMI Audio Controller (rev ff)
03:00.0 Network controller: Intel Corporation Centrino Advanced-N 6205 [Taylor Peak] (rev 34)
0b:00.0 SD Host controller: O2 Micro, Inc. Integrated MMC/SD controller (rev 05)
0b:00.1 Mass storage controller: O2 Micro, Inc. O2 Flash Memory Card (rev 05)


В общем жду помощи, и если надо предоставлю  дополнительную информацию.  ???
Debian Jessie amd64
XFCE 4.12+Docky

Malaheenee

1) Проверяйте конфигурационные файлы /etc/laptop-mode на наличие параметра "CPUFREQ~_DEBUG", это опечатка - убирайте тильду.
А вообще, lmt не нужен при наличии pm-utils, они дублируют друг друга.
Все мы где-то, когда-то и в чем-то были новичками.

qupl

Вот даже место где может быть эта очЕпятка -
Цитировать/usr/sbin/laptop_mode: 205


Сообщение объединено: 21 января 2014, 21:11:51

Если это не бинарник, ессно.

Malaheenee

qupl, насколько мы помним это не бинарник, но ошибка очень смахивает на опцию. Потому как в бытность использования lmt такой ошибки не выскакивало :)
Все мы где-то, когда-то и в чем-то были новичками.

ksander

#4
Цитата: Malaheenee от 21 января 2014, 20:39:44
1) Проверяйте конфигурационные файлы /etc/laptop-mode на наличие параметра "CPUFREQ~_DEBUG", это опечатка - убирайте тильду.
А вообще, lmt не нужен при наличии pm-utils, они дублируют друг друга.

/etc/laptop-mode$ grep -r CPUFREQ .
ничего не находит.

То есть можно lmt удалить вовсе ?
мне нужно чтоб нормально процессор срабатывал по изменениям частот и при закрытии крышки отправлять в ждущий режим.
Процессор работает как надо, правда я в  /etc/laptop-mode/conf.d/cpufreq.conf изменил  ondemand на вот такие значения:
BATT_CPU_GOVERNOR=powersave
LM_AC_CPU_GOVERNOR=powersave
NOLM_AC_CPU_GOVERNOR=performance
Так как для i7 параметр ondemand уже не используется,  а только powersave и performance остались.

Осталось только проблему со ждущим решить.

Попробовал только что удалить ltm , забекапив конфигурацию ...


предыдущих вырезок нету в логах теперь., теперь без ltm  из /var/log/pm-suspend.log
Tue Jan 21 22:52:40 EET 2014: performing suspend
Allocated buffer at 0x11000 (base is 0x0)
ES: 0x1100 EBX: 0x0000
и тут далее мноооого символов "@"

у меня 16Гб ОЗУ... в этом может быть проблема ?  jessie adm64
Debian Jessie amd64
XFCE 4.12+Docky

qupl

Цитата: ksander от 22 января 2014, 00:12:43у меня 16Гб ОЗУ... в этом может быть проблема ?  jessie adm64
а размер swap какой?

Цитата: ksander от 22 января 2014, 00:12:43/etc/laptop-mode$ grep -r CPUFREQ . ничего не находит.
/usr/sbin/laptop_mode - здесь нужно было поискать

Malaheenee

#6
Мы удалили, заменив его на вот такой скрипт:
Код (/etc/pm/power.d/f3sr-power) Выделить
# Параметры CPU
CTL_CPU="/sys/devices/system/cpu"
CPU_GOVERNOR="conservative"

# Параметры ядра
CTL_VM="/proc/sys/vm"
VM_DIRTY_WRITEBACK=$(cat $CTL_VM/dirty_writeback_centisecs)
VM_LAPTOP_MODE=$(cat $CTL_VM/laptop_mode)

# Регулировка яркости
CTL_BACKLIGHT="/sys/class/backlight/acpi_video0"
LCD_PREV_BRIGHTNESS=$(cat $CTL_BACKLIGHT/actual_brightness)

# Настройка энергосбережения для Radeon
CTL_VGA_DEVICE="/sys/class/drm/card0/device"
VGA_POWER_DPM_STATE=$(cat $CTL_VGA_DEVICE/power_dpm_state)

# Выгружаемые модули
MODULES="uvcvideo"
MODULE_COMMAND="--remove"

# Прочие переменные
CURRENT_MODE="ac"

# Установить переменные при работе от сети (false)
ac_power()
{
    CURRENT_MODE="ac_power"
    CPU_GOVERNOR="conservative"
    LCD_BRIGHTNESS=$(cat $CTL_BACKLIGHT/max_brightness)
    VM_LAPTOP_MODE=0
    VM_DIRTY_WRITEBACK=500
    VGA_POWER_DPM_STATE="balanced"
    MODULE_COMMAND=""
}

# Установить переменные при работе от батареи (true)
battery_power() {
    CURRENT_MODE="battery"
    CPU_GOVERNOR="powersave"
    LCD_BRIGHTNESS=$(expr 30 \* $LCD_PREV_BRIGHTNESS / 100)
    VM_LAPTOP_MODE=5
    VM_DIRTY_WRITEBACK=60000
    VGA_POWER_DPM_STATE="battery"
    MODULE_COMMAND="--remove"
}

# Применить настройки
apply_settings() {
    echo -n "Setting user-specific parameters for $CURRENT_MODE... "

    echo $LCD_BRIGHTNESS > $CTL_BACKLIGHT/brightness
   
    for CPU in $CTL_CPU/* ; do
      if [ -e $CPU/cpufreq ] ; then
        echo $CPU_GOVERNOR > $CPU/cpufreq/scaling_governor
      fi
    done
   
    echo $VGA_POWER_DPM_STATE > $CTL_VGA_DEVICE/power_dpm_state

    echo $VM_LAPTOP_MODE > $CTL_VM/laptop_mode
    echo $VM_DIRTY_WRITEBACK > $CTL_VM/dirty_writeback_centisecs
   
    for i in $MODULES ; do
      modprobe $MODULE_COMMAND $i
    done

    [ "$?" -eq 0 ] && echo Done. || echo Failed.
}

# Запуск в pm-utils
case "$1" in
  false)
    ac_power
    apply_settings
  ;;
  true)
    battery_power
    apply_settings
  ;;
  *)
    exit $NA
  ;;
esac

(как он называется - неважно, главное путь в /etc/pm/power.d). Все Вам не нужное можно безболезненно выкинуть.
Все остальное делают уже существующие скрипты pm-utils в /usr/lib/pm-utils, настроенные при помощи:
Код (/etc/pm/config.d/f3sr-settings) Выделить
INTEL_AUDIO_POWERSAVE=true
SATA_ALPM_ENABLE=true
HOOK_BLACKLIST="laptop-mode xfs_buffer pcie_aspm"
SLEEP_MODULE="kernel"
SUSPEND_MODULES=""

Аналогичный скрипт можно написать и для режима засыпания (/etc/pm/sleep.d).

Этот скрипт - результат разборок. Он не претендует на оригинальность и какое-то суперкодирование, его еще улучшать и улучшать, но свою функцию он выполняет отлично.
Все мы где-то, когда-то и в чем-то были новичками.

ksander

#7
Цитата: qupl от 22 января 2014, 06:33:11
Цитата: ksander от 22 января 2014, 00:12:43у меня 16Гб ОЗУ... в этом может быть проблема ?  jessie adm64
а размер swap какой?
физический 2 Гб, но для спящего  режима я еще файлом добавил 16Гб.  Повторюсь - спящий режим работает нормально (но он меня не устраивает по длительности отключения и включения.). Проблема только со ждущим.
free -h
             total       used       free     shared    buffers     cached
Mem:           15G       3,6G        12G        20M       298M       1,5G
-/+ buffers/cache:       1,8G        13G
Swap:          18G         0B        18G



Сообщение объединено: 22 Январь 2014, 14:05:55

Цитата: Malaheenee от 22 января 2014, 10:09:54
Этот скрипт - результат разборок. Он не претендует на оригинальность и какое-то суперкодирование, его еще улучшать и улучшать, но свою функцию он выполняет отлично.
Попробовал поставить
на процесс выхода из ждущего режима не повлияло. но ошибок вроде нет при переходе в ждущий. лог прилагаю.
куда еще можно посмотреть что происходит при выходе из ждущего режима ?

Сообщение объединено: 22 Январь 2014, 14:21:26

почистил сессии xfce сейчас.
при выходе из ждущего пробует загрузиться и просто моргать(бело-черным) экран начинает и все на этом.
Может ли на это влиять как-то bumblebee+nvidia ?

Сообщение объединено: 22 Январь 2014, 15:07:50

Цитата: qupl от 22 января 2014, 06:33:11
Цитата: ksander от 22 января 2014, 00:12:43/etc/laptop-mode$ grep -r CPUFREQ . ничего не находит.
/usr/sbin/laptop_mode - здесь нужно было поискать

в 205- строке вот такое:

enableDebug ()
{
        # Check if debug is enabled
        if [ x$(($(basename $1 | cut -d . -f1 | tr "[:lower:]" "[:upper:]" | sed 's/-/_/g')_DEBUG)) = x1 ]; then
                set -vx
        fi
}


Сообщение объединено: 23 января 2014, 00:05:28

Значит так  ... ждущий режим заработал !  :)
вернул laptop_mode + тот скрипт для pm-utils, что советовали выше.
виной оказались дополнительные параметры ядра в /etc/default/grub
bumblebee+nvidia тоже изначально работать не хотело из коробки, то когда настраивал их и добавлял параметры согласно разным советам...
# GRUB_CMDLINE_LINUX_DEFAULT="acpi_backlight=vendor nouveau.blacklist=1 rdblacklist=nouveau rcutree.rcu_idle_gp_delay=1 quiet nomodeset"
сейчас вернул в начальное состояние
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
И ждущий режим заработал и bumblebee+nvidia тоже работают ... значит эти параметры загрузки ядра не влияли ни на что, а повлияли изменения в файлах конфигурации.

Если кому интересно то еще можем разобраться с этим

$ sudo service laptop-mode restart
/usr/sbin/laptop_mode: 205: /usr/sbin/laptop_mode: arithmetic expression: expecting EOF: "CPUFREQ~_DEBUG"
[FAIL] Laptop mode disabled, not active ... failed!
/usr/sbin/laptop_mode: 205: /usr/sbin/laptop_mode: arithmetic expression: expecting EOF: "CPUFREQ~_DEBUG"
[FAIL] Laptop mode enabled, not active ... failed!

пробовал ставить Laptop mode из стабильной ветки - скрипт выдает то же самое.

Если нет то тему можно закрывать.
Debian Jessie amd64
XFCE 4.12+Docky


ksander

Цитата: qupl от 23 января 2014, 19:52:03
cat /usr/sbin/laptop_mode | grep CPUFREQ
писал же  ...
в 205- строке вот такое:

enableDebug ()
{
        # Check if debug is enabled
        if [ x$(($(basename $1 | cut -d . -f1 | tr "[:lower:]" "[:upper:]" | sed 's/-/_/g')_DEBUG)) = x1 ]; then
                set -vx
        fi
}


  if [ x$(($(basename $1 | cut -d . -f1 | tr "[:lower:]" "[:upper:]" | sed 's/-/_/g')_DEBUG)) = x1 ]; then - это и есть 205-я строка.
Debian Jessie amd64
XFCE 4.12+Docky

qupl

ksander, да, не заметил, что написали уже.
Ошибка  в ней и происходит. Где-то в параметрах все-таки передается CPUFREQ~. Если не лень поищите в /etc.


Сообщение объединено: 23 января 2014, 21:47:59

Кстати, регистр букв может быть другим.

Malaheenee

Цитата: qupl от 23 января 2014, 21:46:47Если не лень поищите в /etc.
В частности, здесь:
/etc/laptop-mode/conf.d/cpufreq.conf
/etc/laptop-mode/laptop-mode.conf


И да, наш скрипт просто дублирует функции lmt. так что лучше определиться, что же использовать :)
Все мы где-то, когда-то и в чем-то были новичками.

qupl

!!!не делайте так!!!
[ot]Еще можно топорным неправильным методом закомментировать эту проверку на DEBUG, чтобы не было ошибки, а скрипт работал дальше.[/ot]

ksander

#13
/etc$ grep -ri CPUFREQ~ .
ничего такого нету :(
значит, больше похоже на баг склейки в самом скрипте.  Пробовал даже ставить из стабильной ветки - то же самое.

Сообщение объединено: 24 Январь 2014, 03:23:37

Цитата: Malaheenee от 23 января 2014, 21:55:02
И да, наш скрипт просто дублирует функции lmt. так что лучше определиться, что же использовать :)
В общем снес laptop-mode - вроде все работает и без него как надо.
Еще заметил что частота процессора часто 3Ггц и при этом ничего особо не делается - загрузка 1%. Это было и с ltm тоже. хотя стоит режим powersave.

Сообщение объединено: 24 января 2014, 04:02:38

Решил этот вопрос параметром ядра в общем intel_pstate=disable. Тем самим запустив старый режим управления частотой acpi-cpufreq, теперь частота ядра больше 2.2Ггц не поднимается и если нет необходимости то 800 МГц. Для экеномии энергии вот такие параметры у меня сейчас:
GRUB_CMDLINE_LINUX_DEFAULT="i915.i915_enable_rc6=1 intel_pstate=disable quiet splash"
i915.i915_enable_rc6=1 - это для экеномии энергии интегрированой видео - по умолчанию этот параметр выключен наткнулся случайно ...
Для моих потребностей этого достаточно, а отсутствие шума вентиляторов всегда радует :).
Debian Jessie amd64
XFCE 4.12+Docky

Malaheenee

#14
Цитата: ksander от 24 января 2014, 02:26:30Решил этот вопрос параметром ядра в общем intel_pstate=disable
А вот это Вы, батенька, зря. Гугление дает очень много интересной информации. Есть у нас второй ноутбук с SandyBridge, так там можно поставить принудительно регулятор powersave и система всегда будет занижать частоты (правда, они будут скакать как зайцы от охотника).
Кроме того, по пути в /sys/devices/system/cpu/intel_pstate/{max,min}_perf_pct можно указать значения нагрузки, при которых частоты будут повышаться и понижаться.

Сообщение объединено: 25 января 2014, 14:55:33

Хотя... Мы его тоже отключим, наверное. Понятно, что процессор рассчитан на такое, но все же такие скачки частоты противны.
Все мы где-то, когда-то и в чем-то были новичками.