Как стать автором
Обновить

Linux Tuning для Современного ноутбука с Пассивной Системой Охлаждения

Время на прочтение31 мин
Количество просмотров42K
В последнее время всё больше и больше стало появляться ноутбуков, которые каким-то непостижимым образом работают вобще без вентилятора. Прямо как телефоны, но только ноутбуки. Бесшумно себе НЕ шелестят, и всё такое, интересное прям, ультра. И вот, в порыве, так сказать, молодецкого задора, решил я сменить свой "ещё в прочем очень даже неплохой ноутбук" на нечто этакое. Тем более, что диагональ в 14" мне была великовата, и уже очень давно хотелось вернуться на 11.6, но с сохранением Full HD.

Выбор пал на среднюю модель в 700-11 линейке Lenovo Yoga. Отличная, по ноутбучным меркам ANSI клавиатура с отдельными Home (+PgUp) и End (+PgDn). Правда, без подсветки, но она мне не нужна. 3 USB разъёма: один из них совмещён с питанием. Заявленых и в итоге достигнутых 4 часа от батарейки. Вес чуть больше килограмма. В общем — красота. Да и рыжий цвет меня устраивает вполне, всё равно наклейками обычно всё заклеено.

Единственный нюанс: работает «без нареканий» под штатным Windows 10 Home. Ну, то есть, как — «без нареканий» — это если не учитывать тот факт, что именно Работать Невозможно Же. Нет, я могу, конечно, но — это если очень много заплатят. А для обычной работы у меня Ubuntu, точней Linux Mint Mate Desktop. И, всё бы ничего, но после переезда — переноса разделов со старого на новый — Sarah отказалась дружить с моим новым ноутбуком:

  • Жутко грелся, сразу и всё время градусов до 70 ℃ в Idle режиме
  • Очень часто не загружался вообще
  • Часто терял WiFi при температурах выше 75 ℃

Безусловно, всё под катом — это субъективное мнение, но, думаю, оно подойдёт для всех свежих Ubuntu Based дистрибутивов, а так же и для других Linux, т.к. большая часть информации совершенно не касается конкретного дистрибутива.

Решение, а так же фотки ноута и ещё немного всякой чепухи, включая Geek Porn с моддингом, под катом (Warning Трафик):


***

Рассказ будет долгим, и, надеюсь, что интересным.

Для тех, кто знает всё или кому лень читать и смотреть предлагается следующая краткая инструкция, без каких либо пояснений и настроек, гуглите сами:

# nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=hwp_only noapic"
# update-grub
# apt-get remove cpufreqd cpufrequtils thermald
# update-rc.d disable ondemand
# apt-get install intel-microcode
# apt-get install linux-tools-common linux-tools-generic
# apt-get install tlp tlp-rdw tp-smapi-dkms
# service tlp start

Тем, кто ещё не в курсе, или, вдруг, если до сих пор интересно что же все эти команды значат, предлагаю продолжать «наслаждаться» чтением.

UPD: Объективности Ради: Start


Только что поставил систему с нуля (2 дня с момента публикации).
В параметрах ядра, конечно, пришлось прописать noapic, чтобы просто загрузиться.
Далее, ничего не меняя поставил powertop + в загрузку его вписал.
Всё остальное оставил как и было, ничего не трогая.
Да, список сервисов после установки такой же, нет только cpufreqd.
Могу заверить, что при работающем powertop особой необходимости в tlp нет, так что смотрите как его ставить в каментах, а лучше на ArchWiki.
Выражаю искреннюю благодарность menstenebris за наводку.
Хабр славен комментариями, как обычно :)

Дальше читать, конечно, можно, там много плюх и приколюх ещё других осталось.

UPD: Объективности Ради: End



Так, увы повелось в последнее время, что: нельзя просто так взять и выбрать ноутбук. Особенно если вы страдаете наслаждаетесь перфекционизмом в тяжёлой форме. Тяга к маленьким и лёгким ноутбукам, с которыми будет кофортно, интересно и всё такое, приятное, затмевает здравый смысл и прочие рациональные предпочтения. Большие и тяжёлые железки я не люблю, равно как и маленькие, комфортные и удобные, но всё же не такие уж интересные по, хотя бы, соотношению цен Маки. К слову, два года назад у меня был уже не первый 11.6 ноутбук: Обзор нетбука MSI S12 / Geektimes.

Про проблемы выбора и всё такое...
По моим субъективным требованиям даже 1.5 килограмма — это уже много. Мой «предыдущий» Lenovo Flex-2-14 был в основном вынужденной покупкой. Это был тот самый момент, когда Рубль «лихорадило» и ничего лучшего с нормальной клавиатурой и Full HD матрицей, что хотя бы примерно влезаюло в имеющийся бюджет, найти было невозможно. К тому же свой «пред предидущий» MSI S12 я всяческими эксперементами довёл до того, PCB пошла трещинами, и ждать было просто больше «некуда». А ещё через месяц после того как я его купил он стоил уже на 15 тысяч рублей дороже, так что я остался вдвойне доволень покупкой.

Но, всё же прошло примерно несколько дней, эйфория прошла, и стал я ежемесячно искать что-нибудь более подходящее. Так, в начале зимы 2016 года решил было остановиться на Lenovo Yoga 3 11, но потом как-то всё завертелось, и вот, лето прошло, настала осень, и появилась эта линейка: 700-11. Посмотрев характеристики, обзоры и перерыв, как казалось, всё, что было можно по этой модели, я не нашёл оснований сомневаться в выборе. Даже несмотря на заявленое отсутствие активной системы охлаждения, и негативные отзывы по этой теме на просторах интернетов.

Альтернативные варианты были или неприлично дороже, или не устраивали по каким-нибудь другим характеристикам, таким, как, например, совмещение стрелок с клавишами Home, End, PgUp и PgDn. Так как я использую ноутбук для работы, то мне, конечно, важны все эти кнопки в «раздельном» режиме. Максимально допустимое пересечение — это комбинации Home + PgUp и End + PgDn. Все остальные варианты клавиатур идут сразу «ф топку», несмотря на любые остальные достоинства анализируемой техники. В этом ноутбуке клавиатура как раз подходящая, я бы даже сказал, что именно это совмещение вышло на редкость удачным. Единственное, что PgUp и PgDn шли «по умолчанию», и мне пришлось переназначить их «наоборот» при помощи modmap:

#!/bin/bash

xmodmap -e "keycode 112 = Home"
xmodmap -e "keycode 117 = End"
xmodmap -e "keycode 110 = Prior"
xmodmap -e "keycode 115 = Next"

Но, конечно, это всё совсем несложно, и, так как оно стартует вместе с загрузкой рабочего стола, то никаких неудобств не вызывает.

Примерно в конце сентября я его заказал, прям там, в магазине на сайте Lenovo. В начале октября я получил посылку с заветным девайсом. Радости моей, конечно, не было вообще никакого предела. Лёгкий, мощный, клавиатура, матрица, всё работает, всё что мне нужно есть, SSD 265 на очень быстрой шине. Памяти, правда, всего 8 Gb, но надо ли мне больше? И всё такое, прям, радостное-радостное, да ещё и рыжее…

