Scroll to navigation

THINKFAN.CONF(5) File Formats Manual THINKFAN.CONF(5)

الاسم

thinkfan.conf - تشكيلة بتنسيق YAML لـ thinkfan(1)

الوصف

YAML هي تدوين قوي جدًا، لكنه موجز للبيانات المنظمة. مواصفاتها الكاملة متاحة على https://yaml.org/spec/1.2/spec.html. يستخدم thinkfan مجموعة فرعية صغيرة فقط من بناء جملة YAML الكامل، لذا قد يكون من المفيد، لكن ليس ضروريًا بشكل صارم، للمستخدمين إلقاء نظرة على المواصفات.

أهم شيء يجب ملاحظته هو أن المسافة البادئة ذات صلة نحويًا. على وجه الخصوص، لا ينبغي خلط علامات التبويب مع المسافات. نوصي باستخدام مسافتين للمسافة البادئة، كما هو موضح أدناه.

تشكيلة thinkfan تحتوي على ثلاثة أقسام رئيسية:

مستشعرات:
من أين يجب قراءة درجات الحرارة. جميع برامج التشغيل بنمط hwmon مدعومة، بالإضافة إلى /proc/acpi/ibm/thermal، واعتمادًا على خيارات وقت الترجمة، libatasmart (لقراءة درجات الحرارة مباشرة من الأقراص الصلبة) وNVML (عبر برنامج تشغيل nvidia الملكي).

مراوح:
أي المراوح يجب استخدامها (حاليًا مسموح بواحدة فقط). دعم المراوح المتعددة قيد التطوير حاليًا ومخطط له في إصدار مستقبلي. يمكن استخدام كل من عناصر التحكم PWM بنمط hwmon و/proc/acpi/ibm/fan.

مستويات:
يربط درجات الحرارة بسرعات المروحة. “تخطيط بسيط” يحدد درجة حرارة واحدة كحد أدنى وأعلى (على التوالي) لسرعة مروحة معينة. في “تخطيط مفصل”، يتم تحديد الحدود العليا والدنيا لكل برنامج تشغيل/مستشعر تم تكوينه تحت مستشعرات:. يجب استخدام هذا الوضع عندما يراقب thinkfan أجهزة متعددة يمكنها تحمل كميات مختلفة من الحرارة.

تحت كل من هذه الأقسام، يجب أن تكون هناك قائمة من خرائط المفتاح-القيمة، كل منها يكوّن برنامج تشغيل مستشعر، برنامج تشغيل مروحة أو تخطيط سرعة مروحة.

برامج تشغيل المستشعرات والمراوح

لكي يعمل thinkfan، يحتاج أولاً إلى معرفة أي برامج تشغيل مستشعرات درجة حرارة وأي برامج تشغيل مراوح يجب استخدامها. يتم تحديد التخطيط بين قراءات درجة الحرارة وسرعات المروحة في قسم تشكيلة منفصل (انظر قسم سرعات المروحة أدناه).

بناء جملة المستشعر

يمكن للإدخالات تحت قسم مستشعرات: تحديد برامج تشغيل hwmon, thinkpad_acpi, NVML أو atasmart، حيث يجب تمكين الأخيرين في وقت الترجمة. يمكن أن يكون هناك أي عدد (أكبر من الصفر) ومزيج من إدخالات hwmon وtpacpi وnvml وatasmart. ومع ذلك، قد يكون هناك مثيل واحد على الأكثر من إدخال tpacpi.

sensors:
  - hwmon: hwmon-path
    name: hwmon-name
    indices: index-list
    correction: correction-list
    optional: bool-allow-errors
- tpacpi: /proc/acpi/ibm/thermal
    indices: index-list
    correction: correction-list
    optional: bool-allow-errors
  - nvml: nvml-bus-id
    correction: correction-list
    optional: bool-allow-errors
  - atasmart: disk-device-file
    correction: correction-list
    optional: bool-allow-errors
  - ...

صيغة المروحة

حاليًا، يدعم thinkfan مروحة واحدة فقط، لذا يمكن أن يكون هناك إدخال واحد فقط في القائمة. دعم المراوح المتعددة قيد التطوير حاليًا ومخطط له في إصدار مستقبلي. المروحة إما مروحة hwmon:

fans:
  - hwmon: hwmon-path
    name: hwmon-name
    indices: index-list

أو مروحة tpacpi:

fans:
- tpacpi: /proc/acpi/ibm/fan

القيم

توجد ثلاث طرق لتحديد مراوح أو مستشعرات hwmon:

1)
مسار كامل لملف “temp*_input” أو “pwm*”، مثل “/sys/class/hwmon/hwmon0/pwm1” أو “/sys/class/hwmon/hwmon0/temp1_input”. في هذه الحالة، الإدخالات “indices: قائمة-الفهارس ” و “name: اسم-hwmon ” غير ضرورية لأن المسار يحدد بشكل فريد مروحة أو مستشعرًا معينًا.

