Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Поделитесь успехами снижения энергопотребления Core i7/i5/i3 на 12.04  (Прочитано 6992 раз)

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

Оффлайн kitaets

  • Автор темы
  • Активист
  • *
  • Сообщений: 571
  • Аналитик
    • Просмотр профиля
Какие у кого имеются успехи с SandyBridge на 12.04?
Я уже замучился с Asus U24E на i3: до 5 часов даже не дотягивает и вентилятор постоянно крутит.
Ставил jupiter.
Прописал в груб:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=force i915.i915_enable_fbc=1 i915.lvds_downclock=1 drm.vblankoffdelay=1"Поигрался с настройками, описанными здесь, а также в нескольких темах на форуме. Но описывают в основном более ранние версии Ubuntu и говорят, что в 12.04 часть функций и так уже реализована, может конфликты какие, не знаю.
Я в результате увидел в powertop после перезагрузки потребление меньше 8 Вт, но при сёрфинге всё равно поднимается выше 20 Вт (без флэша, конечно). Что интересно, powertop показывает по всем "виртуальным процессорам":
Idle 100,0%- это результат прописывания в скрипт лимита частоты:
echo 800000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freqРазве что ядро не пробовал обновлять.
«Если ты не наступил на грабли, это не значит, что их нет», – kitaets.

Оффлайн kitaets

  • Автор темы
  • Активист
  • *
  • Сообщений: 571
  • Аналитик
    • Просмотр профиля
Обновил ядро до 3.3.7, ничего не изменилось.
«Если ты не наступил на грабли, это не значит, что их нет», – kitaets.

Оффлайн kv_msn

  • Участник
  • *
  • Сообщений: 192
  • Dnepropetrovsk
    • Просмотр профиля
Проц intel i5 настраивал  как  здесь, только переделал 2й скрипт под себя(занизив частоту CPU на 1.33 реальная 2.54) кулер почти не крутится, тепература 43 - 52С(при просмотре flash может быть и до 62С). Сколько держит от батареи  особо не проверял примерно часа три.
Ноутбук HP Pavilion dv6-3152er (XR551EA), Intel® Core™i5-460M (2.53 ГГц)/ RAM 3ГБ / HDD 500ГБ / ATI Radeon HD 5650 / OC Ubuntu 14.04 LTS Router MIKROTIK 951Ui-2HnD

Оффлайн kitaets

  • Автор темы
  • Активист
  • *
  • Сообщений: 571
  • Аналитик
    • Просмотр профиля
Проц intel i5 настраивал  как  здесь, только переделал 2й скрипт под себя(занизив частоту CPU на 1.33 реальная 2.54) кулер почти не крутится, тепература 43 - 52С(при просмотре flash может быть и до 62С). Сколько держит от батареи  особо не проверял примерно часа три.
Видать, модель совсем другая? Экран, наверное, большой и DVD есть? Мой-то и так без подкручиваний больше 3 часов тянет. Но заявлено до 8 часов, так что пытаюсь получить хотя бы шесть при слабой нагрузке. К тому же, пишут, что в винде он тихий, а у меня пропеллер не останавливается.
От указанной инструкции почему-то мало пользы.
Ещё попробовал TLP.
Ядро сначала до 3.3.7 обновил, потом прочитал, что в 3.4 улучшено энергосбережение для intel, обновился до 3.4.
Насколько я понял, laptop-mode-tools, установленные по умолчанию, с ядром 3.4 умеют переводить в энергосберегающий режим большее количество устройств - это я смотрю по powertop. Той же картины по устройствам я добивался и при правке power.sh (по указанной инструкции), но проблема в том, что чуть только начинаешь что-то делать - и потребление взлетает, а прогнозируемое время при полной батарее падает до 3 часов.
«Если ты не наступил на грабли, это не значит, что их нет», – kitaets.

Оффлайн kitaets

  • Автор темы
  • Активист
  • *
  • Сообщений: 571
  • Аналитик
    • Просмотр профиля