Посмотреть фото с распаковки можно тут, кликабельно...



,




Проверив, что окошко «до-установки» Windows 10 Home Edition грузится нормально, я выключил компьютер, снял образ диска, стёр все разделы и «перенёс» разделы со своего Flex 2 на «теперешний», как я думал, ноутбук.

Вот тут, как вы можете догадаться, вполне ожидаемо включился «режим кирпича», без него не было бы этой статьи. И, да, дело не в том, что я забыл поставить Grub или что-то там ещё забыл, он вполне себе включался, но не загружался. Выглядело это примерно так:

...
... OOPS [#010], SMP error ...
...
какая-то китайская грамота
...
fixing recursive fault but reboot is needed ...

Более детальных логов не сохранилось, но они и не нужны, наверное. После нескольких перезагрузок он вполне себе загружался, и работать было можно. Но было очень некомфортно, так как было просто нереально горячо. Датчики показывали минимум 63 ℃ градуса на ядрах, а если просто пошевелить мышкой, то подскакивали до 70 ℃.

Конечно же, я вернул Windows на место, просто чтобы убедиться, что всё ок.

Описание дальнейших мучений
И, действительно, всё было ОК. Он был горячий, но не настолько, чтобы к нему было сложно прикасаться. YouTube в Full HD и прочие прелести жизни вполне себе радовали, но нужно же было работать, а для этого нужно было как-нибудь поставить Linux.

Установка системы начисто, с нуля, тоже, как и ожидалось — ни к чему не приводила, всё оставалось по прежнему. В то время как «сборщица вирусов» предлагала уже сейчас работать и быстро, и с «холодной» головой: где-то во вполне комфортном для прикосновения рук диапазоне температур задней крышки. Бесчисленые попытки поставить другие ядра и/или дистрибутивы (свежие Mint | Ubuntu LTS) аналогично терпели полное фиаско: он по прежнему включался раза с третьего с той же ошибкой SMP.

Работать всё же было как-то нужно, и я вернулся на Flex-2-14. В последний из возможных 14 дней возврата я оформил заявку на сайте Lenovo и дал объявление на Avito.

Конечно же, из этого ничего путного не вышло
Кстати, я пробовал купить его сразу БЕЗ Windows. К чести Lenovo надо отметить, что у меня ничего не вышло. Стоны по поводу того, что большинство пользовательского железа идёт с предустановленным Microsoft Windows и отказаться от этой, для меня лично «медвежьей услуги» — дело очень и очень проблемное, будут продолжаться, видимо, ещё очень долго.

Да, это уже получалось у кого-то, тут есть статьи:


Да, как бы, сами по себе ноутбуки Lenovo «вполне use-абильны», лично для меня без альтернативы, так как по соотношению «цена/качество» найти что-нибудь с вменяемой клавиатурой и матрицей практически невозможно, тем более в сегменте 11.6.

Стартовав с какой-то формы на http://www.lenovo.com/ru/ru/ я в итоге получил:
Response By E-mail (Ольга) (03/10/2016 11.28 AM)
Здравствуйте, Виктор!
Спасибо за обращение в компанию Lenovo.

Мы получили официальный ответ от Главного офиса, что, к сожалению, на данный момент, процедуру по возврату денежных средств за ОС, невозможно осуществить через наш интернет-магазин. Искренне сожалею.

С наилучшими пожеланиями, Ольга
Служба поддержки клиентов Lenovo.


Видимо они знают о проблемах с Linux у не совсем опытных пользователей. И, хотя мне никто в общем-то не запрещал ставить на компьютер всё, что вздумается, и в BIOS всё разлочено, но тем не менее, сдать Windows не вышло.

После выяснившихся проблем с Перегревом я снова им написал, и рассказал о ситуации. Поработав немного на Windows, я убедился, что в режиме планшета компьютер всё же совершенно не use-абелен. Он перегревается, и ничего с этим сделать нельзя, просто потому, что в задней крышке нет отверстий, от слова «совсем». Поэтмому перегрев, начинающийся в области кулера постепенно распространяется на остальные внутренности, приводя к полному отказу системы хоть как-нибудь внятно работать. Со временем отключается Wi-Fi, просто из-за перегрева, подозреваю, что в чип WiFi встроена какая-нибудь защита на этот случай, и он просто «железно» выключается. Конечно же мне предложили обратиться в Сервисный Центр и, описав им причину и сдав его на диагностику я, возможно, получил бы деньги по заявке на возврат. Но перспектива остатсья с бумажкой «принято в СЦ» меня очень не радовала.

На Avito тоже ничего не вышло, была пара звонков, но, видимо, все люди в тот же примерно момент нашли что-нибудь более интересное. Один человек даже хотел из Краснодара приехать в Ростов-на-Дону, но ему я, конечно, сказал, что за те же самые деньги он может купить Новый в магазине Lenovo, и не нужно никуда ехать.

Кстати, на всякий случай, если вдруг кого интересуют мои альтернативные варианты с безальтернативно заоблачными ценниками:



Итак, все круги мучений с поддержкой Lenovo закончились, объявление с Avito никому более не было интересно, и, уж совсем кстати днях я прочитал это: Lenovo разрешила ставить Linux на ноутбуки c Windows 10, но с отказом от техподдержки.

В связи с чем, я решил попытаться ещё раз, уже никуда не торопясь, обстоятельно, так, как я могу, если хочу или очень надо. Практически сразу выяснилось, что BIOS моего ноутбука не совсем свежей версии, если не сказать, что совсем не свежей. Конечно же, после обновления изменилось ровным счётом — абсолютно ничего.

Для тех, кому интересны внутренности, как их видит Linux:

# dmidecode
# dmidecode 3.0
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.
71 structures occupying 3632 bytes.
Table at 0x857DA000.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
	Vendor: LENOVO
	Version: DDCN25WW(V1.09)
	Release Date: 04/15/2016
	Address: 0xE0000
	Runtime Size: 128 kB
	ROM Size: 6144 kB
	Characteristics:
		PCI is supported
		BIOS is upgradeable
		BIOS shadowing is allowed
		Boot from CD is supported
		Selectable boot is supported
		EDD is supported
		Japanese floppy for NEC 9800 1.2 MB is supported (int 13h)
		Japanese floppy for Toshiba 1.2 MB is supported (int 13h)
		5.25"/360 kB floppy services are supported (int 13h)
		5.25"/1.2 MB floppy services are supported (int 13h)
		3.5"/720 kB floppy services are supported (int 13h)
		3.5"/2.88 MB floppy services are supported (int 13h)
		8042 keyboard services are supported (int 9h)
		CGA/mono video services are supported (int 10h)
		ACPI is supported
		USB legacy is supported
		BIOS boot specification is supported
		Targeted content distribution is supported
		UEFI is supported
	BIOS Revision: 1.25
	Firmware Revision: 1.25

Handle 0x0001, DMI type 1, 27 bytes
System Information
	Manufacturer: LENOVO
	Product Name: 80QE
	Version: Lenovo YOGA 700-11ISK
	Serial Number: MP13DHX6
	UUID: A6EA5D9D-1B3A-11E6-B27E-1C3947C50FC2
	Wake-up Type: Power Switch
	SKU Number: LENOVO_MT_80QE_BU_idea_FM_Lenovo YOGA 700-11ISK
	Family: IDEAPAD

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
	Manufacturer: LENOVO
	Product Name: Lenovo YOGA 700-
	Version: SDK0J40688 WIN
	Serial Number: MP13DHX6
	Asset Tag: NO Asset Tag
	Features:
		Board is a hosting board
		Board is replaceable
	Location In Chassis: Type2 - Board Chassis Location
	Chassis Handle: 0x0003
	Type: Motherboard
	Contained Object Handles: 0

Handle 0x0003, DMI type 3, 22 bytes
Chassis Information
	Manufacturer: LENOVO
	Type: Notebook
	Lock: Not Present
	Version: Lenovo YOGA 700-11ISK
	Serial Number: MP13DHX6
	Asset Tag: NO Asset Tag
	Boot-up State: Safe
	Power Supply State: Safe
	Thermal State: Safe
	Security Status: None
	OEM Information: 0x00000000
	Height: Unspecified
	Number Of Power Cords: 1
	Contained Elements: 0
	SKU Number: SKU Number

Handle 0x0004, DMI type 4, 42 bytes
Processor Information
	Socket Designation: U3E1
	Type: Central Processor
	Family: Other
	Manufacturer: Intel(R) Corporation
	ID: E3 06 04 00 FF FB EB BF
	Version: Intel(R) Core(TM) m5-6Y54 CPU @ 1.10GHz
	Voltage: 1.0 V
	External Clock: 100 MHz
	Max Speed: 1500 MHz
	Current Speed: 2400 MHz
	Status: Populated, Enabled
	Upgrade: Other
	L1 Cache Handle: 0x0006
	L2 Cache Handle: 0x0007
	L3 Cache Handle: 0x0008
	Serial Number: To Be Filled By O.E.M.
	Asset Tag: To Be Filled By O.E.M.
	Part Number: To Be Filled By O.E.M.
	Core Count: 2
	Core Enabled: 2
	Thread Count: 4
	Characteristics:
		64-bit capable
		Multi-Core
		Hardware Thread
		Execute Protection
		Enhanced Virtualization
		Power/Performance Control

Handle 0x0005, DMI type 7, 19 bytes
Cache Information
	Socket Designation: L1 Cache
	Configuration: Enabled, Not Socketed, Level 1
	Operational Mode: Write Back
	Location: Internal
	Installed Size: 64 kB
	Maximum Size: 64 kB
	Supported SRAM Types:
		Synchronous
	Installed SRAM Type: Synchronous
	Speed: Unknown
	Error Correction Type: Parity
	System Type: Data
	Associativity: 8-way Set-associative

Handle 0x0006, DMI type 7, 19 bytes
Cache Information
	Socket Designation: L1 Cache
	Configuration: Enabled, Not Socketed, Level 1
	Operational Mode: Write Back
	Location: Internal
	Installed Size: 64 kB
	Maximum Size: 64 kB
	Supported SRAM Types:
		Synchronous
	Installed SRAM Type: Synchronous
	Speed: Unknown
	Error Correction Type: Parity
	System Type: Instruction
	Associativity: 8-way Set-associative

Handle 0x0007, DMI type 7, 19 bytes
Cache Information
	Socket Designation: L2 Cache
	Configuration: Enabled, Not Socketed, Level 2
	Operational Mode: Write Back
	Location: Internal
	Installed Size: 512 kB
	Maximum Size: 512 kB
	Supported SRAM Types:
		Synchronous
	Installed SRAM Type: Synchronous
	Speed: Unknown
	Error Correction Type: Single-bit ECC
	System Type: Unified
	Associativity: 4-way Set-associative

Handle 0x0008, DMI type 7, 19 bytes
Cache Information
	Socket Designation: L3 Cache
	Configuration: Enabled, Not Socketed, Level 3
	Operational Mode: Write Back
	Location: Internal
	Installed Size: 4096 kB
	Maximum Size: 4096 kB
	Supported SRAM Types:
		Synchronous
	Installed SRAM Type: Synchronous
	Speed: Unknown
	Error Correction Type: Multi-bit ECC
	System Type: Unified
	Associativity: 16-way Set-associative

Handle 0x0009, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J1A1
	Internal Connector Type: None
	External Reference Designator: Keyboard
	External Connector Type: PS/2
	Port Type: Keyboard Port

Handle 0x000A, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J1A1
	Internal Connector Type: None
	External Reference Designator: Mouse
	External Connector Type: PS/2
	Port Type: Mouse Port

Handle 0x000B, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J2A1
	Internal Connector Type: None
	External Reference Designator: TV OUT
	External Connector Type: Mini DIN
	Port Type: Video Port

Handle 0x000C, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J2A2
	Internal Connector Type: None
	External Reference Designator: CRT
	External Connector Type: DB-15 female
	Port Type: Video Port

Handle 0x000D, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J2A2
	Internal Connector Type: None
	External Reference Designator: COM 1
	External Connector Type: DB-9 male
	Port Type: Serial Port 16550A Compatible

Handle 0x000E, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J3A1
	Internal Connector Type: None
	External Reference Designator: USB
	External Connector Type: Access Bus (USB)
	Port Type: USB

Handle 0x000F, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J3A1
	Internal Connector Type: None
	External Reference Designator: USB
	External Connector Type: Access Bus (USB)
	Port Type: USB

Handle 0x0010, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J3A1
	Internal Connector Type: None
	External Reference Designator: USB
	External Connector Type: Access Bus (USB)
	Port Type: USB

Handle 0x0011, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J5A1
	Internal Connector Type: None
	External Reference Designator: USB
	External Connector Type: Access Bus (USB)
	Port Type: USB

Handle 0x0012, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J5A1
	Internal Connector Type: None
	External Reference Designator: USB
	External Connector Type: Access Bus (USB)
	Port Type: USB

Handle 0x0013, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J5A2
	Internal Connector Type: None
	External Reference Designator: USB
	External Connector Type: Access Bus (USB)
	Port Type: USB

Handle 0x0014, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J5A1
	Internal Connector Type: None
	External Reference Designator: Network
	External Connector Type: RJ-45
	Port Type: Network Port

Handle 0x0015, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J9G2
	Internal Connector Type: On Board Floppy
	External Reference Designator: OnBoard Floppy Type
	External Connector Type: None
	Port Type: Other

Handle 0x0016, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J7J1
	Internal Connector Type: On Board IDE
	External Reference Designator: OnBoard Primary IDE
	External Connector Type: None
	Port Type: Other

Handle 0x0017, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J30
	Internal Connector Type: None
	External Reference Designator: Microphone In
	External Connector Type: Mini Jack (headphones)
	Port Type: Audio Port

Handle 0x0018, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J30
	Internal Connector Type: None
	External Reference Designator: Line In
	External Connector Type: Mini Jack (headphones)
	Port Type: Audio Port

Handle 0x0019, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J30
	Internal Connector Type: None
	External Reference Designator: Speaker Out
	External Connector Type: Mini Jack (headphones)
	Port Type: Audio Port

Handle 0x001A, DMI type 9, 17 bytes
System Slot Information
	Designation: J6C1
	Type: x1 PCI Express x1
	Current Usage: In Use
	Length: Other
	ID: 1
	Characteristics:
		PME signal is supported
		Hot-plug devices are supported
	Bus Address: 0000:00:1c.0

Handle 0x001B, DMI type 9, 17 bytes
System Slot Information
	Designation: J6D2
	Type: x1 PCI Express x1
	Current Usage: Available
	Length: Other
	ID: 2
	Characteristics:
		PME signal is supported
		Hot-plug devices are supported
	Bus Address: 0000:00:1c.1

Handle 0x001C, DMI type 9, 17 bytes
System Slot Information
	Designation: J7C1
	Type: x1 PCI Express x1
	Current Usage: Available
	Length: Other
	ID: 3
	Characteristics:
		PME signal is supported
		Hot-plug devices are supported
	Bus Address: 0000:00:1c.2

Handle 0x001D, DMI type 9, 17 bytes
System Slot Information
	Designation: J7D1
	Type: x1 PCI Express x1
	Current Usage: Available
	Length: Other
	ID: 4
	Characteristics:
		PME signal is supported
		Hot-plug devices are supported
	Bus Address: 0000:00:1c.3

Handle 0x001E, DMI type 9, 17 bytes
System Slot Information
	Designation: J8C1
	Type: x4 PCI Express x4
	Current Usage: Available
	Length: Other
	ID: 5
	Characteristics:
		PME signal is supported
		Hot-plug devices are supported
	Bus Address: 0000:00:1c.4

Handle 0x001F, DMI type 11, 5 bytes
OEM Strings
	String 1: OemString1
	String 2: OemString2
	String 3: OemString3

Handle 0x0020, DMI type 12, 5 bytes
System Configuration Options
	Option 1: ConfigOptions1
	Option 2: ConfigOptions2
	Option 3: ConfigOptions3

Handle 0x0021, DMI type 13, 22 bytes
BIOS Language Information
	Language Description Format: Long
	Installable Languages: 8
		en|US|iso8859-1,0
		fr|CA|iso8859-1,0
		zh|TW|unicode,0
		ja|JP|unicode,0
		it|IT|iso8859-1,0
		es|ES|iso8859-1,0
		de|DE|iso8859-1,0
		pt|PT|iso8859-1,0
	Currently Installed Language: en|US|iso8859-1,0

Handle 0x0022, DMI type 14, 17 bytes
Group Associations
	Name: Firmware Version Info
	Items: 4
		0x0040 (<OUT OF SPEC>)
		0x003B (<OUT OF SPEC>)
		0x003A (<OUT OF SPEC>)
		0x0039 (<OUT OF SPEC>)

Handle 0x0023, DMI type 14, 8 bytes
Group Associations
	Name: Intel(R) Silicon View Technology
	Items: 1
		0x0044 (<OUT OF SPEC>)

Handle 0x0024, DMI type 14, 8 bytes
Group Associations
	Name: $MEI
	Items: 1
		0x003F (<OUT OF SPEC>)

Handle 0x0025, DMI type 15, 29 bytes
System Event Log
	Area Length: 0 bytes
	Header Start Offset: 0x0000
	Header Length: 8192 bytes
	Data Start Offset: 0x2000
	Access Method: General-purpose non-volatile data functions
	Access Address: 0x0000
	Status: Valid, Not Full
	Change Token: 0x12345678
	Header Format: OEM-specific
	Supported Log Type Descriptors: 3
	Descriptor 1: POST memory resize
	Data Format 1: None
	Descriptor 2: POST error
	Data Format 2: POST results bitmap
	Descriptor 3: Log area reset/cleared
	Data Format 3: None

Handle 0x0026, DMI type 16, 23 bytes
Physical Memory Array
	Location: System Board Or Motherboard
	Use: System Memory
	Error Correction Type: None
	Maximum Capacity: 16 GB
	Error Information Handle: No Error
	Number Of Devices: 2

Handle 0x0027, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x0026
	Error Information Handle: No Error
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 4096 MB
	Form Factor: SODIMM
	Set: None
	Locator: ChannelA-DIMM0
	Bank Locator: BANK 0
	Type: LPDDR3
	Type Detail: Synchronous
	Speed: 1600 MHz
	Manufacturer: Samsung
	Serial Number: 85000000
	Asset Tag: 9876543210
	Part Number: K4E6E304EE-EGCF   
	Rank: 2
	Configured Clock Speed: 1600 MHz
	Minimum Voltage: 1.5 V
	Maximum Voltage: 1.5 V
	Configured Voltage: 1.2 V

Handle 0x0028, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x0026
	Error Information Handle: No Error
	Total Width: Unknown
	Data Width: Unknown
	Size: No Module Installed
	Form Factor: Unknown
	Set: None
	Locator: ChannelA-DIMM1
	Bank Locator: BANK 1
	Type: Unknown
	Type Detail: None
	Speed: Unknown
	Manufacturer: Not Specified
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified
	Rank: Unknown
	Configured Clock Speed: Unknown
	Minimum Voltage: Unknown
	Maximum Voltage: Unknown
	Configured Voltage: Unknown

Handle 0x0029, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x0026
	Error Information Handle: No Error
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 4096 MB
	Form Factor: SODIMM
	Set: None
	Locator: ChannelB-DIMM0
	Bank Locator: BANK 2
	Type: LPDDR3
	Type Detail: Synchronous
	Speed: 1600 MHz
	Manufacturer: Samsung
	Serial Number: 85000000
	Asset Tag: 9876543210
	Part Number: K4E6E304EE-EGCF   
	Rank: 2
	Configured Clock Speed: 1600 MHz
	Minimum Voltage: 1.5 V
	Maximum Voltage: 1.5 V
	Configured Voltage: 1.2 V

Handle 0x002A, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x0026
	Error Information Handle: No Error
	Total Width: Unknown
	Data Width: Unknown
	Size: No Module Installed
	Form Factor: Unknown
	Set: None
	Locator: ChannelB-DIMM1
	Bank Locator: BANK 3
	Type: Unknown
	Type Detail: None
	Speed: Unknown
	Manufacturer: Not Specified
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified
	Rank: Unknown
	Configured Clock Speed: Unknown
	Minimum Voltage: Unknown
	Maximum Voltage: Unknown
	Configured Voltage: Unknown

Handle 0x002B, DMI type 19, 31 bytes
Memory Array Mapped Address
	Starting Address: 0x00000000000
	Ending Address: 0x001FFFFFFFF
	Range Size: 8 GB
	Physical Array Handle: 0x0026
	Partition Width: 2

Handle 0x002C, DMI type 20, 35 bytes
Memory Device Mapped Address
	Starting Address: 0x00000000000
	Ending Address: 0x000FFFFFFFF
	Range Size: 4 GB
	Physical Device Handle: 0x0027
	Memory Array Mapped Address Handle: 0x002B
	Partition Row Position: Unknown
	Interleave Position: 1
	Interleaved Data Depth: 1

Handle 0x002D, DMI type 20, 35 bytes
Memory Device Mapped Address
	Starting Address: 0x00000000000
	Ending Address: 0x000FFFFFFFF
	Range Size: 4 GB
	Physical Device Handle: 0x0028
	Memory Array Mapped Address Handle: 0x002B
	Partition Row Position: Unknown
	Interleave Position: 2
	Interleaved Data Depth: 1

Handle 0x002E, DMI type 21, 7 bytes
Built-in Pointing Device
	Type: Touch Pad
	Interface: PS/2
	Buttons: 4

Handle 0x002F, DMI type 22, 26 bytes
Portable Battery
	Location: Fake
	Manufacturer: -Virtual Battery 0-
	Manufacture Date: 08/08/2010
	Serial Number: Battery 0
	Name: CRB Battery 0
	Chemistry: Zinc Air
	Design Capacity: Unknown
	Design Voltage: Unknown
	SBDS Version: Not Specified
	Maximum Error: Unknown
	OEM-specific Information: 0x00000000

Handle 0x0030, DMI type 24, 5 bytes
Hardware Security
	Power-On Password Status: Disabled
	Keyboard Password Status: Disabled
	Administrator Password Status: Disabled
	Front Panel Reset Status: Disabled

Handle 0x0031, DMI type 26, 24 bytes
Voltage Probe
	Description: Voltage Probe Description
	Location: Unknown
	Status: Unknown
	Maximum Value: Unknown
	Minimum Value: Unknown
	Resolution: Unknown
	Tolerance: Unknown
	Accuracy: Unknown
	OEM-specific Information: 0x00008000
	Nominal Value: 0.000 V

Handle 0x0032, DMI type 27, 15 bytes
Cooling Device
	Temperature Probe Handle: 0x0033
	Type: Fan
	Status: OK
	OEM-specific Information: 0x00000000
	Nominal Speed: 8192 rpm
	Description: Cooling Device Description

Handle 0x0033, DMI type 28, 24 bytes
Temperature Probe
	Description: Temperature Probe Description
	Location: Unknown
	Status: Unknown
	Maximum Value: Unknown
	Minimum Value: Unknown
	Resolution: Unknown
	Tolerance: Unknown
	Accuracy: Unknown
	OEM-specific Information: 0x00008000
	Nominal Value: 0.0 deg C

Handle 0x0034, DMI type 32, 11 bytes
System Boot Information
	Status: No errors detected

Handle 0x0035, DMI type 39, 22 bytes
System Power Supply
	Location: OEM Define 0
	Name: OEM Define 1
	Manufacturer: OEM Define 2
	Serial Number: OEM Define 3
	Asset Tag: OEM Define 4
	Model Part Number: OEM Define 5
	Revision: OEM Define 6
	Max Power Capacity: 75 W
	Status: Not Present
	Type: Regulator
	Input Voltage Range Switching: Auto-switch
	Plugged: No
	Hot Replaceable: No

Handle 0x0036, DMI type 40, 17 bytes
Additional Information 1
	Referenced Handle: 0x000e
	Referenced Offset: 0x05
	String: PCIExpressx16
	Value: 0xaa
Additional Information 2
	Referenced Handle: 0x0000
	Referenced Offset: 0x05
	String: Compiler Version: VC 9.0
	Value: 0x00

Handle 0x0037, DMI type 41, 11 bytes
Onboard Device
	Reference Designation: IGD
	Type: Video
	Status: Disabled
	Type Instance: 1
	Bus Address: 0000:00:02.0

Handle 0x0038, DMI type 128, 8 bytes
OEM-specific Type
	Header and Data:
		80 08 38 00 55 AA 55 AA
	Strings:
		Oem Type 128 Test 1
		Oem Type 128 Test 2

Handle 0x0039, DMI type 129, 8 bytes
OEM-specific Type
	Header and Data:
		81 08 39 00 01 01 02 01
	Strings:
		Insyde_ASF_001
		Insyde_ASF_002

Handle 0x003A, DMI type 130, 20 bytes
OEM-specific Type
	Header and Data:
		82 14 3A 00 24 41 4D 54 01 01 01 01 01 A5 1F 02
		00 00 00 00

Handle 0x003B, DMI type 131, 64 bytes
OEM-specific Type
	Header and Data:
		83 40 3B 00 10 00 00 00 00 00 00 00 00 00 00 00
		F8 00 46 9D 00 00 00 00 01 00 00 00 00 00 0B 00
		88 04 00 00 00 00 00 00 FE 00 FF FF 00 00 00 00
		00 FF 00 00 26 00 00 00 76 50 72 6F 00 00 00 00

Handle 0x003C, DMI type 133, 5 bytes
OEM-specific Type
	Header and Data:
		85 05 3C 00 01
	Strings:
		KHOIHGIUCCHHII

Handle 0x003D, DMI type 136, 6 bytes
OEM-specific Type
	Header and Data:
		88 06 3D 00 FF FF

Handle 0x003E, DMI type 200, 16 bytes
OEM-specific Type
	Header and Data:
		C8 10 3E 00 01 02 01 22 01 12 01 3D B2 80 01 05
	Strings:
		IdeaPad
		80QE0034RK

Handle 0x003F, DMI type 219, 81 bytes
OEM-specific Type
	Header and Data:
		DB 51 3F 00 01 03 01 45 00 00 90 06 01 00 60 00
		00 00 00 00 40 08 00 00 00 00 00 00 00 00 40 02
		FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
		FF FF FF FF FF FF FF FF 03 FF FF FF FF FF FF FF
		FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
		FF
	Strings:
		MEI1
		MEI2
		MEI3

Handle 0x0040, DMI type 221, 26 bytes
OEM-specific Type
	Header and Data:
		DD 1A 40 00 03 01 00 01 03 00 00 00 02 00 00 00
		00 74 00 03 00 00 05 00 00 00
	Strings:
		Reference Code - CPU
		uCode Version
		TXT ACM version

Handle 0x0041, DMI type 221, 26 bytes
OEM-specific Type
	Header and Data:
		DD 1A 41 00 03 01 00 01 03 00 00 00 02 00 01 03
		00 00 00 03 04 0B 00 00 88 04
	Strings:
		Reference Code - ME 11.0
		MEBx version
		ME Firmware Version
		Consumer SKU

Handle 0x0042, DMI type 221, 68 bytes
OEM-specific Type
	Header and Data:
		DD 44 42 00 09 01 00 01 03 00 00 00 02 03 FF FF
		FF FF FF 04 00 FF FF FF 21 00 05 00 FF FF FF 21
		00 06 00 FF FF FF FF FF 07 00 3E 00 00 00 00 08
		00 34 00 00 00 00 09 00 3E 00 00 00 00 0A 00 34
		00 00 00 00
	Strings:
		Reference Code - SKL PCH
		PCH-CRID Status
		Disabled
		PCH-CRID Original Value
		PCH-CRID New Value
		OPROM - RST - RAID
		SKL PCH H Bx Hsio Version
		SKL PCH H Dx Hsio Version
		SKL PCH LP Bx Hsio Version
		SKL PCH LP Cx Hsio Version

Handle 0x0043, DMI type 221, 54 bytes
OEM-specific Type
	Header and Data:
		DD 36 43 00 07 01 00 01 03 00 00 00 02 00 01 04
		00 02 00 03 00 01 03 00 00 00 04 05 FF FF FF FF
		FF 06 00 FF FF FF 08 00 07 00 FF FF FF 08 00 08
		00 FF FF FF FF FF
	Strings:
		Reference Code - SA - System Agent
		Reference Code - MRC
		SA - PCIe Version
		SA-CRID Status
		Disabled
		SA-CRID Original Value
		SA-CRID New Value
		OPROM - VBIOS

Handle 0x0044, DMI type 222, 14 bytes
OEM-specific Type
	Header and Data:
		DE 0E 44 00 01 99 00 03 10 01 20 02 30 03
	Strings:
		Memory Init Complete
		End of DXE Phase
		BIOS Boot Complete

Handle 0x0045, DMI type 248, 18 bytes
OEM-specific Type
	Header and Data:
		F8 12 45 00 AC AC AA 17 00 00 00 00 00 00 00 00
		00 00

Handle 0xFEFF, DMI type 127, 4 bytes
End Of Table


#lspci
00:00.0 Host bridge: Intel Corporation Sky Lake Host Bridge/DRAM Registers (rev 08)
00:02.0 VGA compatible controller: Intel Corporation Sky Lake Integrated Graphics (rev 07)
00:04.0 Signal processing controller: Intel Corporation Skylake Processor Thermal Subsystem (rev 08)
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller (rev 21)
00:15.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller (rev 21)
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI (rev 21)
00:17.0 SATA controller: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] (rev 21)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port (rev f1)
00:1f.0 ISA bridge: Intel Corporation Device 9d46 (rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
01:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8821AE 802.11ac PCIe Wireless Network Adapter


cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 78
model name	: Intel(R) Core(TM) m5-6Y54 CPU @ 1.10GHz
stepping	: 3
microcode	: 0x74
cpu MHz		: 595.642
cache size	: 4096 KB
physical id	: 0
siblings	: 4
core id		: 0
cpu cores	: 2
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 22
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
bugs		:
bogomips	: 3024.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6
model		: 78
model name	: Intel(R) Core(TM) m5-6Y54 CPU @ 1.10GHz
stepping	: 3
microcode	: 0x74
cpu MHz		: 591.705
cache size	: 4096 KB
physical id	: 0
siblings	: 4
core id		: 1
cpu cores	: 2
apicid		: 2
initial apicid	: 2
fpu		: yes
fpu_exception	: yes
cpuid level	: 22
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
bugs		:
bogomips	: 3024.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:

processor	: 2
vendor_id	: GenuineIntel
cpu family	: 6
model		: 78
model name	: Intel(R) Core(TM) m5-6Y54 CPU @ 1.10GHz
stepping	: 3
microcode	: 0x74
cpu MHz		: 591.156
cache size	: 4096 KB
physical id	: 0
siblings	: 4
core id		: 0
cpu cores	: 2
apicid		: 1
initial apicid	: 1
fpu		: yes
fpu_exception	: yes
cpuid level	: 22
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
bugs		:
bogomips	: 3024.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:

processor	: 3
vendor_id	: GenuineIntel
cpu family	: 6
model		: 78
model name	: Intel(R) Core(TM) m5-6Y54 CPU @ 1.10GHz
stepping	: 3
microcode	: 0x74
cpu MHz		: 599.395
cache size	: 4096 KB
physical id	: 0
siblings	: 4
core id		: 1
cpu cores	: 2
apicid		: 3
initial apicid	: 3
fpu		: yes
fpu_exception	: yes
cpuid level	: 22
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
bugs		:
bogomips	: 3024.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:


Основательно изучив эти наши интернеты я выяснил, что SMP — это Symmetric multiprocessing (Wikipedia). Как это использовать было пока не совсем понятно, но останавливаться было некуда, и я решил зайти несколько с другой стороны. Я снял крышку (кликабельно)…



Безусловно, проблем с загрузкой это не решило, но вполне решило проблемы с дальнейшей работой, температура резко упала, и не росла до критических значений. И WiFi работал стабильно, как говорится: «ни единого разрыва». Убедившись, что я всё же скорее прав, чем не прав, и заменив штатную, кстати, довольно в общем-то не плохую термопасту, я собрал его назад и стал разбираться дальше. И, да, смена термопасты отсудила «первоначальный» пыл, теперь после загрузки он уже достаточно долго был способен держаться в диапазоне 55-57 ℃, что, в общем-то почти комфортно. Я даже стал пытаться работать работу на работе. Но, через два-четыре часа, в зависимости от нагрузки, он всё же нагревался до потери WiFi. Хорошо, что к этому моменту я выяснил, что достаточно перезагрузить Network Manager Applet и WiFi на некоторое время, а может быть и до конца «сеанса» будет снова со мной:

# service network-manager stop
# service networking stop
# service network-manager start
# service networking start

В общем, стало можно гуглить «не отходя», как говорится, «от кассы». Довольно скоро я узнал, что в мире этого процессора теперь за всё отвечает Power Profile. Это несколько прояснило ситуацию, оказывается гугление на предмет «температура процессора» было совсем не тем, что мне было нужно. Нужно было гуглить «Power Management Ubuntu» с сопутствующими уточнениями, желательно за последний год-два.

часть вывода
# dmesg
...
[    0.036609] CPU: Physical Processor ID: 0
[    0.036612] CPU: Processor Core ID: 0
[    0.036618] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
[    0.036621] ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)
[    0.036627] mce: CPU supports 8 MCE banks
[    0.036638] CPU0: Thermal monitoring enabled (TM1)
...

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors 
performance powersave

