1

Приветсвую!

Подскажите, пожалуйста, какие параметры нужно задать в /usr/lib64/pm-utils/power.d/harddrive чтобы при работе ноутбука от сети и от батареи парковка жёсткого диска не происходила.

Сейчас стоят такие значения:
# Default values on AC
DRIVE_SPINDOWN_VALUE_AC="${DRIVE_SPINDOWN_VALUE_AC:-0}"
DRIVE_WRITE_CACHE_AC="${DRIVE_WRITE_CACHE_AC:-1}"
DRIVE_POWER_MGMT_AC="${DRIVE_POWER_MGMT_AC:-254}"
DRIVE_ACOUSTIC_MGMT_AC="${DRIVE_ACOUSTIC_MGMT_AC:-0}"

# Default values on battery
DRIVE_SPINDOWN_VALUE_BAT="${DRIVE_SPINDOWN_VALUE_BAT:-0}"
DRIVE_WRITE_CACHE_BAT="${DRIVE_WRITE_CACHE_BAT:-1}"
DRIVE_POWER_MGMT_BAT="${DRIVE_POWER_MGMT_BAT:-254}"
DRIVE_ACOUSTIC_MGMT_BAT="${DRIVE_ACOUSTIC_MGMT_BAT:-0}"

А счётчик при этом тикает.

2

А при текущей настройке происходит?

Берс пишет:

DRIVE_SPINDOWN_VALUE_AC="${DRIVE_SPINDOWN_VALUE_AC:-0}"

Берс пишет:

DRIVE_SPINDOWN_VALUE_BAT="${DRIVE_SPINDOWN_VALUE_BAT:-0}"

Из help секции /usr/lib/pm-utils/power.d/harddrive

DRIVE_SPINDOWN_VALUE_AC = time until a drive will spin down on AC
Defaults to 0, which disables drive spindown.

Т.е. по уму не должно бы быть проблемы.

DRIVE_POWER_MGMT_AC и DRIVE_POWER_MGMT_BAT стоят 254, т.е как для максимальной производительности.

DRIVE_ACOUSTIC_MGMT_AC и DRIVE_ACOUSTIC_MGMT_BAT в глаза бросаются, т.к. все из того же хелпа

DRIVE_ACOUSTIC_MGMT_AC = Drive Acoustic Management value on AC
Defaults to 254 for max head speed.
DRIVE_ACOUSTIC_MGMT_BAT = Drive Acoustic Management value on battery
Defaults to 128 for max quietness.

Т.е. 254 - максимальная скорость головок. 128 - для максимальной тишины, если я правильно этот хелп понял.

Fedora & GNOME

3

Настройки как в первом сообщении.
Под батареей и под сетевым адаптером парковка производится.
Help читал и несколько озадачился, что настройки игнорируются.

Проблема не может быть в том, что у меня система на твёрдотельном диске, а вся информация на HDD?

4

Берс, а вот этого я наверняка сказать не могу, т.к. у меня SSD никогда не было. Гипотетически, наверно может. Но лучше проконсультироваться с кем-то еще, у кого есть опыт работы с SSD.

Можно попробовать добавить лишние хуки pm-utils в игнор-лист.

Чтоб добавить в игнор-лист /usr/lib/pm-utils/power.d/harddrive надо создать пустой файл /etc/pm/power.d/harddrive, если я правильно понимаю. Во всяком случае, так в арчевики пишут, а большинство информации оттуда вполне пригодно к использованию и в других дистрибутивах.

Fedora & GNOME

5

И вот еще, на ЛОРе как-то писали, что в Fedora использование pm-utils из-за systemd поломалось. И возможным решением приводили создание юнита для systemd, чтобы исправить ситуацию.

Файл /etc/systemd/system/fix-hdparm@.service

[Unit]
Description=Fix some hdparm settings after suspend/restore
After=dev-%i.device suspend.target hibernate.target sysinit.target hybrid-sleep.target
Requires=dev-%i.device

[Service]
Type=oneshot
ExecStart=/sbin/hdparm -B 254 /dev/%i

[Install]
WantedBy=suspend.target
WantedBy=hibernate.target
WantedBy=hybrid-sleep.target
WantedBy=sysinit.target

Включить юнит и сделать символьные ссылки