Сменил винт на CF, установил свежую систему. Обновление ядра до 3.4 само по себе ничего не даёт, Powertop при загрузке показывает те же 12.1 Вт, что и до обновления. Т.е. мои предположения относительно laptop-mode-tools оказались ошибочными. Буду продолжать эксперименты.
«Если ты не наступил на грабли, это не значит, что их нет», – kitaets.

Оффлайн gridis

  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Привет, у нас с тобой похожие модели, у меня Asus ux31e
1. Не когда не ведись на то что показывает прогнозируемое время, так как оно пишет согласно времени измерения, а не реального потребления... так что если он пишет 3 часа, то на деле, если ты реально будешь работать за машиной, может быть больше +20% примерно, так как не всегда у тебя будет проц пахать и тд
2. Измени GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=force i915.i915_enable_fbc=1" остальное ничего сейчас не дает, в ядре больше 3.2
3. Проверь состояние дисплея, так как если он не на минимуме, то у тебя он кушает много... при 50% работе ты больше 4 часов при полной зарядки не увидишь :)
4. Смотри что показывает powertop и что он показывает как "Bad" и сведи к "Good", тогда у тебя будет 7-8 часов как у меня сейчас


Но у меня сейчас возникли 3 проблемы, которые я пока без успешно не могу решить:
1. Когда вынимаю штекер из питания, система виснет, при это если это делать при включении компа, когда он просит логин/пароль, то нормально переходит в режим экономии и обратно, а сейчас постоянно зависает и отключается....может знаешь как лечить или кто другой знает?
2. Тачпад, постоянно сбиваются настройки 2 пальцевого управления и чувствительность
3. Wi-Fi оставляет желать лучшего, там где в Win7 50-60 мегабит, у меня дай бог 11-15 (с перебоями)

Оффлайн kitaets

  • Автор темы
  • Активист
  • *
  • Сообщений: 571
  • Аналитик
    • Просмотр профиля
gridis,
2.В прошлой системе, на HDD, мне показалось, что тюнинг grub ничего не даёт, но сейчас я тщательнее решаю вопрос энергопотребления, так что попробую, посмотрю, что получится.
3.Дисплей у тебя ощутимо гасится? У меня - не особо, если сравнивать с Eee, на котором яркость убирается почти до полной невидимости.
4.В powertop пожмякать - это будет последний шаг, т.к. я не понимаю, куда он это прописывает и как вручную отрегулировать.
5.Ты не пробовал Jupiter? Мне показалось, что в прошлой системе от него не было толку абсолютно. Хотя на Eee переключение режимов сразу ощущалось, в т.ч. по изменению скорости вентилятора.

По твоим вопросам посмотри здесь, может найдёшь рецепт.

Пользователь решил продолжить мысль 14 Сентября 2012, 16:33:08:
Новости экспериментов :idiot2:
Для grub оптимальным набором настроек оказалось:
GRUB_CMDLINE_LINUX_DEFAULT="pcie_aspm=force drm.vblankoffdelay=1 i915.semaphores=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1"ну или
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=force drm.vblankoffdelay=1 i915.semaphores=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1", т.к. "quiet splash" действует только на экран загрузки.
Почему так:
- если убрать drm.vblankoffdelay=1, то возникают проблемы при входе пользователя: при первой попытке выкидывает обратно на экран логина, вторая оказывается успешной
- при удалении любой из остальных опций энергопотребление возрастает, несмотря на неоднократные утверждения, что некоторые из них уже реализованы в ядре, а ядро у меня - 3.4

Jupiter очень радовал на Eee. Но здесь он оказался просто-напросто вреден: пожирает 2 Вт. Так что я его снёс.
« Последнее редактирование: 14 Сентября 2012, 16:33:08 от kitaets »
«Если ты не наступил на грабли, это не значит, что их нет», – kitaets.

Оффлайн gridis

  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Ну я не исключаю, что ты изменением grub добьешься каких либо изменение, но они будут не столь значительными +5-15%, но ты говоришь что там у тебя 2 часа работает, а должен 8