Таким образом, я выяснил, что сразу в момент загрузки процессор включается в режим Perfomance и работает в нём до тех пор, пока не включится что-то внутри системы, что выставит ему нужный режим. А т.к. «CPU Frequency Scaling Monitor» моего рабочего стола, показывал после загрузки «Powersave» режим, то было понятно, что система всё же в конце-концов входит в этот режим каким-то самостоятельным образом.

В общем, запасаемся попкорном… В Ubuntu, и, соответственно, в Mint есть несколько подсистем, которые отвечают за Power Profile Management. К вашей радости я не могу вспомнить все те бесконечно нудные попытки выяснить что и в какой последовательности включается, поэтому просто перечислю их списком, как есть, без пояснений:

# service --status-all
 ...
 [ + ]  cpufreqd
 [ + ]  cpufrequtilsthermald
 ...
 [ + ]  ondemand
 ...
 [ + ]  thermald
 ...


UPD: В комментарих подсказывают, что этого может и не наблюдаться, в зависимости от «запущенности» системы и т.п., например у меня это может быть вызвано просто «переездами», а не установками системы с нуля.

Описание утилиты BUM для тех, кто не в теме
Есть такая замечательная GUI-ёвая утилита: BUM — Boot-Up Manager
# apt-get install bum

Она позволяет просматривать список некоторых сервисов, а так же включать и выключать их, причём не нужно даже помнить, что вы что-то выключили, оно по прежнему будет оставаться в списке, просто рядом не будет стоять галочка:


Да, все они, все вместе управляли тем, какой же профиль выставить для моего бедного CPU. Причём делали они это абсолютно несогласовано. В то время как thermald пытался всё же сделать «powersave», cpufreqd на пару с ondemand сервисом пытались сделать «perfomance».

# cat etc/init.d/ondemand
...
GOVERNOR="interactive"
...
GOVERNOR="ondemand"
...

Просто потому, что если GOVERNOR стоит Не из доступных по scaling_available_governors, то будет взят Perfomance.

Сначала я пытался разобраться с настройками thermald. Просто потому, что в Windows среди установленных драйверов устройств видел нечто похожее. Но, конечно, это ни к чему не привело, там жуткая XML'ка, толковое описание которой не даёт никаких существенных подвижек и никак не проясняет ситуацию на предмет того, как же его настраивать то:


После чего я его просто выключил и потом удалил.

# update-rc.d -f thermald remove
# apt-get remove thermald

Как я и ожидал система осталась в режиме Perfomance сразу после перезагрузки, то есть и в «CPU Frequency Scaling Monitor» показался Perfomance профиль. После чего я выключил и оставшиеся ondemand, cpufreqd и cpufrequtils:

# update-rc.d -f ondemand remove
# update-rc.d -f cpufreqd remove
# update-rc.d -f cpufreutils remove
# apt-get remove cpufreqd
# apt-get remove cpufrequtils

