Fan Control
os-fanctl · عتاد الجهاز
يقرأ كل درجات الحرارة والمراوح في الجهاز ويسجّلها، ويتحكّم في المراوح الموصولة بشريحة Super I/O لا يستطيع FreeBSD التحكّم فيها، ويعيدها إلى العتاد كلما وقع أي خلل.
في القائمة
- مع تثبيت os-xgs-npu: XGS: Fan Control
- من دون os-xgs-npu: System: Fan Control

لا يملك FreeBSD أي وسيلة لضبط نسبة تشغيل مروحة على شريحة Super I/O: فكل متغيرات sysctl التي يسجّلها برنامج التشغيل ncthwm(4) للقراءة فقط. لذلك تأتي الإضافة ببرنامج مساعد صغير بلغة C، يُبنى على الجدار الناري بمترجمه نفسه، يكتب في سجلات الشريحة ولا يفعل شيئًا غير ذلك.
تعثر الإضافة على حسّاسات الحرارة بسؤال النواة عن عُقد sysctl المعرّفة بأنها درجات حرارة، فتقرأ أيضًا عتادًا لم تُختبر عليه قط. وعلى Sophos XGS 3300 تقرأ حسّاسات اللوحة نفسها - المعالج، وشريحة المعالج المساعد، وهواء المدخل - والمروحتين كلتيهما، عبر أداة يثبّتها os-xgs-npu. وهناك تُراقَب المراوح ولا تُدار: فاللوحة لا تعطي المضيف أي سجل لضبطها.
لا يُتحكَّم في شيء بعد التثبيت. ولا تُدار قناة إلا إذا قيس حدّها الأدنى - أقل نسبة تشغيل تظل عندها مروحتها دائرة - على ذلك الجهاز نفسه أو ثُبّتت نسبة تشغيلها على 100%، وأفادت مروحتها بأنها تدور. وكل كتابة تُقرأ بعدها للتحقق؛ فإن اختلفت القراءة أُعيدت المراوح إلى العتاد وتوقفت الإضافة.
اختُبر التحكّم في المراوح على جهاز واحد، هو Sophos XG 330 rev 2 سابق بشريحة Nuvoton NCT6779D، على OPNsense 26.7.4_1.
الميزات
-
كل حسّاس
تُكتشف درجات الحرارة من تعريفات النواة نفسها، لا من قائمة بأسماء برامج التشغيل. وتعرض الصفحة كلًّا منها بأدنى قيمة ومتوسطها وأعلاها خلال المدة المختارة، وكل مروحة بسرعتها.
-
سجلّ كل دقيقة
أدنى قيمة وأعلاها والمتوسط الموزون بالزمن خلال الساعة واليوم والأسبوع والشهر الأخيرة، والمدة المقضيّة فوق كل درجة من سلّم ثابت. تكلّف العيّنة 1.4 ms ويبقى السجلّ دون 503 KiB.
-
ما تكسبه زيادة المروحة
من أزواج قياسات قبل تغييرات فعلية في نسبة التشغيل وبعدها، يقدّر كم درجةً تكسبها زيادة المروحة، ويقول ذلك صراحةً حين يكون الأثر أصغر من تقريب الحسّاسات.
-
ستة شروط قبل أي كتابة
الشريحة الصحيحة، ومدخل في الجدول يسمح بالتحكّم، وحفظ الحالة الأصلية للمراوح، وحدّ أدنى مقيس أو نسبة تشغيل ثابتة قدرها 100%، ومروحة تدور، ودرجات حرارة مقروءة - ويُعاد فحصها جميعًا قبل كل قرار.
-
العودة إلى العتاد عند كل خروج
الإيقاف النظامي، والخطأ، والإشارة، والمراقب (watchdog)، وتوقف مروحة، وفشل قراءة التحقق، وبلوغ حرارة الطوارئ، وإزالة الحزمة - كلها تنتهي بالاستعادة.
-
أداة للوحة المعلومات
المراوح وكل درجات الحرارة على لوحة المعلومات.
التثبيت والتحديث
على جهاز Sophos XGS تأتي الإضافة مع صورة xgs-image-builder وتبدأ في وضع المراقبة فقط: لا تكتب في أي شريحة مراوح حتى يُختار منحنى. وتُثبَّت إصداراتها الجديدة يدويًا من تبويب Plugins في XGS: Updates؛ ولا يُحدَّث شيء من تلقاء نفسه. وفي أي مكان آخر، شغّل install/install.sh من نسخة من المستودع؛ وتشغيله مرة أخرى يحتفظ بالإعدادات وبقياسات الحدّ الأدنى، ويثبّت self-update.py الخاص بها أي إصدار أحدث. الصفحة هي System: Fan Control، أو XGS: Fan Control حين يكون os-xgs-npu مثبّتًا.
الحدود، وما لم يُختبر بعد
- لا يُسمح بإدارة المراوح إلا على Sophos XG 330 rev 2، حيث جُرّبت على الجهاز نفسه. أما XGS 136 فللقراءة فقط حتى الآن، والأجهزة الأخرى تُقرأ ويُبلَّغ عنها إلى أن يُقاس حدّها الأدنى (docs/contributing-fans.md).
- على XGS 3300 لا يمكن إدارة المراوح: فاللوحة تحتفظ بمنحنى مراوحها الخاص، دون أي سجل يستطيع المضيف الكتابة فيه.
المستودع
أول إصدار: 2026-10-16