насчет jupiter сказать ничего не могу, но сейчас я ее удалил, потому что из-за нее произошли модификация acpid программы и у меня выключался бук после выключения питания

Оффлайн kitaets

  • Автор темы
  • Активист
  • *
  • Сообщений: 571
  • Аналитик
    • Просмотр профиля
Ну не 2 часа, а уже больше 5 :)
Я со стандартным ядром добивался нагрузки меньше 8 Вт, а на 3.4 всегда более 10 при всех ухищрениях (в т.ч. со скриптами). Вот думаю попробовать откатиться на 3.2, может лучше станет.
«Если ты не наступил на грабли, это не значит, что их нет», – kitaets.

Оффлайн hrabrik

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
lenovo thinkpad x230 i7 16ram disk ssd ubuntu 12.04

Нашел на просторах вот такой скрип и чуть подправил под себя, в простои добился ~7w ~8w!
Почему то уменя это скрипт а точней функия devices_pci вызывает баг, комп при shutdown не выключается а перезагружается!

#!/bin/bash
# Public domain. Fred Morcos (fred dot morcos at gmail dot com)

### Configuration variables

# Linux-Powersave-Scripts scriplets (or "modules") to use
SCRIPTLETS=" processes disks vm_writeback nmi_watchdog pcie_aspm \
            backlight laptop_mode udisks processor usb wireless \
            sata devices_pci devices_i2c journal_commit \
            audio runtime scheduler atime hugepage "

# Processes to kill
PROCESSES_KILL="bootlogd minilogd"

# Primary disks will be running all the time (sys, home)
DISKS_PRIMARY="sda"

# Secondary disks are those that are rarely used (media)
DISKS_SECONDARY="sdb"

# Wireless devices
WLAN_DEVS="wlan0"

# Ethernet devices
ETH_DEVS="eth0"

### Routines

processes () {
    for i in $PROCESSES_KILL; do
    killall $i &>/dev/null
    done
}

disks () {
    case $1 in
    true)
        for i in $DISKS_PRIMARY; do
    if [ -e /dev/$i ]; then
    hdparm -a 256 -A 1 -S 50 -B 200 -K 1 /dev/$i &>/dev/null
    fi
        done

        for i in $DISKS_SECONDARY; do
    if [ -e /dev/$i ]; then
    hdparm -a 256 -A 1 -S 10 -B 200 -K 1 /dev/$i &>/dev/null
    fi
        done
        ;;
    false)
        for i in $DISKS_PRIMARY; do
    if [ -e /dev/$i ]; then
    hdparm -a 256 -A 1 -S 255 -B 255 -K 1 /dev/$i &>/dev/null
    fi
        done

        for i in $DISKS_SECONDARY; do
    if [ -e /dev/$i ]; then
    hdparm -a 256 -A 1 -S 50 -B 200 -K 1 /dev/$i &>/dev/null
    fi
        done
        ;;
    *) echo "disks: bad param" ;;
    esac
}

vm_writeback () {
    writeback=/proc/sys/vm/dirty_writeback_centisecs
    expire=/proc/sys/vm/dirty_expire_centisecs
   
    case $1 in
true)
    echo 1500 > $writeback # 60 seconds
    echo 1500 > $expire    # 60 seconds
    ;;
false)
    echo 500 > $writeback # 10 seconds
    echo 500 > $expire    # 10 seconds
    ;;
*) echo "vm_writeback: bad param" ;;
    esac
}



nmi_watchdog () {
    echo 0 > /proc/sys/kernel/nmi_watchdog # echo 1 for performance?
}

pcie_aspm () {
    file=/sys/module/pcie_aspm/parameters/policy

    case $1 in
    true)       echo powersave   > $file ;;
    false)       echo performance > $file ;;
    *) echo "pcie_aspm: bad param" ;;
    esac
}



backlight () {
    file=/sys/devices/pci0000:00/0000:00:02.0/backlight/acpi_video0/brightness

    case $1 in
    true) echo 2 > $file ;;
    false) echo 4 > $file ;;
    *) "backlight: bad param" ;;
    esac
}

