thermal-conf.xml(5) File Formats Manual thermal-conf.xml(5)
نام (NAME)
thermal-conf.xml - پرونده پیکربندی دیمن مدیریت حرارت
خلاصه دستور (SYNOPSIS)
$(TDCONFDIR)/etc/thermald/thermal-conf.xml
توضیحات (DESCRIPTION)
پرونده thermal-conf.xml یک پرونده پیکربندی برای دیمن مدیریت حرارت
(thermal daemon) است. این پرونده برای پیکربندی حسگرهای حرارتی، ناحیهها
(zones) و دستگاههای خنککننده به کار میرود. محل قرارگیری این پرونده به
گزینههای پیکربندی انتخابشده در زمان کامپایل بستگی دارد.
اصطلاحات بهکاررفته در این پرونده با «مشخصات رابط پیشرفته پیکربندی و
توان» (ACPI) مطابقت دارد. مدل حرارتی ACPI بر پایه نواحی مفهومی در
پلتفرم به نام «ناحیههای حرارتی» (thermal zones) بنا شده است که از نظر
فیزیکی دربرگیرنده دستگاهها، حسگرهای حرارتی و کنترلهای خنککننده هستند.
برای نمونه، یک ناحیه حرارتی میتواند پردازنده (CPU) یا بدنه لپتاپ باشد.
یک ناحیه میتواند شامل چندین حسگر برای پایش دما باشد. یک دستگاه
خنککننده، رابطی برای کاهش دمای دستگاه مبدأ فراهم میکند؛ دستگاهی که باعث
افزایش دما میشود. نمونهای از یک دستگاه خنککننده، فن (FAN) یا یک درایور
لینوکس است که میتواند توان پردازشی دستگاه مبدأ را محدود (throttle) کند.
پیکربندی هر ناحیه حرارتی شامل یک یا چند «نقطه تحریک» (trip point) است.
نقطه تحریک، دمایی است که در آن باید یک دستگاه خنککننده فعال شود.
یک دستگاه خنککننده میتواند فعال (active) یا غیرفعال (passive) باشد.
نمونهای از یک دستگاه فعال، فن است که بدون کاهش کارایی سیستم عمل خنکسازی
را انجام میدهد، اما در مقابل توان مصرفی و صدای بیشتری ایجاد میکند. یک
دستگاه غیرفعال از محدودسازی کارایی برای مهار دما استفاده میکند. علاوه
بر دستگاههای خنککننده موجود در sysfs حرارتی، دستگاههای خنککننده زیر نیز
درون thermald تعبیه شدهاند و میتوان از آنها به عنوان نوع معتبر دستگاه
خنککننده استفاده کرد:
• rapl_controller
• intel_pstate
• cpufreq
• LCD
ساختار sysfs حرارتی در لینوکس (/sys/class/thermal) روشی برای نمایش
پیکربندی ACPI به ازای هر پلتفرم فراهم میآورد. فرماندار حرارتی هسته
(kernel thermal governor) از این دادهها برای مهار دمای پلتفرم استفاده
میکند. با این حال محدودیتهایی وجود دارد که thermald تلاش میکند آنها را
برطرف سازد؛ برای نمونه:
• چنانچه دادههای ACPI بهینهسازی نشده باشند یا دارای اشکال باشند. در این
حالت میتوان از thermal-conf.xml برای اصلاح رفتار بدون نیاز به تغییر
در BIOS استفاده کرد.
• ممکن است ناحیههای حرارتی توسط sysfs حرارتی ارائه شده باشند اما هیچ
اقدام خنککنندهای به آنها متصل نشده باشد. در این حالت میتوان از
thermal-conf.xml برای پیوند دادن دستگاههای خنککننده به آن ناحیهها
استفاده نمود.
• شاید بهترین روش خنکسازی در sysfs حرارتی وجود نداشته باشد. در این حالت
میتوان از thermal-conf.xml برای پیوند یک ناحیه به یک دستگاه خنککننده
خارجی استفاده کرد.
• تعیین روابط حرارتی. یک ناحیه ممکن است از چندین دستگاه مبدأ به درجات
مختلف تأثیر بپذیرد. در این حالت میتوان از thermal-conf.xml برای تعیین
میزان اثرگذاری نسبی جهت اعمال جبرانسازی استفاده نمود.
قالب فایل (FILE FORMAT)
قالب پرونده پیکربندی با مشخصات XML مطابقت دارد. مجموعهای از برچسبها
برای تعریف پلتفرم، حسگرها، ناحیهها، دستگاههای خنککننده و نقاط تحریک
تعریف شدهاند.
حسگرهای مجازی از دو قالب XML پشتیبانی میکنند:
• SensorLink یک تبدیل خطی ساده را با استفاده از یک حسگر متصل تعریف
میکند:
virtual_temp = linked_sensor * Multiplier + Offset
• LinkSensor یک سهم را برای یک حسگر مجازی پیشرفته تعریف میکند. میتوان
چندین مدخل LinkSensor ارائه داد و سهمهای آنها با یکدیگر جمع میشوند.
برای هر مدخل:
avg = Offset * current_sample + (1 - Offset) * previous_average
contribution = Coeff * avg
virtual_temp = sum of all contributions
برای حسگرهای مجازی پیشرفته، هنگامی که PowerSensor برابر با 0 باشد، دمای
حسگر متصل پیش از اعمال محاسبات میانگینگیری و ضرایب، از میلیدرجه سلسیوس
به درجه سلسیوس تبدیل میشود. المانهای اختیاری PollingTableEntry میتوانند
برای تغییر دوره تناوب پایش (polling period) حسگر مجازی بر پایه دمای
مجازی فعلی استفاده شوند.
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
نمونههای پیکربندی (EXAMPLE CONFIGURATIONS)
نمونه ۱: این یک پیکربندی بسیار ساده برای تغییر حد غیرفعال (passive
limit) پردازنده (CPU) است. به جای مقدار پیشفرض، دمای جدید ۸۶ درجه
سلسیوس در این پیکربندی استفاده میشود. به محض رسیدن دما به ۸۶ درجه،
فرآیند خنکسازی آغاز خواهد شد.
Override CPU default passive
*
QUIET
cpu
86000
passive
نمونه ۲: در این پیکربندی، هنگامی که حسگری مانند "SEN2" به دمای ۶۰ درجه
سلسیوس برسد، نور پسزمینه را کنترل میکنیم. در اینجا "LCD" یک دستگاه
خنککننده استاندارد است که از رابط sysfs نور پسزمینه لینوکس استفاده
میکند. از آنجا که "LCD_Zone" یک ناحیه حرارتی معتبر در sysfs حرارتی
لینوکس روی پلتفرم آزمایشی است، نیازی به ارائه مسیر sysfs برای
"LCD_Zone" نداریم. ساختار sysfs حرارتی لینوکس از پیش توسط برنامه
thermald پارس و بارگذاری شده است.
Change Backlight
*
QUIET
LCD_Zone
SEN2
60000
passive
LCD
نمونه ۳: در این نمونه، یک دستگاه Lenovo ThinkPad X220 و سرعت فن آن
کنترل میشود. در اینجا دستگاه خنککننده "_Fan" را میتوان از طریق مسیر
sysfs به نشانی /sys/devices/platform/thinkpad_hwmon/pwm1 کنترل کرد.
هنگامی که دمای x86_pkg_temp به ۴۵ درجه سلسیوس برسد، چنانچه مهار دما در
۴۵ درجه ممکن نباشد، فن با سرعتهای فزاینده روشن و به کار گرفته میشود.
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
نمونه ۴: نمونه زیر نحوه استفاده از PID را نشان میدهد. در اینجا هنگامی
که دما از ۸۰ درجه سلسیوس فراتر رفت، جبرانسازی با استفاده از الگوریتم
PID با در نظر گرفتن ۸۰ درجه به عنوان نقطه تنظیم (set point) کنترلر
محاسبه میشود. مقدار جبرانسازی به میزان انحراف از نقطه تنظیم بستگی دارد.
در اینجا دستگاه خنککننده داخلی و پیشفرض پردازنده با وضعیت کمینه 0 و
وضعیت بیشینه 10 مورد استفاده قرار میگیرد.
Use PID param
*
QUIET
x86_pkg_temp
x86_pkg_temp
80000
passive
SEQUENTIAL
Processor
Processor
0.0002
0
0
نمونه ۵: نمونه زیر نحوه مهار فن را در شرایطی نشان میدهد که sysfs انتظار
یک پیشوند متنی (رشتهای) را دارد. برای نمونه به جای نوشتن صرف یک عدد در
sysfs کنترل فن، این رابط به قرار گرفتن عبارت "level " پیش از مقدار شاخص
سرعت نیاز دارد.
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
نمونه ۶: مشابه با نمونه ۵، اما ثبت سرعتهای مختلف در دماهای متفاوت.
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
نمونه ۷: استفاده از محدودیتهای توان RAPL برای مهار حرارت.
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
December 18, 2018 thermal-conf.xml(5)