И ничего, тоже ничего страшного не произошло, компьютер не взорвался, не сгорел. Как работал так и продолжил работать. Загружался через раз, но работал. «CPU Frequency Scaling Monitor» вполне позволял выставить power profile после загрузки. Теперь процессором вроде бы совсем уже ничего не управляло, но всё же он был вполне в кондиции работать дальше без проблем. Оставалось решить, что же делать с загрузкой системы.

Конечно же, как и все «нубы» я решил воспользоваться методом научного тыка. Для начала я выяснил, что есть P-State, и именно он отвечает за то, что мне нужно. К тому же я прочёл где-то, что этот самый P-State необходимо включить в параметрах ядра, то есть добавить в коммандную строку Grub для загрузки, примерно так советовали сделать:

# nano /etc/default/grub

найти строчку 
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

добавить intel_pstate=enable, чтобы получилось
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_pstate=enable"

Это не решило пролему, но, зато теперь тут было написано то, что нужно:

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver 
intel_pstate

Кстати, для того, чтобы intel_pstate нормально работал, необходимо установить intel-microcode, делается это приблизительно так (можно и через apt-get, конечно):


В итоге я, конечно, отправился сюда: Linux Kernel Parameters: kernel.org. Последовательно вчитываясь и перебирая комбинации я пришёл к следующим выводам:

GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=hwp_only epb=15 idle=nomwait cpu_init_udelay=5000000 pause_on_oops=5 noapic"

  • intel_pstate=hwp_only Only load intel_pstate on systems which support hardware P state control (HWP) if available. То есть загрузить P-State драйвер только, если это возможно.
  • epb=15 нашёл где-то ещё, вполне возможно, что оно выключено уже. Отвечает опять же за Power Profile на этапе загрузки. Значение 0 включает Perfomance, 15 включает Powersave, не работает, т.к. вывод dmesg у меня не изменился.
  • idle=nomwait Disable mwait for CPU C-states.
  • cpu_init_udelay=5000000 Delay for N microsec between assert and de-assert of APIC INIT to start processors. Задержка перед тем, как APIC инициализирует проц.
  • pause_on_oops=5 — мне всё таки хотелось успевать прочесть каждый вывод ошибки, потому, что, когда я отключил quiet splash я стал видеть что происходит.
  • noapic [SMP,APIC] Tells the kernel to not make use of any IOAPICs that may be present in the system. САМЫЙ ВАЖНЫЙ ПАРАМЕТР. Именно он выключил все мои ошибки SMP.

Итак, после того, как я выключил APIC загрузка сразу пошла в штатном стабильном режиме. Никаких «вылетов» больше не было, ноутбук стал работать быстро и стабильно всегда, даже после чудовищного прогрева градусов до 98 при помощи CPUBurn.