laptop_mode () {
    file=/proc/sys/vm/laptop_mode

    case $1 in
    true) echo 5 > $file ;;
    false) echo 0 > $file ;;
    *) "laptop_mode: bad param" ;;
    esac
}

udisks () {
    udisks --inhibit-all-polling &>/dev/null
}

processor () {
    #modprobe acpi-cpufreq
    #modprobe cpufreq_stats

    scaling_govs=/sys/devices/system/cpu/*/cpufreq/scaling_governor

    #true_gov=powersave
    #false_gov=ondemand

    for i in $scaling_govs; do
    case $1 in
    true) echo powersave > $i ;;
    false) echo ondemand > $i ;;
        *)   echo "processor: bad param" ;;
    esac
    done
}



usb () {
    case "$1" in
        true)
            # USB powersaving
            for i in /sys/bus/usb/devices/*/power/autosuspend; do
                echo 1 > $i
            done
            #usb_not_wacom=$(find /sys/bus/usb/devices/*/power/control | grep -vi 2-1.5)
            for i in /sys/bus/usb/devices/*/power/control; do
                echo auto > $i
            done
            #echo 1 > /sys/module/usbcore/parameters/autosuspend
        ;;

        false)
            for i in /sys/bus/usb/devices/*/power/autosuspend; do
                echo 2 > $i
            done
            for i in /sys/bus/usb/devices/*/power/control; do
                echo on > $i
            done
        ;;
    esac
}

wireless () {
    for i in $WLAN_DEVS; do
    case $1 in
        true)
    iwconfig $i txpower auto
    iwconfig $i power on
    # iwconfig $i power saving 3
    # iwconfig $i power timeout 100m
    # iwconfig $i power all

    # iwpriv $i set_power 5
    ;;
        false)
    iwconfig $i txpower fixed
    iwconfig $i power on
    # iwconfig $i power saving 1
    # iwconfig $i power timeout 100m
    # iwconfig $i power all

    # iwpriv $i set_power 0
    ;;
        *) "wireless: bad param" ;;
    esac
    done
}

ethernet () {
    ethtool -s em1 wol d
}

sata () {
    sata_links=/sys/class/scsi_host/host*/link_power_management_policy

    for i in $sata_links; do
    case $1 in
    true)       echo min_power       > $i ;;
    false)       echo max_performance > $i ;;
        *) echo "sata: bad param" ;;
    esac
    done
}

devices_pci () {
    device_pci=/sys/bus/pci/devices/*/power/control
    for i in $device_pci; do
    case $1 in
        true)       echo auto > $i ;;
        false)       echo on   > $i ;;
        *) echo "devices_pci: bad param" ;;
    esac
    done
}

devices_i2c () {
    device_i2c=/sys/bus/i2c/devices/*/power/control
    for i in $device_pci; do
    case $1 in
        true)       echo auto > $i ;;
        false)       echo on   > $i ;;
        *) echo "devices_i2c: bad param" ;;
    esac
    done
}

audio () {
    controllers=/sys/module/snd_*/parameters/power_save_controller
    devices=/sys/module/snd_*/parameters/power_save

    case $1 in
    true)
        for i in $controllers; do
    echo Y > $i
        done

        for i in $devices; do
    echo 1 > $i
        done
        ;;
    false)
        for i in $controllers; do
    echo N > $i
        done

        for i in $devices; do
    echo 0 > $i
        done
        ;;
    *) echo "audio: bad param" ;;
    esac
}

