Comments 55
Сдаётся мне, что греется не сам процессор — греют его соседствующие компоненты.
UFO landed and left these words here
У меня был комп на тесты железа, так вот на нем проц работал с рабочей темпой в 80С)))
Через 2 года работы сдохла мать+проц)))
ЗЫ Кулер был нормальный, а ковырять комп этот особо желания не было, работал и работал… Pentium D не жалко)
Злодей! Изверг! Как вам железо не жалко? оно тоже чувствует боль. ЛУчшеб людей убивали, а не пытками машин занимались.
А у меня был комп, который стоял в жилой комнате, и чтобы он не шумел в нем был заторможен кулер. Рабочая температура процессора была в районе 80, в малой нагрузке ниже 75 не опускалось. Температура винта в районе 70. На ночь он не выключался, так как качал самизнаетечто. Проработал около 3 лет как минимум. И перестал он работать вовсе не от перегрева, а оттого что однажды я в его блок питания скрепку уронил. Блок питания там был нестандартный, поэтому чинить его было влом, и я просто купил новый комп.
Это к вопросу у «вреде перегрева» и неминуемой смерти электроники при повышении температуры «выше 40 градусов».
UFO landed and left these words here
Оно и не будет оказывать почти никакого влияния. Throttling — это такая технология уровня Pentium 2-3, вся работающая на ровно одной инструкции STPCLK, которую планировщик ядра (в общем-то — абсолютно софтверно с этой точки зрения) начинает вызывать в диких количествах вместо полезной работы. Тут вопрос не в сокращении потребления, тут вопрос в том, чтобы выровнять нагрузку на процессор и дать остыть «считающим» места кристалла.
С ноутбуками всегда какая-то пакость в линуксе… Что-то где-то отвалится, к чему-то костыль нужен. У меня вот на Acer Aspire One 110 не работает hot-plugging кардридеров, и как-то странно себя ведёт gnome-power-manager (не всегда обнаруживает отключение AC-адаптера). А suspend убивает таблицу размещения файлов на карте памяти (!!), если такая была вставлена в момент перехода в suspend.

Грустно, да. Производители ноутбуков забивают сферический болт в вакууме на линуксоидов, поставляя не особо вменяемые BIOS-ы (да, таблицы ACPI это тоже туда).
В то же время на десктопных, как правило, всё ништяк.
Suspend убивает таблицу разделов на карте памяти из-за того что у вас не установлена опция CONFIG_MMC_UNSAFE_RESUME на ядре
Ну это тоже костыль, вообще-то. По дефолту карта памяти перед входом в suspend отмонтируется, а после восстановления примонтируется заново. А так нет. Т.е. только если карта памяти останется в слоте, всё будет ОК. Иначе — потеря данных.
Кстати да, таблицу разделов, а не файлов. Очепятался.
В любом случае, спасибо за ранее неизвестную мне опцию.
Вы еще забыли самую главную грозу Linux-ноутбуков: регулирование яркости экрана с помощью наложения полупрозрачной маски.
Много всего написали — большей частью верно, хотя хотелось бы в более отформатированном виде это всё видеть ;)