Но, как вы догадались, на этом эпопея не закончилась, т.к. он всё равно грелся. Хоть и загружался теперь стабильно, но греться продолжал.

И тут я наткнулся на TLP — Linux Advanced Power Management… который решил все проблемы: linrunner.de: TLP. Можно нагуглить и найти ещё другие источники, например этот, но мне дока с linrunner.de показалась наиболее исчерпывающей.

На большом фото видно, что SSD расположен совсем рядом с WiFi. Поэтому контроллировать температуру в той «зоне» я буду при помощи HDDTemp. Ранее всё это у меня уже стояло, но для тех, кто никогда не планировал это мониторить показываю.

# apt-get install lm-sensors hddtemp

Для того, чтобы MATE Sensors Applet показывал температуру диска необходимо включить его HTTP-демон, для этого:

nano /etc/default/hddtemp
поправить
RUN_DAEMON="true"

В мануале TLP сказано, что нужно отключить cpufreqd и ondemand, мы это проделали ранее, Теперь, собственно, ставим TLP, по мануалу:

# apt-get install tlp tlp-rdw laptop-mode
если у Вас ThinkPad то можно ещё добавить
# apt-get install tp-smapi-dkms acpi-call-dkms

Теперь можно просто включить TLP, и, в общем — всё, наслаждаемся.

# service tlp start

Для себя я, правда, чуть подтюнил параметры, они все подписаны, прям в конфиге:

# nano /etc/default/tlp

CPU_SCALING_GOVERNOR_ON_AC=powersave
CPU_SCALING_GOVERNOR_ON_BAT=powersave

ENERGY_PERF_POLICY_ON_AC=powersave
ENERGY_PERF_POLICY_ON_BAT=powersave

Ещё немножко моих параметров, но они не влияют на Power Profile
DISK_IDLE_SECS_ON_AC=2
DISK_IDLE_SECS_ON_BAT=5

MAX_LOST_WORK_SECS_ON_AC=15
MAX_LOST_WORK_SECS_ON_BAT=60

CPU_SCALING_MIN_FREQ_ON_AC=400000
CPU_SCALING_MAX_FREQ_ON_AC=2000000
CPU_SCALING_MIN_FREQ_ON_BAT=400000
CPU_SCALING_MAX_FREQ_ON_BAT=1100000

CPU_MIN_PERF_ON_AC=0
CPU_MAX_PERF_ON_AC=70
CPU_MIN_PERF_ON_BAT=0
CPU_MAX_PERF_ON_BAT=30

CPU_BOOST_ON_AC=1
CPU_BOOST_ON_BAT=0

SCHED_POWERSAVE_ON_AC=0
SCHED_POWERSAVE_ON_BAT=4

DISK_APM_LEVEL_ON_AC="128 254"
DISK_APM_LEVEL_ON_BAT="128 128"

SATA_LINKPWR_ON_AC=medium_power
SATA_LINKPWR_ON_BAT=min_power