runtime () {
    device_controls=/sys/devices/*/power/control

    for i in $device_controls; do
    case $1 in
        true)       echo auto > $i ;;
        false)       echo on   > $i ;;
        *) "runtime: bad param" ;;
    esac
    done
}

scheduler () {
    smt=/sys/devices/system/cpu/sched_smt_power_savings
    mc=/sys/devices/system/cpu/sched_mc_power_savings

    if [ ! -w $smt ]; then
    smt=/dev/null
    fi

    if [ ! -w $mc ]; then
    mc=/dev/null
    fi

    case $1 in
    true)
        echo 1 > $smt
        echo 1 > $mc
        ;;

    false)
        echo 0 > $smt
        echo 0 > $mc
        ;;
    *) echo "scheduler: bad param" ;;
    esac
}

journal_commit () {
    while read DEV MOUNT FSTYPE REST; do
case $1 in
    true)
if [ $FSTYPE == ext4 ]; then
    mount -o remount,commit=600 $DEV
fi
;;

    false)
if [ $FSTYPE == ext4 ]; then
    mount -o remount,commit=0 $DEV
fi
;;
    *) echo "journal_commit: bad param" ;;
esac
    done < /proc/mounts
}

atime () {
    while read DEV MOUNT FSTYPE REST; do

if [ $FSTYPE == ext4 ]; then
    mount -o remount,noatime,nodiratime,norelatime $DEV
fi
    done < /proc/mounts
}

hugepage () {
    hugepage_file=/sys/kernel/mm/transparent_hugepage/
    echo madvise > $hugepage_file/enabled
    echo madvise > $hugepage_file/defrag
}

case $1 in
    true | false)
for i in $SCRIPTLETS; do
    $i $1
done
;;
    *) echo "bad param: powersave [true|false]" ;;
esac

 

Оффлайн kitaets

  • Автор темы
  • Активист
  • *
  • Сообщений: 571
  • Аналитик
    • Просмотр профиля
hrabrik,
спасибо, чуть позже проанализирую, может что новое в скрипте найду.
Бага с выключением исправима: надо в очередь выключения прицепить скрипт, в котором будут отменяться энергоэкономные настройки. Если надо подробностей с примером - напишу (сейчас некогда).
«Если ты не наступил на грабли, это не значит, что их нет», – kitaets.

Оффлайн hrabrik

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
кстати щас ядро 3.2.0-31-generic и бага есть но на ядрах от 3.4 я ее не наблюдал! Да и почему то kernel-pf ни чего не дает мне!
Плюс такая картина на обычном ядре вывод powertop выглядит так:
    Package   |             Core    |            CPU 0       CPU 1
                    |                     | C0 active   8.8%        4.4%
                    |                     | POLL        0.0%    0.0 ms  0.0%
                    |                     | C1          5.6%    0.3 ms  0.9%
C2 (pc2)    0.7%    |                     | C2          3.5%    0.5 ms  0.4%
C3 (pc3)    0.4%    | C3 (cc3)   10.0%    | C3         80.7%    0.8 ms 93.2%
C6 (pc6)    2.6%    | C6 (cc6)    0.0%    |
C7 (pc7)   11.5%    | C7 (cc7)   67.4%    |

                    |             Core    |            CPU 2       CPU 3
                    |                     | C0 active   8.1%        4.8%
                    |                     | POLL        0.0%    0.1 ms  0.0%
                    |                     | C1          4.5%    0.3 ms  0.4%
                    |                     | C2          2.1%    0.8 ms  0.4%
                    | C3 (cc3)    4.9%    | C3         84.3%    1.4 ms 93.8%
                    | C6 (cc6)    0.0%    |
                    | C7 (cc7)   75.7%    |


a на pf-kernel наблюдается такой баг если вставить заряду и вынуть пропадает положение С3, возможно глючит powertop!

          Package   |             Core    |            CPU 0       CPU 1
                    |                     | C0 active   0.7%        0.7%
                    |                     | POLL        0.0%    0.0 ms  0.0%    0.0 ms
                    |                     | C1          0.3%    0.2 ms  0.4%    0.5 ms
C2 (pc2)    0.8%    |                     | C2         98.1%    3.6 ms 98.0%   26.3 ms
C3 (pc3)   94.0%    | C3 (cc3)   96.3%    | <null>      0.0%    0.0 ms  0.0%    0.0 ms
C6 (pc6)    0.0%    | C6 (cc6)    0.0%    |
C7 (pc7)    0.0%    | C7 (cc7)    0.0%    |

                    |             Core    |            CPU 2       CPU 3
                    |                     | C0 active   0.2%        0.2%
                    |                     | POLL        0.0%    0.0 ms  0.0%    0.0 ms
                    |                     | C1          0.0%    0.2 ms  0.0%    0.1 ms
                    |                     | C2         99.5%   89.3 ms 99.6%  150.8 ms
                    | C3 (cc3)   99.3%    | <null>      0.0%    0.0 ms  0.0%    0.0 ms
                    | C6 (cc6)    0.0%    |
                    | C7 (cc7)    0.0%    |

« Последнее редактирование: 22 Сентября 2012, 23:39:50 от hrabrik »

Оффлайн kitaets

  • Автор темы
  • Активист
  • *
  • Сообщений: 571
  • Аналитик
    • Просмотр профиля
По поводу проблем с выключением.
Создаём скрипт, называем его, например, shutdown-solver.sh и прописываем в него восстановление "нормальных" настроек (т.е. неэкономных) вместо "глючных" (т.е. экономных), например:
# NMI watchdog - on
echo 1 > /proc/sys/kernel/watchdog

# USB Subsystem
for i in /sys/bus/usb/devices/*/power/level /sys/bus/usb/devices/*/power/control ; do echo "on" > $i ; done

# ondemand governor
for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor ; do echo "ondemand" > $i ; done
У меня при отключённом watchdog ноут не выключается, так что его включение - главная цель скрипта. Остальное - для того, чтобы выключение происходило быстрее.

Далее делаем так:
cp shutdown-solver.sh /etc/init.d/
ln -s /etc/init.d/shutdown-solver.sh /etc/rc0.d/S10-shutdown-solver
ln -s /etc/init.d/shutdown-solver.sh /etc/rc6.d/S10-shutdown-solver
В итоге наш скрипт будет выполняться первым при выключении и перезагрузке и предотвращать глюки.
Ещё я в этот скрипт добавил sync, т.к. иногда, кмк, некоторые данные не успевают сброситься на диск до выключения.

Пользователь решил продолжить мысль 24 Сентября 2012, 11:05:43:
Про kernel-pf я не понял. Это что?
Насчёт баги в 3.2.* - возможно, у меня то же самое было, т.к. я писал, что на батарее отображался 100% idle процессора. На 3.4 нормально, но не получается достичь тех же показателей, хотя время работы увеличилось - вот такой парадокс.
« Последнее редактирование: 24 Сентября 2012, 11:06:24 от kitaets »
«Если ты не наступил на грабли, это не значит, что их нет», – kitaets.

Оффлайн hrabrik

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Далее делаем так:
cp shutdown-solver.sh /etc/init.d/
ln -s /etc/init.d/shutdown-solver.sh /etc/rc0.d/S10-shutdown-solver
ln -s /etc/init.d/shutdown-solver.sh /etc/rc6.d/S10-shutdown-solver
В итоге наш скрипт будет выполняться первым при выключении и перезагрузке и предотвращать глюки.
Ещё я в этот скрипт добавил sync, т.к. иногда, кмк, некоторые данные не успевают сброситься на диск до выключения.

Пользователь решил продолжить мысль 24 Сентября 2012, 11:05:43:
Про kernel-pf я не понял. Это что?
Насчёт баги в 3.2.* - возможно, у меня то же самое было, т.к. я писал, что на батарее отображался 100% idle процессора. На 3.4 нормально, но не получается достичь тех же показателей, хотя время работы увеличилось - вот такой парадокс.

За скрипт спасибо но я сам уже справился!
kernel-pf это ядро 3.4 с патчем pf, почему то в любом собраном ядре с pf отсутсвует состояние С3!
Кстати очень страно себя ведет система энерго сбережения на ubuntu! Например уменя ноут с сенсорным экраном и вот в Fedore если делаешь экономию для usb то он засыпает, и начинает реагировать на прикосновения не сразу(просыпаеться)! А на Ubuntu как будто и не засыпал!

Оффлайн tmrsh

  • Новичок
  • *
  • Сообщений: 48
    • Просмотр профиля
За идею взял Это - второй вариант
и воспользовался следующим советом:
tmrsh,
Второй вариант по указанной ссылке - это костыли, автор не знал имеющегося функционала. Корректная установка скрипта делается так:
cp 99-power.sh /usr/lib/pm-utils/power.d/
cd /usr/lib/pm-utils/power.d
sudo install 99-power.sh /etc/pm/sleep.d
sudo install 99-power.sh /etc/pm/power.d
В результате он выполняется при засыпании, пробуждении, подключении БП и отключении БП. "99" - чтобы выполнялся последним из установленных скриптов.
При старте машины с применением предложенной идеи тоже не все так гладко,скрипт срабатывает но по прошествии нескольких десятков секунд система все скидывает по дефаулту и если закрыть и открыть крышку или побаловаться с питанием лишь тогда приходит к желаемому результату - таким образом вариант с костылями более надежен хоть и не совсем корректен...
Ну и как результат переработал скрипт и выставляю на обсуждение:
#!/bin/sh

#################################################
# 1. Для питания от сетевого адаптера ###########
#################################################
#
if on_ac_power; then
#
#################################################
# laptop mode (1-5)
# Значение 0, посылаемое в /proc/sys/vm/laptop_mode, отключает режим
# энергосбережения, 5 устанавливает самый агрессивный
echo 1 > /proc/sys/vm/laptop_mode
#################################################
# NMI watchdog - on
echo 1 > /proc/sys/kernel/watchdog
#################################################
# Энергосбережение SATA (max_performance, min_power)
# ls -l /sys/class/scsi_host/
for i in /sys/class/scsi_host/host?/link_power_management_policy ; do echo "min_power" > $i ; done
# (echo min_power > /sys/class/scsi_host/host?/link_power_management_policy)
#################################################
# Энергосбережение процессора
#
# Частота процессора (cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies)
# cat /proc/cpuinfo | grep "MHz"
for j in /sys/devices/system/cpu/cpu?/cpufreq/scaling_setspeed ; do echo "800000" > $j ; done
# (echo 800000 > /sys/devices/system/cpu/cpu?/cpufreq/scaling_setspeed)
#
# Профили работы процессора (ondemand, powersave, conservative, userspace)
# cat /sys/devices/system/cpu/cpu?/cpufreq/scaling_available_governors
for ij in /sys/devices/system/cpu/cpu?/cpufreq/scaling_governor ; do echo "userspace" > $ij ; done
# (echo ondemand > /sys/devices/system/cpu/cpu?/cpufreq/scaling_governor)
#
# Энергосберегающий режим работы процессора (ls -l /sys/devices/system/cpu/)
# echo 1 > /sys/devices/system/cpu/sched_mc_power_savings #включаем энергосбережение
# echo 0 > /sys/devices/system/cpu/sched_mc_power_savings #выкл
# Hyper-threading (если имеется)
# echo 1 > /sys/devices/system/cpu/sched_smt_power_savings #включаем энергосбережение
# echo 0 > /sys/devices/system/cpu/sched_smt_power_savings #выкл
echo 1 > /sys/devices/system/cpu/sched_smt_power_savings
#################################################
# Энергосбережение аудиокарты Intel
# echo 0 > /sys/module/snd_hda_intel/parameters/power_save  #выключаем энергосбережение
# echo 10 > /sys/module/snd_hda_intel/parameters/power_save #вкл
echo 0 > /sys/module/snd_hda_intel/parameters/power_save
#################################################
# Запрет опрашивания CD привода
# hal-disable-polling --device /dev/cdrom                   #запрещаем
# hal-disable-polling --enable-polling --device /dev/cdrom  #делаем как было
#################################################
# Отключение веб-камеры
# modprobe -r uvcvideo  #выключаем
# modprobe uvcvideo     #включаем обратно
#################################################
# Эффективная работа памяти
# Dirty ratio — максимальный размер памяти (в процентах), для хранения «грязных» данных.
# При превышении этого объёма данных процесс, их сгенерировавший, будет принужден записать их.
# Очевидно, чем выше значение, тем реже производится запись и тем меньше активность жесткого
# диска и системы:
# echo 10 > /proc/sys/vm/dirty_ratio  # при работе от сети
# echo 90 > /proc/sys/vm/dirty_ratio # при работе от батареи
#
# Dirty background ratio — минимальное число памяти (в процентах), где позволено хранить «гразные»
# данные вместо записи на диск.Этот параметр должен быть намного меньше, чем dirty_ratio, чтобы
# позволить записывать куски грязных данных за один проход.
# echo 5 > /proc/sys/vm/dirty_background_ratio #в нормальном режиме
# echo 1 > /proc/sys/vm/dirty_background_ratio #в режиме энергосбережения
#
echo 5 > /proc/sys/vm/dirty_background_ratio
#
# Dirty Writeback sentisecs — как часто ядро должно проверять есть ли «грязные» (измененные) данные
# для записи на диск (в сантисекундах). Чем выше значение, тем реже используется диск для записи
# грязных данных:
# echo 6000 > /proc/sys/vm/dirty_writeback_centisecs  # при работе от сети
# echo 60000 > /proc/sys/vm/dirty_writeback_centisecs # для энергосбережения
#
echo 6000 > /proc/sys/vm/dirty_writeback_centisecs
#################################################
# Энергосбережение PCI Express
# echo powersave > /sys/module/pcie_aspm/parameters/policy  # Включаем энергосбережение
# echo default > /sys/module/pcie_aspm/parameters/policy    # Выключаем
echo default > /sys/module/pcie_aspm/parameters/policy
#################################################
# Яркость
# setpci -s 00:02.0 F4.B=FF
# echo -n 10 > /sys/class/backlight/acpi_video0/brightness
# max_brightness 4882
# echo 4882 > /sys/class/backlight/intel_backlight/brightness
echo 3905 > /sys/class/backlight/intel_backlight/brightness
#
# Отключение дискретной видеокарты
# lspci | grep VGA
# cat /sys/kernel/debug/vgaswitcheroo/switch
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
#
#################################################
#
else
#
#################################################
# 2. Параметры для автономной работы ############
#################################################
# laptop mode (1-5)
echo 5 > /proc/sys/vm/laptop_mode
# NMI watchdog - off
echo 0 > /proc/sys/kernel/watchdog
# Энергосбережение SATA (max_performance, min_power)
for i in /sys/class/scsi_host/host?/link_power_management_policy ; do echo "min_power" > $i ; done
# Частота процессора
for j in /sys/devices/system/cpu/cpu?/cpufreq/scaling_setspeed ; do echo "800000" > $j ; done
# Профили работы процессора (ondemand, powersave, conservative, userspace)
for ij in /sys/devices/system/cpu/cpu?/cpufreq/scaling_governor ; do echo "userspace" > $ij ; done
# Энергосберегающий режим работы процессора
# echo 1 > /sys/devices/system/cpu/sched_mc_power_savings
echo 1 > /sys/devices/system/cpu/sched_smt_power_savings
# Энергосбережение аудиокарты Intel
echo 10 > /sys/module/snd_hda_intel/parameters/power_save
# Dirty background ratio
echo 1 > /proc/sys/vm/dirty_background_ratio
# Dirty Writeback sentisecs
echo 60000 > /proc/sys/vm/dirty_writeback_centisecs
# Энергосбережение PCI Express
echo powersave > /sys/module/pcie_aspm/parameters/policy
# Яркость видеокарты
# setpci -s 00:02.0 F4.B=40
# echo -n 6 > /sys/class/backlight/acpi_video0/brightness
echo 2929 > /sys/class/backlight/intel_backlight/brightness
# Отключение дискретной видеокарты
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
#
#################################################
#
fi
#
#################################################
« Последнее редактирование: 26 Сентября 2012, 12:56:09 от tmrsh »

 

Страница сгенерирована за 0.036 секунд. Запросов: 25.