Консоль
ln -s '/etc/systemd/system/fix-hdparm@.service' '/etc/systemd/system/suspend.target.wants/fix-hdparm@sda.service'
ln -s '/etc/systemd/system/fix-hdparm@.service' '/etc/systemd/system/hibernate.target.wants/fix-hdparm@sda.service'
ln -s '/etc/systemd/system/fix-hdparm@.service' '/etc/systemd/system/hybrid-sleep.target.wants/fix-hdparm@sda.service'
ln -s '/etc/systemd/system/fix-hdparm@.service' '/etc/systemd/system/sysinit.target.wants/fix-hdparm@sda.service'
systemctl enable fix-hdparm@sda

Fedora & GNOME

6

Вроде заработало.
За 10 минут ни одной парковки.

Спасибо.

7

Берс, что именно-то помогло? добавление хука harddrive в игнор-лист pm-utils или создание юнита для systemd?

Fedora & GNOME

8

Хук не пробовал сразу юнит создал. Он и помог.

Спасибо сказали: xxblx1

9

xxblx⇓ пишет:

Берс, что именно-то помогло? добавление хука harddrive в игнор-лист pm-utils или создание юнита для systemd?

Попробовал при настройке нового ноута хук для harddrive. Не сработал. В принципе он не сработал на двух ноутбуках разных производителей. Так что рекомендую сразу юнит для systemd прописывать.

Возник уточняющий вопросик в продолжении темы.
Появилась необходимость в установке в ноут второго HDD с windows системой. Но, т.к. из под Linux я к нему обращаться не буду то возникла идея его отключения. Чтоб в холостую не лопатил.
Команда для этого, насколько я понял, такая:
hdparm -Y /dev/sdb
Диск уходит в режим сна.
Собственно вопрос, как прописать команду, чтобы при запуске системы диск сразу выключался?
В идеале бы, конечно, нужна команда, которая при запуске системы вообще на давала диску запускаться, если такое возможно конечно.

10

Берс, как я понимаю, можно по аналогии сделать systemd-юнит.
Как вариант, попробовать с командой

Консоль
echo 1 > /sys/block/sdb/device/delete

вместо sdb подставить нужный диск.

Если поможет, то можно попробовать такой юнит.

[Unit]
Description=Delete HDD

[Service]
Type=oneshot

ExecStart=/usr/bin/bash -c '/usr/bin/echo 1> /sys/block/sdb/device/delete'

[Install]
WantedBy=basic.target

Ну или свою команду также можете в юните использовать.

Берс пишет:

В идеале бы, конечно, нужна команда, которая при запуске системы вообще на давала диску запускаться, если такое возможно конечно.

Не уверен, но возможно стоит поискать информацию связанную с udev-правилами, возможно на их уровне можно "запретить" системе определять HDD.

Fedora & GNOME

11 (2015-08-24 23:17:07 отредактировано Берс)

xxblx⇓ пишет:

Консоль
echo 1 > /sys/block/sdb/device/delete

Эта команда, я так понял, удаляет диск из системы.
Диск при этом продолжает крутиться, а мне нужно, чтобы он полностью останавливался.

12

Берс пишет:

Диск при этом продолжает крутиться, а мне нужно, чтобы он полностью останавливался.

Ну тогда в сон отправляйте своей командой.

В чем, кстати, самоцель? Экономия энергии?

Fedora & GNOME

13

xxblx⇓ пишет:

В чем, кстати, самоцель? Экономия энергии?

И экономия тоже. Просто сейчас достаточно жарко и место вокруг диска очень сильно нагревается. А т.к. левая рука находится как раз над этим местом, то это сразу приводит к дискомфорту и дополнительному нагреву уже от руки.
Предполагаю, что система охлаждения включится при критической температуре диска (не доводил до такого). Только смысл? Пускай уж в sleep режиме стоит. Всё равно из под linux к нему обращаться не буду, т.к. на нём нет ничего для меня нужного когда я в линуксе.

Буду пробовать юнит.
Только помогите мне его правильно прописать и запустить а то для меня это высокие материи.
Если по аналогии с предыдущим юнитом, то я создаю некий файл в каталоге /etc/systemd/system/
Название то ему любое можно присвоить или он должен иметь строго определённое имя или расширение? Типа  sdb@.service (мне надо диск sdb остановить).
В файле я прописываю:

[*]Description=Sleep sdb

[Service]
Type=oneshot

ExecStart=hdparm -Y /dev/sdb

[Install]
WantedBy=basic.target[/*]

А как мне его исполняемым сделать?

14

https://wiki.archlinux.org/index.php/Sy … 0.BE.D0.B2

15

kvv-vp⇓ пишет:

https://wiki.archlinux.org/index.php/Sy … 0.BE.D0.B2

Спасибо, ничего не понял.