Концептуально, несколько замечаний:
1. Стоит знать, что есть несколько альтренатив cpufreq: его роль может выполнять powersaved, cpudyn или cpuspeed. Из всех этих проектов наиболее живыми и актуальными выглядят powersaved и cpufreqd. Вообще корни этих проектов все находятся ровно в одном — долгое время в ядре не было governor'ов conservative и ondemand — правильным способом считалось ставить governor userspace, вешать вот такой вот userspace daemon и через него управлять скейлингом. Потом (во многом под нажимом Intel) эту политику изменили и ввели kernel-space авторегулировку. Сейчас вполне можно жить без этих демонов вообще, выставив сразу после загрузки ondemand и отдав всё на откуп ему. Роль этих демонов сейчас — иметь возможность наблюдать за скейлингом (собирать статистику), давать возможность скриптовать что-то еще (как вот Вы показываете в статье), как-то синхронизировать скейлинг разных типов (например, принудительно скейлить видеокарточку в зависимости от загрузки).
2. Стоит подчеркнуть, что использование троттлинга почти никак не продлевает время жизни ноутбука от батарейки: процессор все равно исполняет такты (и тем самым ест свои ватты), но это не приводит к лавинообразному нагреву определенных частей ядра, которые греются при вычислительной нагрузке. «Съеденные» ватты надо куда-то рассеивать — поэтому троттлинг по определению менее эффективен и с точки зрения снижения нагрузки.
3. Троттлинг через T-states официально уже всеми (и Intel, и AMD, и VIA) объявлен устаревшим. Это такое уж совсем last resort средство, если надо срочно сделать, и ничего не помогает. На практике включать его в интерактивной системе я бы не рекомендовал — очень уж заметно на глаз и психологически неудобно.
4. Никакие ухищрения типа описанных в статье настроек cpufreqd не нужны, если платформа адекватная аппаратно с точки зрения термодизайна и имеет адекватный BIOS. Более того, просто по идеологии всего power management'а ACPI — платформа может вообще ничего не делать для power management, но при этом это не повод для того, чтобы она перегревалась. Система охлаждения должна обеспечивать адекватное охлаждение даже при длительной нагрузке. Если этого не происходит — это плохая платформа или нарушение системы охлаждения. В ноутбуках это встречается редко, а вот во всяких barebone-подобных корпусах, которые собирают люди самостоятельно — бывает.
Эхъ… Если бы всё так было идеально и если бы я обладал зрением супермена, я бы конечно сразу бы, при покупке, умел определять, в каком ноутбуке кривые таблицы ACPI и плохая система охлаждения. Но… Приходится работать с тем, что есть, а не с тем, что могло бы быть. А вообще, throttling помогает и батарейку экономить и температуру снижать. В этом режиме напряжение на ядре не снижается, но потребляемый ток немного уменьшается, по крайней мере, если верить статистике от батарейки. Поэтому и греется меньше.
>>В ноутбуках это встречается редко
Один из моих ноутов — HP Compaq 6820s — как раз таки такой «горячий» экземпляр.
Попробую еще подкрутить cpufreqd, проанализировав конфиг автора. Спасибо.
PS. Под Виндой он греется еще больше чем под Линуксом (с моими текущими настройками cpufreqd), так что надежд на то, что ноут станет прохладнее, у меня немного.
P.S. А вообще, мне жутко не хватает в cpufreqd возможности работать с состояниями. То есть, возможности использовать в правилах нечто вроде: если я в состоянии 'иду вверх', или 'я в состоянии жестокий троттлинг'. Потому что, понятно, что если мы идём вверх, и на следующем шаге переключения частоты у нас нагрузка с 50 процентов упала до 25, это ещё не означает, что пора идти вниз. А в системе правил cpufreqd такое выразить непонятно, как. Поэтому, если бы кто прикрутил к cpufreqd такой вот statefull плагин — было бы замечательно. У меня самого на это нет времени и сил, к сожалению.
Если я правильно понял, что хочется powersaved вроде бы такое умеет. В конфиге это по умолчанию так:
# After the processor is idle (CPU_LOW) for a specific time
# see a processor.idle event is thrown.
# If the cpu usage goes beyond the CPU_HIGH value
# a processor.busy event is thrown at once.
# There will never be one event thrown twice in a row, they
# alternate! This is a perfect place to add additional
# power saving functionalities.
EVENT_PROCESSOR_BUSY="dethrottle"
EVENT_PROCESSOR_IDLE="throttle"
+1.

