Добавлено: 12-02-2009 (kwah)
Для Ubuntu 8.04 и 8.10 проблема с ACPI считается решённой, соответствующие изменения внесены в пакет acpi-support, связанные исправления пакетов pm-utils ещё в процессе подготовки, см. [1].
Заметьте: если в вашем конкретном случае проблема всё ещё наблюдается, внимательно изучите комментарии к багу, см. также [1], скорее всего это связано с использованием производителями нестандартных значений для управления режимами питания жёсткого диска, которые вам придётся подобрать самостоятельно. Известно также, что в некоторых случаях воздействовать на режимы работы жёсткого диска не удаётся.
=== Ubuntu 7.10 ===История вопроса.
Я недавно, полмесяца назад, купил ноут Acer 9414Z.
Естественно захотелось поставить на него Ubuntu.
Поставил 7.10 с DVD дистрибутива. Все установилось. Подправил известные глюки.
Сижу довольный и покупкой и операционной системой!
Звонит приятель из Воронежа. Ты почитай на sekuritylab.ru (
http://www.securitylab.ru/news/306566.php) пишут, что новая Ubuntu винты на ноутах гробит! А ты мол недавно купил. Вот и разбирайся, а вдруг правда винт новый полетит?
Речь шла как Вы поняли о пресловутом баге или не баге: Bug #59695 in acpi-support (Ubuntu)
Тут же наткнулся на обсуждение этого вопроса в соседней ветке см. по адресу:
https://forum.ubuntu.ru/index.php?topic=14995.0;allЗамечу, что при проверке на моем ноуте c HDD Hitachi HTS541616J9SA00, при просмотре счетчиков через утилиту smartctl при 100 часах наработки, было накручено 6000 Load_Cycle_Count. Т.е. счетчик бежал быстро, хотя по умолчанию режим laptop-mode выключен.
Все это в принципе мне не понравилось, и я попытался разобраться в этой проблеме.
Проблема оказалась не новой (2-х годичной давности), и не совсем понятно, при чем здесь Ubuntu, как было заявлено на sekuritylab.ru.
Решил я эту проблему для себя-- воспользовавшись материалами с адреса:
http://ubuntuforums.org/showpost.php?p=3675960&postcount=26И прочитав много еще чего на просторах интернета!
О чем и расскажу ниже на русском языке (типа вольный перевод).
Что бы использовать S.M.A.R.T. необходимо установить пакет:
smartmontools sudo aptitude install smartmontools
Запускаем ее:
sudo smartctl -H /dev/sda
Запуск утилиты для просмотра:
sudo smartctl -d ata -a /dev/sda | more
Проверяем, как быстро меняется счетчик: Load_Cycle_Count (смотрим последнее значение Load_Cycle_Count- строка 193 )команда посмотреть только ее :
sudo smartctl -d ata -a /dev/sda | grep Load_Cycle
Примечание для IDE винтов команда выглядит так:
sudo smartctl -a /dev/sda | grep Load_Cycle_Count
И смотрим строчку 9 Power_On_Hours -количество наработанных часов:
sudo smartctl -d ata -a /dev/sda | grep Power_On_Hours
Теперь можете посмотреть как быстро на вашем ноуте меняются счетчики Load_Cycle_Count (выполнив команду просмотра Load_Cycle_Count, через несколько минут) и если вам это не нравится, можете применить ниже приведенное исправление ситуации. (Естественно на свой страх и риск).
Здесь я, теорию пропускаю (см. ее на первоисточнике).
И привожу сам текст исправлений:
1) Редактируем /etc/hdparm.conf с помощью команды:
sudo gedit /etc/hdparm.conf
Добавляем в конец три строчки:
/dev/sda {
apm = 254
spindown_time = 0
}
Чтобы эти изменения применить без перезагрузки системы, выполняем команду:
sudo update-rc.d hdparm defaults
2) Далее для нормальной работы вашего счетчика Load_Cycle_Count в режимах suspend, hibernate и при отключении и включении элетрической сети создаем файл под именем "99-hdd-spin-fix.sh". (99- порядок исполнения)
sudo gedit 99-hdd-spin-fix.sh
3) Копируем в него нижеуказанные строчки:
#!/bin/sh
hdparm -B 254 /dev/sda
hdparm -S 0 /dev/sda
4) копируем этот файл далее в 5 мест:
$sudo install 99-hdd-spin-fix.sh /etc/acpi/suspend.d/
$sudo install 99-hdd-spin-fix.sh /etc/acpi/resume.d/
$sudo install 99-hdd-spin-fix.sh /etc/acpi/start.d/
$sudo install 99-hdd-spin-fix.sh /etc/acpi/ac.d/
$sudo install 99-hdd-spin-fix.sh /etc/acpi/battery.d/
Меняя значение 254 в файле /etc/acpi/battery.d/99-hdd-spin-fix.sh в диапазоне 128-254 можно менять количество Load_Cycles. При 128 более будет применена более агрессивная политика power management и наоборот. Можете поэкспериментировать с этой переменной, редактируя файл с помощью команды:
sudo gedit /etc/acpi/battery.d/99-hdd-spin-fix.sh
5) затем делаю замену в файле: /etc/acpi/power.sh
sudo gedit /etc/acpi/power.sh
1=>255 должно выглядеть так:
function laptop_mode_enable {
$LAPTOP_MODE start
for x in /sys/bus/ide/devices/*/block; do
drive=$(basename $(readlink $x));
$HDPARM -S $SPINDOWN_TIME /dev/$drive 2>/dev/null
$HDPARM -B 254 /dev/$drive 2>/dev/null
done
for x in /sys/bus/scsi/devices/*/block; do
drive=$(basename $(readlink $x));
$HDPARM -S $SPINDOWN_TIME /dev/$drive 2>/dev/null
$HDPARM -B 254 /dev/$drive 2>/dev/null
done
6) Далее включил LAPTOP_MODЕ
sudo gedit /etc/default/acpi-support
заменив - ENABLE_LAPTOP_MODE=false
на - ENABLE_LAPTOP_MODE=true
Получил следующее:При питании от сети счетчик практически не меняется, что я и хотел.
А при питании от батареи- происходит парковка головок в нужном мне режиме, что позволяет беречь винт при работе ноута, например в поездке и при этом экономить саму батарею, о чем говорят показания счетчика!
Вот так было на моем ноуте, на других вообще этой проблемы нет. Видимо дело в биосе и винте моего ноута.
Таким образом все уладилось. И жизнь продолжается! А Пиаром с sekuretylab на меня повеяло круто!!!
З.Ы. Добавлю, как и авторы разбросанных по интернету решения, что это лично мое мнение, и Вы должны понимать, что делаете это на свой страх и риск!=== Ubuntu 8.04 + ===Дополнено Kwah
Краткое объяснение сути проблемы с описанием приемлемого решения нарисовно вот здесь (англ)
https://wiki.ubuntu.com/PowerManagementЗамечу, что в 8.04 перешли на использование pm-utils посему действия несколько отличаются.
В 8.10 единственное что (теоретически) нужно сделать - это просто включить LAPTOP_MODE, см. приведённую выше ссылку.
[1] bug 59695:
https://bugs.launchpad.net/ubuntu/+source/acpi-support/+bug/59695