لاحظ أن هذه الطريقة قد تؤدي إلى مشاكل عندما يتغير ترتيب تحميل برامج التشغيل عبر عمليات الإقلاع، لأن اسم المجلد “hwmonX”، فإن X يتوافق فعليًا مع ترتيب التحميل. استخدم الطريقة 2) أو 3) لتجنب هذه المشكلة.

2)
دليل يحتوي على برنامج تشغيل hwmon محدد، على سبيل المثال “/sys/devices/platform/nct6775.2592”. لاحظ أن هذا المسار لا يحتوي على المجلد “hwmonX” المعتمد على ترتيب التحميل. طالما أنه يحتوي على برنامج تشغيل/واجهة hwmon واحدة فقط، يكفي تحديد الإدخال “indices: قائمة-الفهارس ” لإخبار thinkfan بالمستشعرات المحددة التي يجب استخدامها من تلك الواجهة. الإدخال “name: اسم-hwmon ” غير ضروري.

3)
دليل يحتوي على برامج تشغيل hwmon متعددة أو كلها، على سبيل المثال “/sys/class/hwmon”. هنا، كلا الإدخالين “name: اسم-hwmon ” و “indices: قائمة-الفهارس ” مطلوبان لإخبار thinkfan بالواجهة التي يجب تحديدها تحت ذلك المسار، وأي مستشعرات أو أي مروحة يجب استخدامها من تلك الواجهة.

اسم واجهة hwmon، يوجد عادةً في ملف يسمى “name”. يجب تحديد هذا إذا كان مسار-hwmon هو مسار أساسي يحتوي على عدة hwmons. طريقة تحديد المستشعرات هذه مفيدة بشكل خاص إذا كان المسار الكامل إلى hwmon معين يتغير باستمرار بين عمليات الإقلاع، على سبيل المثال بسبب تغير ترتيب تحميل وحدات برنامج التشغيل.

قائمة YAML [ X1, X2, ... ] تحدد أي المستشعرات، أو أي مروحة يجب استخدامها من واجهة معينة. كل من /proc/acpi/ibm/thermal والعديد من واجهات hwmon تحتوي على مستشعرات متعددة، وقد لا تكون جميعها ذات صلة بالتحكم في المروحة.

بالنسبة لإدخالات hwmon، هذا مطلوب إذا كان مسار-hwmon لا يشير مباشرةً إلى ملف “tempXi_input” واحد، بل إلى مجلد يحتوي على واحد أو أكثر منها. في هذه الحالة، تحدد قائمة-الفهارس Xi لملفات “tempXi_input” التي يجب استخدامها. قد تحتوي واجهة hwmon أيضًا على عناصر تحكم PWM متعددة للمراوح، لذا في هذه الحالة، يجب أن تحتوي قائمة-الفهارس على إدخال واحد بالضبط.

بالنسبة لمستشعرات tpacpi، هذا الإدخال اختياري. إذا تم حذفه، سيتم استخدام جميع درجات الحرارة الموجودة في /proc/acpi/ibm/thermal.

ملاحظة: متاح فقط إذا تُرجمت thinkfan مع تمكين USE_NVML.

معرف ناقل PCI لبطاقة رسوميات nVidia تُدار بواسطة برنامج تشغيل nVidia الملكي. يمكن الحصول عليه مثلاً عبر “lspci | grep -i vga”. عادةً، ستستخدم بطاقات nVidia برنامج التشغيل مفتوح المصدر nouveau، الذي يجب أن يدعم مستشعرات hwmon بدلاً من ذلك.

ملاحظة: متاح فقط إذا تُرجمت thinkfan مع تمكين USE_ATASMART.

المسار الكامل لملف جهاز لقرص صلب يدعم S.M.A.R.T. انظر أيضًا الخيار -d في thinkfan(1) الذي يمنع thinkfan من إيقاظ الأقراص النائمة (الميكانيكية) لقراءة درجة حرارتها.

قائمة YAML تحدد إزاحات درجة الحرارة لكل مستشعر قيد الاستخدام بواسطة برنامج التشغيل المعطى. استخدم هذا إذا أردت استخدام صيغة المستوى “البسيطة”، ولكنك تحتاج للتعويض عن الأجهزة ذات تحمل حرارة أقل. لاحظ مع ذلك أن صيغة المستوى المفصلة عادةً ما تكون الخيار الأفضل (أي الأكثر دقة).

قيمة حقيقية (yes/no/true/false) تحدد ما إذا كان thinkfan يجب أن يقبل الأخطاء عند القراءة من هذا المستشعر. عادةً، سيخرج thinkfan برسالة خطأ إذا فشلت قراءة درجة الحرارة من أي مستشعر مُهيأ. وضع علامة على مستشعر كاختياري قد يكون مفيدًا للأجهزة القابلة للإزالة أو الأجهزة التي قد تُطفأ بالكامل لتوفير الطاقة.

سرعات المروحة

يحدد قسم levels: قائمة بسرعات المروحة مع حدود درجة حرارة دنيا وعليا مرتبطة. إذا انخفضت درجة الحرارة (درجات الحرارة) عن الحد الأدنى، يتحول thinkfan إلى المستوى السابق، وإذا تم الوصول إلى الحد الأعلى، يتحول thinkfan إلى المستوى التالي.

