.\" thermal-conf.xml(5) manual page
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public Licence along
.\" with this manual; if not, write to the Free Software Foundation, Inc.,
.\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
.\"
.\" Copyright (C) 2012 Intel Corporation. All rights reserved.
.\"
.TH thermal-conf.xml "5" "Dec 18, 2018"
.SH "نام (NAME)"
thermal-conf.xml \- پرونده پیکربندی دیمن مدیریت حرارت
.SH "خلاصه دستور (SYNOPSIS)"
$(TDCONFDIR)/etc/thermald/thermal-conf.xml
.SH "توضیحات (DESCRIPTION)"
پرونده
.B thermal-conf.xml
یک پرونده پیکربندی برای دیمن مدیریت حرارت (thermal daemon) است. این پرونده برای پیکربندی حسگرهای حرارتی، ناحیهها (zones) و دستگاههای خنککننده به کار میرود. محل قرارگیری این پرونده به گزینههای پیکربندی انتخابشده در زمان کامپایل بستگی دارد.
.PP
اصطلاحات بهکاررفته در این پرونده با «مشخصات رابط پیشرفته پیکربندی و توان» (ACPI) مطابقت دارد. مدل حرارتی ACPI بر پایه نواحی مفهومی در پلتفرم به نام «ناحیههای حرارتی» (thermal zones) بنا شده است که از نظر فیزیکی دربرگیرنده دستگاهها، حسگرهای حرارتی و کنترلهای خنککننده هستند. برای نمونه، یک ناحیه حرارتی میتواند پردازنده (CPU) یا بدنه لپتاپ باشد. یک ناحیه میتواند شامل چندین حسگر برای پایش دما باشد. یک دستگاه خنککننده، رابطی برای کاهش دمای دستگاه مبدأ فراهم میکند؛ دستگاهی که باعث افزایش دما میشود. نمونهای از یک دستگاه خنککننده، فن (FAN) یا یک درایور لینوکس است که میتواند توان پردازشی دستگاه مبدأ را محدود (throttle) کند.
.PP
پیکربندی هر ناحیه حرارتی شامل یک یا چند «نقطه تحریک» (trip point) است. نقطه تحریک، دمایی است که در آن باید یک دستگاه خنککننده فعال شود.
.PP
یک دستگاه خنککننده میتواند فعال (active) یا غیرفعال (passive) باشد. نمونهای از یک دستگاه فعال، فن است که بدون کاهش کارایی سیستم عمل خنکسازی را انجام میدهد، اما در مقابل توان مصرفی و صدای بیشتری ایجاد میکند. یک دستگاه غیرفعال از محدودسازی کارایی برای مهار دما استفاده میکند. علاوه بر دستگاههای خنککننده موجود در sysfs حرارتی، دستگاههای خنککننده زیر نیز درون
.B thermald
تعبیه شدهاند و میتوان از آنها به عنوان نوع معتبر دستگاه خنککننده استفاده کرد:
.IP \(bu 2
rapl_controller
.IP \(bu 2
intel_pstate
.IP \(bu 2
cpufreq
.IP \(bu 2
LCD
.PP
ساختار sysfs حرارتی در لینوکس
.RI ( /sys/class/thermal )
روشی برای نمایش پیکربندی ACPI به ازای هر پلتفرم فراهم میآورد. فرماندار حرارتی هسته (kernel thermal governor) از این دادهها برای مهار دمای پلتفرم استفاده میکند. با این حال محدودیتهایی وجود دارد که
.B thermald
تلاش میکند آنها را برطرف سازد؛ برای نمونه:
.IP \(bu 2
چنانچه دادههای ACPI بهینهسازی نشده باشند یا دارای اشکال باشند. در این حالت میتوان از
.B thermal-conf.xml
برای اصلاح رفتار بدون نیاز به تغییر در BIOS استفاده کرد.
.IP \(bu 2
ممکن است ناحیههای حرارتی توسط sysfs حرارتی ارائه شده باشند اما هیچ اقدام خنککنندهای به آنها متصل نشده باشد. در این حالت میتوان از
.B thermal-conf.xml
برای پیوند دادن دستگاههای خنککننده به آن ناحیهها استفاده نمود.
.IP \(bu 2
شاید بهترین روش خنکسازی در sysfs حرارتی وجود نداشته باشد. در این حالت میتوان از
.B thermal-conf.xml
برای پیوند یک ناحیه به یک دستگاه خنککننده خارجی استفاده کرد.
.IP \(bu 2
تعیین روابط حرارتی. یک ناحیه ممکن است از چندین دستگاه مبدأ به درجات مختلف تأثیر بپذیرد. در این حالت میتوان از
.B thermal-conf.xml
برای تعیین میزان اثرگذاری نسبی جهت اعمال جبرانسازی استفاده نمود.
.SH "قالب فایل (FILE FORMAT)"
قالب پرونده پیکربندی با مشخصات XML مطابقت دارد. مجموعهای از برچسبها برای تعریف پلتفرم، حسگرها، ناحیهها، دستگاههای خنککننده و نقاط تحریک تعریف شدهاند.
.PP
حسگرهای مجازی از دو قالب XML پشتیبانی میکنند:
.IP \(bu 2
.B SensorLink
یک تبدیل خطی ساده را با استفاده از یک حسگر متصل تعریف میکند:
.RS 2
virtual_temp = linked_sensor * Multiplier + Offset
.RE
.IP \(bu 2
.B LinkSensor
یک سهم را برای یک حسگر مجازی پیشرفته تعریف میکند. میتوان چندین مدخل
.B LinkSensor
ارائه داد و سهمهای آنها با یکدیگر جمع میشوند. برای هر مدخل:
.RS 2
avg = Offset * current_sample + (1 \- Offset) * previous_average
contribution = Coeff * avg
virtual_temp = sum of all contributions
.RE
.PP
برای حسگرهای مجازی پیشرفته، هنگامی که
.B PowerSensor
برابر با 0 باشد، دمای حسگر متصل پیش از اعمال محاسبات میانگینگیری و ضرایب، از میلیدرجه سلسیوس به درجه سلسیوس تبدیل میشود. المانهای اختیاری
.B PollingTableEntry
میتوانند برای تغییر دوره تناوب پایش (polling period) حسگر مجازی بر پایه دمای مجازی فعلی استفاده شوند.
.sp 1
.EX
Example Platform Name
Example UUID
Example Product Name
QUIET|PERFORMANCE
example_sensor_1
/some_path
0
example_thermal_sysfs_sensor
1
example_virtual_sensor
1
example_sensor_1
0.5
10
example_virtual_sensor_advanced
1
example_sensor_1
0.7
0.2
0
rapl_pkg_power
0.3
0.5
1
45000
10
70000
2
Example Zone type
example_sensor_1
75000
max
SEQUENTIAL
1
example_cooling_device
100
12
6
2
8
example_cooling_device
0
10
0
50
5000
0.001
0.0001
0.0001
level
.EE
.SH "نمونههای پیکربندی (EXAMPLE CONFIGURATIONS)"
.B "نمونه ۱:"
این یک پیکربندی بسیار ساده برای تغییر حد غیرفعال (passive limit) پردازنده (CPU) است. به جای مقدار پیشفرض، دمای جدید ۸۶ درجه سلسیوس در این پیکربندی استفاده میشود. به محض رسیدن دما به ۸۶ درجه، فرآیند خنکسازی آغاز خواهد شد.
.sp 1
.EX
Override CPU default passive
*
QUIET
cpu
86000
passive
.EE
.PP
.B "نمونه ۲:"
در این پیکربندی، هنگامی که حسگری مانند "SEN2" به دمای ۶۰ درجه سلسیوس برسد، نور پسزمینه را کنترل میکنیم. در اینجا "LCD" یک دستگاه خنککننده استاندارد است که از رابط sysfs نور پسزمینه لینوکس استفاده میکند. از آنجا که "LCD_Zone" یک ناحیه حرارتی معتبر در sysfs حرارتی لینوکس روی پلتفرم آزمایشی است، نیازی به ارائه مسیر sysfs برای "LCD_Zone" نداریم. ساختار sysfs حرارتی لینوکس از پیش توسط برنامه
.B thermald
پارس و بارگذاری شده است.
.sp 1
.EX
Change Backlight
*
QUIET
LCD_Zone
SEN2
60000
passive
LCD
.EE
.PP
.B "نمونه ۳:"
در این نمونه، یک دستگاه Lenovo ThinkPad X220 و سرعت فن آن کنترل میشود. در اینجا دستگاه خنککننده "_Fan" را میتوان از طریق مسیر sysfs به نشانی
.I /sys/devices/platform/thinkpad_hwmon/pwm1
کنترل کرد. هنگامی که دمای x86_pkg_temp به ۴۵ درجه سلسیوس برسد، چنانچه مهار دما در ۴۵ درجه ممکن نباشد، فن با سرعتهای فزاینده روشن و به کار گرفته میشود.
.sp 1
.EX
Lenovo ThinkPad X220
*
QUIET
x86_pkg_temp
x86_pkg_temp
45000
passive
SEQUENTIAL
1
_Fan
100
12
_Fan
/sys/devices/platform/thinkpad_hwmon/pwm1
0
30
0
255
5
.EE
.PP
.B "نمونه ۴:"
نمونه زیر نحوه استفاده از PID را نشان میدهد. در اینجا هنگامی که دما از ۸۰ درجه سلسیوس فراتر رفت، جبرانسازی با استفاده از الگوریتم PID با در نظر گرفتن ۸۰ درجه به عنوان نقطه تنظیم (set point) کنترلر محاسبه میشود. مقدار جبرانسازی به میزان انحراف از نقطه تنظیم بستگی دارد. در اینجا دستگاه خنککننده داخلی و پیشفرض پردازنده با وضعیت کمینه 0 و وضعیت بیشینه 10 مورد استفاده قرار میگیرد.
.sp 1
.EX
Use PID param
*
QUIET
x86_pkg_temp
x86_pkg_temp
80000
passive
SEQUENTIAL
Processor
Processor
0.0002
0
0
.EE
.PP
.B "نمونه ۵:"
نمونه زیر نحوه مهار فن را در شرایطی نشان میدهد که sysfs انتظار یک پیشوند متنی (رشتهای) را دارد. برای نمونه به جای نوشتن صرف یک عدد در sysfs کنترل فن، این رابط به قرار گرفتن عبارت "level " پیش از مقدار شاخص سرعت نیاز دارد.
.sp 1
.EX
Use Fan control first then CPU throttle
*
QUIET
x86_pkg_temp
x86_pkg_temp
80000
passive
SEQUENTIAL
_fan_
_fan_
/proc/acpi/ibm/fan
level
0
5
10
.EE
.PP
.B "نمونه ۶:"
مشابه با نمونه ۵، اما ثبت سرعتهای مختلف در دماهای متفاوت.
.sp 1
.EX
Use Fan control first then CPU throttle
*
QUIET
x86_pkg_temp
x86_pkg_temp
80000
passive
_fan_
1
x86_pkg_temp
85000
passive
_fan_
2
_fan_
/proc/acpi/ibm/fan
level
0
5
10
.EE
.PP
.B "نمونه ۷:"
استفاده از محدودیتهای توان RAPL برای مهار حرارت.
.sp 1
.EX
TEST
Example_RAPL_Power
QUIET
0
15000
2000
20
30
1000
TestZone
SEN3
50000
Passive
B0D4
3
2147483647
SEN3
52000
Passive
B0D4
3
8500000
SEN3
60000
Passive
B0D4
3
4500000
SEN3
65000
Passive
B0D4
3
.EE