PCIE_ASPM_ON_AC=default
PCIE_ASPM_ON_BAT=powersave

WIFI_PWR_ON_AC=1
WIFI_PWR_ON_BAT=1


Так же я поигрался с laptop-mode, который TLP использует, это тоже не обязательно:

# nano /etc/laptop-mode/laptop-mode.conf

BATT_CPU_GOVERNOR=powersave
LM_AC_CPU_GOVERNOR=powersave
NOLM_AC_CPU_GOVERNOR=powersave

Казалось бы, всё, чего ещё то? Но, увы, это не всё…

# tlp-stat -p

--- TLP 0.8 --------------------------------------------

+++ Processor
CPU Model      = Intel(R) Core(TM) m5-6Y54 CPU @ 1.10GHz

/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver    = intel_pstate
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor  = powersave
/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq  =   400000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq  =  2000000 [kHz]

/sys/devices/system/cpu/cpu1/cpufreq/scaling_driver    = intel_pstate
/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor  = powersave
/sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq  =   400000 [kHz]
/sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq  =  2000000 [kHz]

/sys/devices/system/cpu/cpu2/cpufreq/scaling_driver    = intel_pstate
/sys/devices/system/cpu/cpu2/cpufreq/scaling_governor  = powersave
/sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq  =   400000 [kHz]
/sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq  =  2000000 [kHz]

/sys/devices/system/cpu/cpu3/cpufreq/scaling_driver    = intel_pstate
/sys/devices/system/cpu/cpu3/cpufreq/scaling_governor  = powersave
/sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq  =   400000 [kHz]
/sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq  =  2000000 [kHz]

/sys/devices/system/cpu/intel_pstate/min_perf_pct      = 14
/sys/devices/system/cpu/intel_pstate/max_perf_pct      = 70
/sys/devices/system/cpu/intel_pstate/no_turbo          = 0

x86_energy_perf_policy: program for your kernel not installed.

/proc/sys/kernel/nmi_watchdog                          = 0

+++ Undervolting
PHC kernel not available.

Заметили строчку x86_energy_perf_policy...? TLP ещё не работает. Потому, что нет этой утилиты. Ставим:

# apt-get install linux-tools-generic linux-tools-common linux-tools-[Ваша Версия Ядра]-generic

После установки можно, дополнительно, сделать так, чтобы сразу выставить профиль:

# x86_energy_perf_policy -v -c 0 powersave
# x86_energy_perf_policy -v -c 1 powersave
# x86_energy_perf_policy -v -c 2 powersave
# x86_energy_perf_policy -v -c 3 powersave

Можно перезагрузиться, можно просто рестартовать TLP, после чего будет примерно так:

# tlp-stat -p
...

x86_energy_perf_policy.cpu0                            = powersave
x86_energy_perf_policy.cpu1                            = powersave
x86_energy_perf_policy.cpu2                            = powersave
x86_energy_perf_policy.cpu3                            = powersave

+++ Undervolting
PHC kernel not available.

К сожалению установку linux-tools придётся делать каждый раз после обновления ядра, но это не сложно запомнить, что после того, как прилетит свежее ядро, нужно доставить ещё и эти сопутствующие стабильности работы компоненты.

Если же вы интересуетесь, что теперь делать со строками про Undervolting PHC kernel, как снизить вольтаж процессора — я не знаю. Может быть в комментариях кто-нибудь напишет. Насколько я понял, проект PHC-kernel более не поддерживается: linux-PHC. Хотя, кое какие издевательства по прежнему можно найти на сайте Arch Wiki: PHC — ArchWiki. В общем, PHC и TLP — близнецы конкуренты, и из TLP можно управлять вольтажом для PHC ядер, поэтому выводится эта строчка. Как пропатчить ядро для поддержки PHC я так и не смог понять.

Всё, после этого я получил стабильные 52-55 ℃ в обычном режиме, очень редко температура подскакивает до 60-62 ℃. Если смотрю YouTube, то может подрасти до 70 ℃, что, конечно, продолжает сказываться на WiFi, но это не критично, достаточно перестать смотреть видосики и вернуться к работе, и он сам остывает до нормальных температур. И, да, он загружается.

Конечно же, на этом издевательства над компьютером не закончились. Внеочередное пленарное заседание в «Палате №6» (есть у нас такой чатик в скайпе), постановило, что:

  • Только массовые расстрелы спасут Родину...
  • Только… рублей спасут отца русской демократии...
  • Только Хирургическое Вмешательсто в Днище спасёт WiFi этого ноутбука…

И инженеры Lenovo — всё же ошиблись, необходимо "доработать напильником".

Смотреть раздел про Моддинг под спойлером...
В самом деле, ведь днище стоит каких-то жалких 10-30$ на ebay: Part 5CB0H151751.
С гарантии он уже слетел, как минимум после установки Linux, а ещё я уже поменял термопасту, что, в принципе, вполне доказуемо, если попытаться копнуть поглубже.

Поэтому в минувшую ночь с пятницы на понедельник было задумано Торжество Инженерной Мысли и движение прогресса вперёд, к светлому будущему:

Дрожащими руками Сергеич™ пропилил дремелем днище:



Режем сеточку от автомобильного динамика:



Сломали «болгарку» (потом ещё пяток):



Результат, до сгибов:



После нескольких сгибов:



Итого, да, мы загнули стеночки внутрь буквой S:


Конечно, это ещё раз помогло. WiFi теперь не перегревается больше, совсем. Зона SSD стабильно показывает не выше 45 ℃, даже если очень долго греть его через CPUBurn. Единственный вариант снова вернуть «нагрев» — накрыть одеялом, но это и так понятно.

Итоги:

  1. Инженерия некоторых безвентиляторных ноутбуков «ниже плинтуса». Только если конструктивные решения в виде алюминиевого «днища» присутствуют, можно начинать решать софтовые пролемы. Без конструктивных решений для пластикового дна толк от них будет не очень хороший.
  2. Решить soft-orientied проблемы перегрева в Linux можно, прям здесь, прям сейчас, всё уже есть, но только НЕ «из коробки».
  3. Почти все проблемы со стабильностью загрузки решились выключением APIC, то есть прописыванием noapic в параметры ядра в Grub.
  4. Стандартное решение по Power Management, состоящее из ondemand, thermald и cpufreqd + cpufrequtils не годится, его проще снести чем быстро и нормально настроить.
  5. TLP — фееричная «годнота» с простым и понятным конфигом, но придётся немного повозиться с настройками зависимостей, потому, что Graceful Degradation.


Дополнение из комментариев menstenebris:
# powertop --auto-tune

И далее его поставить как сервис в systemctl, перед этим желательно сделать калибровку через powertop -c.

Надеюсь, что несмотря на "многабукаф" Вам было интересно, и я потратил последние две ночи не зря. Общение в комментариях в целом, конечно, приветстсвуется, но не могу обещать ничего толкового. И, да, grammar nazzi убедительная просьба писать сразу «в личку».

Такие дела…
Теги:
Хабы:
Всего голосов 60: ↑57 и ↓3+54
Комментарии174

Публикации

Истории

Ближайшие события