.\" 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