Прям смотришь на линуксоидов и жалко их становится. Всё с бубнами пляшут, да заклинания кабалистические произносят.
Больше срача в конструктивные топики! Нет, серьезно, что-то тут одни спасибы да спасибы, надо бы срочно вбросить дерьмеца на вентилятор.
Толстовато как то.
UFO landed and left these words here
UFO landed and left these words here
Ув. Тролль, посмотрите мой коммент выше, у меня под Виндами один из ноутбуков вообще страшно перегревается, а под Линуксом хоть слегка удается его охладить.
Заклинания? Достаточно читабельный конфиг, вот мне как раз будет удобно смотреть какие отличия у конфигурации автора от моей и переносить то, что сочту ценным, на свою систему. Много удобнее, чем положение галочек (если таковые есть) в Винде переписывать.
Может, для юзера это и заклинания, но для Винды я вообще ничего не нашел. Кстати, колдовство с реестром Windows это та еще каббала, скажу вам.
Пользуясь случаем, поделюсь своей методой (на нотбуке), может и к данному случаю подойдёт. Когда у меня вентилятор игнорирует разогрев (естественно, под линуксом), я выдёргиваю шнур питания и жду несколько секунд. После того, как система обнаруживает отсутствие питания и переключает режим энергопотребления, она замечает перегрев и включает вентилятор. Далее втыкаю шнур обратно и работаю уже с нормальным охлаждением.
А вы попробуйте позаписывать в /proc/acpi/fan/*/state значения 0 или 3. Какое-то из них просто включает вентилятор, а другое выключает.
что делать, если в /proc/acpi/fan/ ничего нет вообще?
нужны модули для ядра или это значит, что есть проблемы с acpi?
на lenovo s10 при разогреве камешка выше 40 градусов наблюдаю истерические потуги кулера его остудить — включается на полсекунды каждые две секунды :(
При этом кулер будет работать постоянно или включаться только при нагреве? Сами понимаете, не хочется лишнего шума без необходимости.
Прочитал вначале заголовок как «таблетка от пингвиньего жира...». Долго думал…
Да вы просто китайский комсомолец какой-то. Спева все сломать, а потом преодолевая трудности чинить назад :)
Почему сломать-то? Мне Linux для работы нужен. Ломают производители нет(ноут)буков. Linux уж слишком строго следует стандарту ACPI, поэтому… А в Windows всяко и throttling как-то там используется, и собственные политики кручения вентиляторами используются.
Ну вот в Windows все работало и так, несмотря на то, что он «нестрого следует стандартам», да? Но вы его снесли и поимели неделю (неделю?) секса в гамаке на лыжах. ;)
Хорошая, подробная, статья. Побольше бы таких!
Вот только у меня не получилось воспроизвести проблему с температурой.
Оборудование: Lenovo S9
Система: (uname -a) Linux Лaptop 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009 i686 GNU/Linux
Дальше — команды и их выводы. *прошу прощения за отсутствие тегов*

d_a@Лaptop:~$ cat /proc/acpi/processor/CPU0/limit
active limit: P0:T0
user limit: P0:T0
thermal limit: P0:T0
*тоесть вроде все честно, процессер не заторможен, хоть и есть такая возможность*

d_a@Лaptop:~$ head -n 3 /proc/acpi/processor/CPU0/throttling
state count: 8
active state: T0
state available: T0 to T7
*опять не жульничаю*

d_a@Лaptop:~$ top | head -n 9
top — 08:42:18 up 28 min, 3 users, load average: 2.03, 2.15, 1.78
Tasks: 124 total, 3 running, 121 sleeping, 0 stopped, 0 zombie
Cpu(s): 86.8%us, 0.3%sy, 0.0%ni, 12.2%id, 0.7%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1017288k total, 196380k used, 820908k free, 41548k buffers
Swap: 883532k total, 0k used, 883532k free, 83580k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1770 d_a 20 0 65632 84 4 R 95 0.0 25:03.55 burnMMX
1849 d_a 20 0 65632 80 4 R 94 0.0 24:49.44 burnMMX
*Для прогревки — используем burnMMX из пакета BurnCPU. 25 минут грузим оба ядра насколько это возможно. *

d_a@Лaptop:~$ acpi -t
Thermal 0: ok, 49.0 degrees C
*но, при этом, температура ни разу не пересекла порог в 50 градусов*

Мне кажется, что проблема вашего устройства имеено в охлаждении (плохой пассивный радиатор или литрокилометры шлака в вентиляции), или биосе (вентилятор не включается вовремя или что-то вроде), а не в самом процессоре или чипсете. Атом + ich7 хорошее сочетание )
Ну. Я не знаю, в чём именно проблема. Нетбук, вроде, новый, пылью ещё не забитый. Называется HP 5101 mini. Возможно, дизайн охлаждения у него кривой. Но проблема есть… Вот. Как-то её порешал. Вентиляторы, кстати, включаются нормально.
Ок. Давайте еще раз. «процессор… стал чрезмерно горячим» — это красивые сова. Дайте же цифр и графиков!

Как процессер ведет себя без нагрузки?

На сколько быстро растет температура под нагрузкой непосредственно на процессер?

На какой отметке стабилизируется?

Будет ли максимальная температура выше если проводить комплексный стресс-тест (wifi + много HDD + аудио и видео)?
Вообще, это вполне себе гарантийный случай: если Вы берете, скажем, ноутбук и на нем оставляете какой-нибудь нагрузочный тест на несколько часов — суток — то с нормальной системой _ничего_ плохого не должно произойти: да, вентиляторы будут крутиться на максимуме, но если очевидных нарушений условий эксплуатации нет (т.е. воздухозаборники не закрыты и вокруг не тропики, а стандартные комнатные 20-25 градусов и нормальная влажность) — то ноутбук не только должен нормально функционировать, но еще и процессор греться выше 50-60 градусов ну никак не должен.

Мы так тестировали ноутбуки на производстве (собственно, я этим года эдак с 2004 и занимаюсь...) — одним из требований было, чтобы при многочасовом нагрузочном тесте температура не поднималась выше 50 или 55 (в зависимости от модели).

Могу поделиться ссылочкой на систему тестирования ;)
UFO landed and left these words here
Очень грамотная и понятная строка.
Ликвидировал свой кретинизм в этом вопросе, спасибо.
Ноутбук на Centrino Dothan: вполне хватает 'ondemand' scaling governor'a и userspace апплета: '/usr/bin/wmthrottle -t 72'.

Последний заставляет переходить в более высокое Т-состояние с превышением указанной температуры (72 °C) на каждый градус (летом точка отсчета немного изменяется). Плюс кликнув мышью можно перейти в режим ручного управления и принудительно выбрать любое T-состояние. Как дополнительный инструмент мониторинга в этом сетапе — wmlaptop. Проблемы были, только когда сломался вентилятор — временами приходилось обдувать.

Единственная беда — встроенные значения температур в DSDT таблице не позволяют реже включать вентилятор, а он раздражает. Попытки их изменить и скормить ядру новую таблицу не помогли. Если у кого-то есть рецепт на этот случай — поделитесь, пожалуйста.
а чем не устраивает скрипт fancontrol, идущий в комплекте с lm_sensors?
Может тем, что lm_sensors и ноутбуки не дружат: в них только ACPI и нет доступа к другим методам мониторинга/управления (чипы мониторинга на них почти не ставят). На первый взгляд, fancontrol без устройств в /sys/bus/i2c/devices/ не заработает. Еще поковыряюсь, конечно…
хм, у меня eeepc 900 и lm_sensors стоят как раз ради fancontrol
ps: /sys/bus/i2c/devices в системе присутствует
хм, а внутри /sys/bus/i2c/devices? Похоже, вам повезло больше. Раньше — так точно lm_sensors были бесполезны на ноутах…
lrwxrwxrwx 1 root root 0 Янв 17 00:51 i2c-0 -> ../../../devices/pci0000:00/0000:00:02.0/i2c-0
lrwxrwxrwx 1 root root 0 Янв 17 00:51 i2c-1 -> ../../../devices/pci0000:00/0000:00:02.0/i2c-1<pre>

а если перейти по ссылке то там будет
# cat name
intel drm LVDSDDC_C
и
intel drm CRTDDC_A
Такие статьи надо публиковать в спецфорумах, а не на таких публичных сайтах, как хабр. Такие публикации только углубляют недоверие пользователей в Linux. Мол, опять какой-то геморрой с ним.
Я с вами не согласен. Отличная статья в правильном месте.

Если бы управление аппаратной частью в Windows было так же доступно как и в *NIX, статья была бы не менее интересна и полезна для пользователей Windows.
Благодарю за ликбез!

Кстати, для настройки ноутбука на максимальное энергосбережение могу порекомендовать утилиту powertop.
А вы не думали пропатчить ACPI-таблицу BIOS и перепрошить его? Попробуйте посмотреть исходники декомпилировной ACPI-таблицы вашего биоса, будете удивлены количеством ляпов.
А я то думал чтож мой ноут с АМД после последних обновлений в тепло вентилятор превратился. Даже не думал на то, что нормальный конфиг был заменен на поделие которое в случае питания от АС заставляло работать оба ядра на полную и блокировало частоту на максимум.
Only those users with full accounts are able to leave comments. Log in, please.