| sensors.conf(5) | Linux User's Manual | sensors.conf(5) |
نام (NAME)
sensors.conf - پرونده پیکربندی libsensors
توضیحات (DESCRIPTION)
پرونده sensors.conf شرح میدهد که libsensors(3) و تمام برنامههای استفادهکننده از آن، چگونه باید خوانشهای خام ماژولهای هسته را به مقادیر واقعی ترجمه کنند.
مفاهیم (SEMANTICS)
در یک سیستم ممکن است یک یا چند تراشه نظارت بر سختافزار وجود داشته باشد. هر تراشه میتواند ویژگیهای متعددی داشته باشد؛ برای مثال، تراشه LM78 بر ۷ ورودی ولتاژ، ۳ فن و یک ورودی دما نظارت میکند. نام ویژگیها استانداردسازی شده است. نامهای متداول عبارتند از: in0، in1، in2... برای ورودیهای ولتاژ، fan1، fan2، fan3... برای فنها، و temp1، temp2، temp3... برای ورودیهای دما.
هر ویژگی میتواند به نوبه خود یک یا چند زیرویژگی داشته باشد که هر کدام نشاندهنده یک مشخصه از آن ویژگی است: مقدار ورودی، حد پایین، حد بالا، زنگ هشدار و غیره. نامهای زیرویژگیها نیز استاندارد شدهاند. برای نمونه، نخستین ورودی ولتاژ (in0) معمولاً دارای زیرویژگیهای in0_input (مقدار اندازهگیریشده)، in0_min (حد پایین)، in0_max (حد بالا) و in0_alarm (پرچم هشدار) است. اینکه دقیقاً چه زیرویژگیهایی وجود دارند، به نوع دقیق تراشه بستگی دارد.
پرونده پیکربندی sensors.conf به شما امکان میدهد هر تراشه، ویژگی و زیرویژگی را به گونهای که برای سیستم شما منطقی باشد پیکربندی کنید.
ادامه این بخش معنای هر یک از عبارات پیکربندی را شرح میدهد.
عبارت CHIP (CHIP STATEMENT)
یک عبارت chip مشخص میکند که تمام عبارات بعدی compute، label، ignore و set مربوط به کدام تراشهها هستند. انتخاب تراشه تا عبارت chip بعدی معتبر باقی میماند. مثال:
اگر تراشهای دستکم با یکی از توصیفهای تراشه مطابقت داشته باشد، خطوط پیکربندی پس از آن برای آن بررسی میشوند؛ در غیر این صورت نادیده گرفته خواهند شد.
توصیف یک تراشه از چندین عنصر تشکیل شده که با خط تیره از هم جدا میشوند. عنصر نخست نوع تراشه، عنصر دوم نام گذرگاه، و عنصر سوم نشانی هگزادسیمال تراشه است. چنین توصیفهایی توسط sensors(1) به عنوان سطر نخست برای هر تراشه چاپ میشوند.
نام گذرگاه یکی از مقادیر isa، pci، virtual، spi-*، i2c-N یا mdio است که در آن N شماره گذرگاه متصلشده با عبارت bus میباشد. این فهرست لزوماً جامع نیست، زیرا ممکن است در آینده پشتیبانی از انواع دیگر گذرگاه نیز اضافه شود.
میتوانید عملگر عام * را جایگزین هر یک از عناصر کنید. با این حال توجه داشته باشید که تعیین نشانی بدون مشخص کردن نوع گذرگاه بیمعنی است، بنابراین در صورت عدم تعیین نوع گذرگاه، بخش نشانی به طور کامل حذف میشود.
نحوه بیان تطابقها به شرح زیر است:
| تراشه LM78 در نشانی 0x2d روی گذرگاه 1 I2C | lm78-i2c-1-2d |
| تراشه LM78 در نشانی 0x2d روی هر گذرگاه I2C | lm78-i2c-*-2d |
| تراشه LM78 در نشانی 0x290 روی گذرگاه ISA | lm78-isa-0290 |
| هر تراشه LM78 روی گذرگاه 1 I2C | lm78-i2c-1-* |
| هر تراشه LM78 روی هر گذرگاه I2C | lm78-i2c-*-* |
| هر تراشه LM78 روی گذرگاه ISA | lm78-isa-* |
| هر تراشه LM78 | lm78-* |
| هر تراشهای در نشانی 0x2d روی گذرگاه 1 I2C | *-i2c-1-2d |
| هر تراشهای در نشانی 0x290 روی گذرگاه ISA | *-isa-0290 |
اگر چند عبارت chip با یک تراشه خاص تطابق داشته باشند، همه آنها در نظر گرفته میشوند.
عبارت LABEL (LABEL STATEMENT)
یک عبارت label نحوه نامگذاری یک ویژگی را مشخص میکند. ویژگیهایی که فاقد عبارت label باشند، صرفاً با همان نام ویژگی خود نامیده میشوند. برنامههای کاربردی میتوانند از این برچسب برای نمایش خوانشها استفاده کنند. مثال:
آرگومان نخست نام ویژگی و آرگومان دوم شرح ویژگی است.
توجه داشته باشید که باید از نام خام ویژگی استفاده کنید، که لزوماً همان نام نمایشدادهشده توسط sensors به صورت پیشفرض نیست. برای مشاهده نامهای خام ویژگیها از sensors -u استفاده کنید. همین موضوع در مورد تمام انواع عبارات زیر نیز صدق میکند.
عبارت IGNORE (IGNORE STATEMENT)
یک عبارت ignore رهنمودی است مبنی بر اینکه یک ویژگی خاص باید نادیده گرفته شود - احتمالاً به این دلیل که مقادیر نادرست برمیگرداند (برای مثال، به دلیل وصل نبودن حسگر فن یا دما). مثال:
تنها آرگومان آن، نام ویژگی است. لطفاً توجه داشته باشید که این کار هیچ چیزی را در تراشه حسگر واقعی غیرفعال نمیکند؛ بلکه صرفاً ویژگی مورد نظر را از دید کاربران libsensors پنهان میسازد.
عبارت COMPUTE (COMPUTE STATEMENT)
یک عبارت compute نحوه تبدیل مقدار خام یک ویژگی به یک مقدار واقعی، و همچنین نحوه تبدیل معکوس یک مقدار واقعی به یک مقدار خام را شرح میدهد. این قابلیت بیش از همه برای حسگرهای ولتاژ مفید است؛ زیرا به طور کلی تراشههای حسگر دامنه محدودی دارند و ولتاژهای خارج از این دامنه باید پیش از نظارت توسط مقاومتها تقسیم شوند. مثال:
مثال بالا بیانگر این واقعیت است که ورودی ولتاژ با استفاده از دو مقاومت با مقادیر ۶٫۸ اهم و ۱۰ اهم تقسیم شده است. برای جزئیات به بخش جزئیات محاسبات ولتاژ (VOLTAGE COMPUTATION DETAILS) در ادامه مراجعه کنید.
آرگومان نخست نام ویژگی است. آرگومان دوم عبارتی است که نحوه تبدیل مقدار خام به مقدار واقعی را مشخص میکند؛ علامت '@' در اینجا نشاندهنده مقدار خام است. این همان فرمولی است که هنگام خواندن مقادیر از تراشه اعمال میشود. آرگومان سوم عبارتی است که نحوه تبدیل مقدار واقعی به مقدار خام را تعیین میکند؛ در اینجا نیز '@' نشاندهنده مقدار واقعی است. این فرمول هنگام نوشتن مقادیر روی تراشه اعمال خواهد شد. این دو فرمول آشکارا به هم مرتبط هستند و با کاما از یکدیگر جدا میشوند.
یک عبارت compute بر تمام زیرویژگیهای مرتبط ویژگی هدف اعمال میشود. برای نمونه، مثال بالا بر زیرویژگیهای in3_min و in3_max (که مقادیر ولتاژ هستند) اعمال میشود، اما بر in3_alarm (که یک پرچم بولی است) تأثیری ندارد.
عملگرهای زیر در عبارات compute پشتیبانی میشوند:
عبارت ^x به معنای exp(x) و عبارت `x به معنای ln(x) است.
میتوانید از نام زیرویژگیها در این عبارات استفاده کنید؛ در این صورت خوانشهای فعلی جایگزین خواهند شد. با این حال باید مراقب باشید تا از ارجاعات دورانی (چرخشی) اجتناب کنید.
اگر در هر لحظه تبدیلی بین یک مقدار خام و مقدار واقعی مورد نیاز باشد، اما هیچ عبارت compute مرتبطی وجود نداشته باشد، تبدیل یکبهیک (مستقیم) به کار میرود.
عبارت SET (SET STATEMENT)
یک عبارت set برای نوشتن مقدار یک زیرویژگی در تراشه به کار میرود. البته همه مقادیر زیرویژگیها را نمیتوان به این روش تنظیم کرد؛ بهویژه مقادیر ورودی و پرچمهای هشدار قابل تنظیم نیستند. زیرویژگیهای معتبر معمولاً حدود حداقل و حداکثر هستند. مثال:
مثال بالا در عمل تراشه را طوری پیکربندی میکند که انحراف ۵ درصدی را برای ورودی برق +5V مجاز بداند.
آرگومان نخست نام ویژگی است. آرگومان دوم عبارتی است که مقدار نوشتهشده را تعیین میکند. اگر یک عبارت compute مرتبط وجود داشته باشد، این مقدار به آرگومان سوم آن داده میشود تا به مقدار خام تبدیل گردد.
میتوانید از نام زیرویژگیها در این عبارات استفاده کنید؛ خوانشهای فعلی جایگزین میشوند. با این حال باید مراقب باشید تا از ارجاعات دورانی دوری کنید.
لطفاً توجه داشته باشید که عبارات set تنها زمانی توسط sensors(1) اجرا میشوند که از گزینه -s استفاده کنید. برنامههای گرافیکی متداول حسگرها معمولاً اصلاً به این عبارات اعتنایی نمیکنند.
عبارت BUS (BUS STATEMENT)
یک عبارت bus توصیف یک آداپتور I2C یا SMBus را به یک شماره گذرگاه پیوند میدهد. این امر امکان ارجاع به یک آداپتور در پرونده پیکربندی را مستقل از تطابق واقعی شمارههای گذرگاه و آداپتورهای فیزیکی (که ممکن است در هر لحظه تغییر کند) فراهم میسازد. مثال:
آرگومان نخست شماره گذرگاه است که متن ثابت i2c- به همراه یک عدد است. از آنجا که در این آرگومان خط تیره وجود دارد، همیشه باید داخل کوتیشن قرار گیرد.
آرگومان دوم نام آداپتور است که باید دقیقاً با نام آداپتور به گونهای که در /sys/class/i2c-adapter/i2c-*/name ظاهر میشود مطابقت داشته باشد. این آرگومان نیز باید همیشه داخل کوتیشن قرار گیرد زیرا مسلماً شامل فاصله یا خط تیره خواهد بود.
عبارات bus میتوانند به صورت پراکنده در سرتاسر پرونده پیکربندی قرار گیرند؛ نیازی نیست خط bus قبل از مکانی که پیوند آن مورد ارجاع قرار میگیرد بیاید. با این حال، برای رعایت ساختار مناسب، پیشنهاد میکنیم تمام عبارات bus را در کنار هم در بالای پرونده پیکربندی خود قرار دهید.
اجرای دستور sensors --bus-list این خطوط را برای شما تولید خواهد کرد.
در حالتی که از چندین پرونده پیکربندی استفاده میشود، دامنه هر عبارت bus همان پرونده پیکربندی است که در آن تعریف شده است. این امر امکان استفاده از عبارات bus در تمام پروندههای پیکربندی را بدون تداخل غیرمنتظره با یکدیگر فراهم میسازد.
ترتیب عبارات (STATEMENT ORDER)
عبارات میتوانند به هر ترتیبی قرار گیرند، با این حال توصیه میشود عبارات 'set fanX_div' پیش از عبارات 'set fanX_min' قرار گیرند، تا در صورتی که درایور مقدار fanX_min را هنگام تغییر مقدار fanX_div حفظ نکند مشکلی ایجاد نشود. حتی اگر درایور آن را حفظ کند، باز هم بهتر است عبارات به همین ترتیب قرار گیرند تا از کاهش دقت جلوگیری شود.
جزئیات محاسبات ولتاژ (VOLTAGE COMPUTATION DETAILS)
بیشتر حسگرهای ولتاژ در تراشههای نظارتی دارای دامنهای از ۰ تا ۴٫۰۸ ولت هستند. این مقدار عموماً برای ولتاژهای +3.3V و ولتاژهای تغذیه پردازنده کافی است، بنابراین خوانش تراشه حسگر همان ولتاژ واقعی است.
سایر ولتاژهای تغذیه باید با یک شبکه مقاومت خارجی مقیاسبندی شوند. درایور مقدار موجود در پایه تراشه (۰ - ۴٫۰۸ ولت) را گزارش میکند و برنامه کاربردی در فضای کاربر باید این مقدار خام را به ولتاژ واقعی تبدیل نماید. عبارات compute این امکان را فراهم میکنند.
متأسفانه مقادیر مقاومتها در میان انواع مختلف مادربردها متفاوت است. بنابراین باید مقادیر صحیح مقاومتها را برای مادربرد خود بیابید.
برای ولتاژهای مثبت (معمولاً +5V و +12V)، دو مقاومت با فرمول زیر استفاده میشوند:
که در آن:
Vs ولتاژ واقعی تحت نظارت است
Vin ولتاژ در پایه تراشه است
این به فرمول محاسباتی زیر میانجامد:
فرمول واقعی برای +5V و +12V به شکل زیر خواهد بود:
compute in4 @*((28/10)+1), @/((28/10)+1)
برای ولتاژهای منفی (معمولاً -5V و -12V) نیز از دو مقاومت استفاده میشود، اما بردهای مختلف از راهبردهای متفاوتی برای رساندن مقدار ولتاژ به محدوده ۰ - ۴٫۰۸ ولت استفاده میکنند. برخی از تقویتکننده معکوسکننده و برخی دیگر از ولتاژ مرجع مثبت بهره میبرند. این امر به فرمولهای محاسباتی متفاوتی منجر میشود. توجه داشته باشید که بیشتر کاربران نیازی به نگرانی در این مورد ندارند، زیرا مادربردهای مدرن استفاده اندکی از -12V دارند و اصلاً از -5V استفاده نمیکنند، بنابراین زحمت نظارت بر این ورودیهای ولتاژ را به خود نمیدهند.
نمونههای واقعی برای حالت تقویتکننده معکوسکننده:
compute in6 -@*(100/60), -@/(100/60)
نمونههای واقعی برای حالت مرجع ولتاژ مثبت:
compute in6 @*(1+120/56) - 4.096*120/56, (@ + 4.096*120/56)/(1+120/56)
بسیاری از تراشههای نظارتی جدید دارای دامنه ۰ - ۲٫۰۴ ولت هستند، بنابراین مقاومتهای مقیاسبندی حتی بیشتر مورد نیاز بوده و مقادیر مقاومتها متفاوت است.
همچنین تراشههای اندکی وجود دارند که دارای مقاومتهای مقیاسبندی داخلی هستند، به این معنی که مقدار آنها مشخص است و از یک مادربرد به مادربرد دیگر تغییر نمیکند. برای این تراشهها معمولاً درایور مقیاسبندی را مدیریت میکند، بنابراین فرآیند برای کاربر شفاف بوده و نیازی به عبارات compute نیست.
پیکربندی دما (TEMPERATURE CONFIGURATION)
علاوه بر ویژگیهای معمول، دماها میتوانند دارای دو زیرویژگی خاص باشند: نوع حسگر دما (tempX_type) و مقادیر هیسترزیس (tempX_max_hyst، tempX_crit_hyst و غیره).
انواع حسگرهای حرارتی (THERMAL SENSOR TYPES)
انواع حسگرهای حرارتی موجود:
| 1 | PII/Celeron Diode |
| 2 | 3904 transistor |
| 3 | thermal diode |
| 4 | thermistor |
| 5 | AMD AMDSI |
| 6 | Intel PECI |
برای نمونه، جهت تنظیم temp1 روی نوع ترمیستور از عبارت زیر استفاده کنید:
تنها تراشههای خاصی از تغییر نوع حسگر حرارتی پشتیبانی میکنند، و حتی آنها نیز معمولاً تنها از برخی از انواع بالا پشتیبانی مینمایند. لطفاً به مستندات درایور خاص مراجعه کنید تا مشخص شود چه انواعی توسط تراشه شما پشتیبانی میشوند.
از نظر تئوری، بایوس (BIOS) باید انواع حسگرها را به درستی پیکربندی کرده باشد، بنابراین نباید نیازی به تغییر آنها داشته باشید، اما گاهی اوقات اینگونه نیست.
سازوکار هیسترزیس حرارتی (THERMAL HYSTERESIS MECHANISM)
بسیاری از تراشههای نظارتی با حدود دمای بالا و بحرانی به عنوان حدود ساده برخورد نمیکنند. در عوض، آنها دو مقدار برای هر حد دارند؛ یکی که با افزایش دما زنگ هشدار را فعال میکند و دیگری که با کاهش دما هشدار را پاک میسازد. دومی معمولاً چند درجه کمتر از اولی است. این سازوکار به عنوان هیسترزیس شناخته میشود.
دلیل پیادهسازی سازوکار به این شکل این است که هشدارهای دمای بالا معمولاً اقدامی را برای تلاش در جهت خنکسازی سیستم برمیانگیزند، خواه با کاهش فرکانس کاری پردازنده یا با به کار انداختن یک فن اضافی. این کار معمولاً باید دما را در یک بازه زمانی مناسب کاهش دهد. اگر این هشدار بلافاصله پاک میشد، سیستم به حالت اولیه بازمیگشت که در آن دما بالا میرفت و هشدار بلافاصله دوباره فعال میشد، که باعث ایجاد چرخه نامطلوب و سریع روشن و خاموش شدن فن میگردید. سازوکار هیسترزیس اطمینان میدهد که سیستم پیش از توقف فن کاملاً خنک شده باشد، به طوری که فن مجبور نباشد بلافاصله دوباره به کار بیفتد.
بنابراین، علاوه بر tempX_max، بسیاری از تراشهها زیرویژگی tempX_max_hyst را دارند. به همین ترتیب، tempX_crit اغلب با tempX_crit_hyst همراه است. tempX_emerg_hyst، tempX_min_hyst و tempX_lcrit_hyst نیز وجود دارند اما چندان رایج نیستند.
مثال:
سازوکار هیسترزیس را میتوان با دادن مقداری یکسان به هر دو حد غیرفعال کرد.
توجه داشته باشید که اکیداً توصیه میشود مقدار هیسترزیس بعد از مقدار حدی که به آن مربوط است در پرونده پیکربندی قرار داده شود. جزئیات پیادهسازی در سمت سختافزار یا درایور ممکن است در صورت تنظیم اولیه مقدار هیسترزیس، باعث نتایج غیرمنتظره شود.
بوقهای هشدار (BEEPS)
برخی تراشهها از هشدارهایی با بوق اخطار پشتیبانی میکنند. هنگامی که یک هشدار فعال میشود، میتوانید با یک سیگنال بوق از طریق بلندگوی رایانه خود مطلع شوید. علاوه بر پرچمهای بوق به ازای هر ویژگی، معمولاً یک کلید اصلی برای کنترل بوق جهت فعال یا غیرفعال کردن سراسری بوقها وجود دارد. بوقها را به این صورت فعال کنید:
یا به این صورت غیرفعال نمایید:
کدام عبارت اعمال میشود (WHICH STATEMENT APPLIES)
اگر در یک لحظه بیش از یک عبارت از همان نوع اعمال شود، آخرین عبارت در پرونده پیکربندی استفاده میشود. بنابراین معمولاً باید عبارات کلیتر chip را در بالا قرار دهید تا بتوانید در ادامه آنها را بازنویسی (لغو) کنید.
سینتکس (SYNTAX)
کامنتها (توضیحات) با علامت هش (#) مشخص میشوند. یک کامنت تا انتهای خط ادامه مییابد. خطوط خالی و خطوطی که فقط شامل فاصلههای خالی یا کامنت هستند نادیده گرفته میشوند. سایر خطوط یکی از فرمهای زیر را دارند. باید بین هر عنصر فاصله خالی وجود داشته باشد، اما میزان فاصله خالی اهمیتی ندارد. یک خط را میتوان با قرار دادن یک بکاسلش در انتهای آن، در خط بعد ادامه داد؛ این قابلیت در داخل یک کامنت، NAME یا NUMBER کار نمیکند.
chip NAME-LIST
label NAME NAME
compute NAME EXPR , EXPR
ignore NAME
set NAME EXPR
یک NAME یک رشته است. اگر تنها شامل حروف، ارقام و زیرخط باشد، نیازی به قرار گرفتن در کوتیشن ندارد؛ در تمام موارد دیگر باید دور آن از کوتیشن دوگانه استفاده کنید. در داخل کوتیشنها میتوانید از کدهای فرار معمولی در C استفاده نمایید.
یک NAME-LIST شامل یک یا چند مورد NAME پشت سر هم است که با فاصله از یکدیگر جدا شدهاند.
یک EXPR یکی از فرمهای زیر را دارد:
NAME
@
EXPR + EXPR
EXPR - EXPR
EXPR * EXPR
EXPR / EXPR
- EXPR
^ EXPR
` EXPR
( EXPR )
یک NUMBER یک عدد ممیز شناور است. مقادیر `10'، `10.4' و `.4' نمونههایی از اعداد ممیز شناور معتبر هستند؛ مقادیر `10.' یا `10E4' معتبر نیستند.
فایلها (FILES)
/etc/sensors3.conf
/etc/sensors.conf
/etc/sensors.d
همچنین ببینید (SEE ALSO)
نویسندگان (AUTHORS)
Frodo Looijaard و گروه lm_sensors
| November 2012 | lm-sensors 3 |