الصيغة البسيطة

في الصيغة المبسطة، يتم تحديد درجة حرارة واحدة فقط كحد أعلى/أدنى لسرعة مروحة معينة. في هذه الحالة، تتم مقارنة الحد الأدنى و الحد الأعلى فقط بأعلى درجة حرارة موجودة بين جميع المستشعرات المُهيأة. يتم تجاهل جميع درجات الحرارة الأخرى. هذا الوضع مناسب للأنظمة الصغيرة (مثل أجهزة الكمبيوتر المحمولة) حيث يوجد جهاز واحد فقط (مثل وحدة المعالجة المركزية) تحتاج درجة حرارته إلى التحكم، أو حيث يكون سلوك المروحة المطلوب متشابهًا بما يكفي لجميع الأجهزة المولدة للحرارة.

levels:
  - [ fan-speed, lower-bound, upper-bound ]
  - ...

الصيغة المفصلة

هذا الوضع مناسب للأنظمة الأكثر تعقيدًا، مع أجهزة ذات تصنيفات حرارة مختلفة. على سبيل المثال، يمكن للعديد من وحدات المعالجة المركزية ووحدات معالجة الرسوميات الحديثة التعامل مع درجات حرارة أعلى من 80°م بشكل يومي، بينما سيموت القرص الصلب بسرعة إذا وصل إلى درجات الحرارة هذه. في الوضع المفصل، يتم تحديد حدود درجة الحرارة العليا والدنيا لكل مستشعر على حدة:

levels:
  - speed: fan-speed
    lower_limit: [ l1, l2, ... ]
    upper_limit: [ u1, u2, ... ]
  - ...

القيم

تختلف قيم السرعة الممكنة اعتمادًا على برنامج تشغيل المروحة المستخدم.

بالنسبة لمروحة hwmon، fan-speed هي قيمة رقمية تتراوح من 0 إلى 255، مقابلة لقيم PWM التي تقبلها برامج تشغيل النواة المختلفة.

بالنسبة لمروحة tpacpi على أجهزة Lenovo/IBM ThinkPads وبعض أجهزة Lenovo الأخرى (انظر SENSORS & FAN DRIVERS أعلاه)، يمكن استخدام القيم الرقمية والسلاسل النصية. تتراوح القيم الرقمية من 0 إلى 7. تأخذ قيم السلاسل النصية الشكل "level lvl-id"، حيث قد تكون lvl-id قيمة من 0 إلى 7، أو auto، أو full-speed، أو disengaged. تتوافق القيم الرقمية 0 إلى 7 مع سرعات المروحة العادية المستخدمة بواسطة البرنامج الثابت، على الرغم من أن العديد من البرامج الثابتة لا تستخدم حتى المستوى 7. تعيد القيمة "level auto" التحكم إلى البرنامج الثابت، وهو ما قد يكون مفيدًا إذا كان سلوك المروحة يحتاج فقط إلى التغيير لنطاقات حرارة محددة معينة (عادةً عند الطرفين العلوي والسفلي للنطاق). تأخذ القيمتان "level full-speed" و"level disengaged" التحكم في سرعة المروحة بعيدًا عن البرنامج الثابت، مما يتسبب في زيادة سرعة المروحة ببطء إلى الحد الأقصى المطلق الذي يمكن تحقيقه ضمن الحدود الكهربائية. لاحظ أن هذا سيشغل المروحة خارج المواصفات ويسبب تآكلًا متزايدًا، على الرغم من أنه قد يكون مفيدًا لمكافحة الخنق الحراري.

تشير الحدود الدنيا والعليا إلى المستشعرات بنفس الترتيب الذي وُجدت به عند معالجة القسم sensors: (انظر SENSOR & FAN DRIVERS أعلاه). بالنسبة للإدخال الأول للمستوى، يمكن حذف lower_limit، وبالنسبة للإدخال الأخير، يمكن حذف upper_limit. بالنسبة لجميع المستويات بينهما، يجب أن تتداخل الحدود الدنيا مع الحدود العليا للمستوى السابق، لضمان تغطية نطاق الحرارة بالكامل ووجود بعض التباطؤ بين مستويات السرعة.

انظر أيضًا

صفحة دليل thinkfan:
thinkfan(1)
أمثلة لملفات الضبط المشحونة مع توزيعة المصدر، وهي متاحة أيضًا في:
https://github.com/vmatare/thinkfan/tree/master/examples
توثيق واجهة مستخدم hwmon في لينكس:
https://www.kernel.org/doc/html/latest/hwmon/sysfs-interface.html
توثيق واجهة thinkpad_acpi:
https://www.kernel.org/doc/html/latest/admin-guide/laptops/thinkpad-acpi.html

العلل

الإبلاغ عن الأخطاء عبر نظام تتبع المشكلات في GitHub:
https://github.com/vmatare/thinkfan/issues

ترجمة

تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.

ديسمبر 2021 thinkfan 1.3.1