| BLAZER_USB(8) | NUT Manual | BLAZER_USB(8) |
نام (NAME)
blazer_usb - درایور برای تجهیزات UPS مبتنی بر USB با پروتکل Megatec/Q1
خلاصه دستور (SYNOPSIS)
blazer_usb -h
blazer_usb -a UPS_NAME [OPTIONS]
نکته (NOTE)
این صفحه راهنما فقط ویژگیهای خاص سختافزاری درایور blazer را مستند میکند. برای اطلاعات بیشتر درباره درایور اصلی، به nutupsdrv(8) مراجعه کنید.
نکته (NOTE)
لطفاً توجه داشته باشید که این درایور منسوخ شده است (deprecated) و هیچ توسعه جدیدی دریافت نخواهد کرد. اگر برای مدیریت دستگاههای شما کار میکند — عالی است، اما اگر در حال اجرای آن برای راهاندازی یک دستگاه جدید هستید، لطفاً درایور جدیدتر nutdrv_qx(8) را در نظر بگیرید که باید تمام انواع پروتکل Q* را برای NUT مدیریت کند.
همچنین لطفاً گزارش دهید اگر دستگاه شما با این درایور کار میکند، اما nutdrv_qx(8) واقعاً با هیچ زیردرایوری از آن پشتیبانی نمیکند!
سختافزارهای پشتیبانیشده (SUPPORTED HARDWARE)
مشخص شده است که درایور blazer با انواع مختلف UPS از شرکتهای Blazer، Energy Sistem، Fenton Technologies، General Electric، Mustek و بسیاری دیگر کار میکند. جدول سازگاری NUT تمام مدلهای پشتیبانیشده شناختهشده را فهرست میکند. با این حال به خاطر داشته باشید که سایر مدلهایی که در آنجا ذکر نشدهاند نیز ممکن است پشتیبانی شوند، اما آزمایش نشدهاند.
تمام دستگاههای دارای رابط سریال (از درایور blazer_ser استفاده کنید) و بسیاری از دستگاههای دارای رابط USB (از درایور blazer_usb استفاده کنید) پشتیبانی میشوند.
آرگومانهای اضافی (EXTRA ARGUMENTS)
بسته به سازنده و مدل UPS خود، ممکن است لازم باشد مقادیری را بازنویسی (override) کنید یا مقادیر پیشفرضی برای آنها تعیین نمایید. موارد زیر احتمالاً مواردی هستند که بیش از همه نیاز به تغییر خواهند داشت (به ups.conf(5) مراجعه کنید):
default.battery.voltage.high = value
default.battery.voltage.low = value
default.battery.voltage.nominal = value, override.battery.voltage.nominal = value
override.battery.packs = value
ondelay = value
offdelay = value
norating
novendor
protocol = string
runtimecal = value,value,value,value
runtimecal = 240,100,720,50
بار اول همیشه باید بیشتر از بار دوم باشد. اگر مقادیری برای بارهایی غیر از ۱۰۰ و ۵۰ درصد در دسترس دارید، میتوانید از آنها نیز استفاده کنید، اما فاصله آنها را تا حد ممکن از یکدیگر حفظ کنید. فقط بیش از حد به وضعیت بدون بار (no load) نزدیک نشوید (در این حالت پیشبینی زمان کارکرد بیشتر به بار بیباری باتری وابسته میشود).
chargetime = value
idleload = value
فقط رابط USB (USB INTERFACE ONLY)
port = string
نکته
این مقدار میتواند یک مسیر در سیستمفایل دستگاه مانند /dev/usb/hiddev0 باشد اما استفاده فعلی از API مربوط به libusb مانع از شناخت و تطبیق از طریق چنین شناسههایی میشود. همچنین ممکن است ذاتاً غیرقابل اعتماد باشند (وابسته به اتصال مجدد کابل و ترتیب شمارش دستگاهها). در حال حاضر مقدار واقعی value نادیده گرفته میشود، اما از نظر ساختاری وجود مقداری برای پیکربندی port همچنان الزامی است.
امکان کنترل چندین دستگاه UPS بهطور همزمان از طریق اجرای چندین نمونه از این درایور وجود دارد، به شرطی که بتوان آنها را با تنظیم ترکیبی از گزینههای vendor، product، vendorid، productid، serial، bus یا device که در ادامه توضیح داده شدهاند، بهطور یکتا متمایز کرد. برای دستگاهها یا سیستمعاملهایی که اطلاعات کافی ارائه نمیدهند، گزینه allow_duplicates میتواند کاربردی باشد (محدود و پرخطر!).
vendorid = regex, productid = regex, vendor = regex, product = regex, serial = regex
برای یافتن رشتههای مناسب جهت تطبیق، اجرای lsusb(8) یا اجرای این درایور NUT با آرگومان خط فرمان -DD را امتحان کنید.
مثالها:
bus = regex
انتخاب یک UPS روی یک گذرگاه USB مشخص یا گروهی از گذرگاهها. آرگومان یک عبارت منظم است که باید با نام گذرگاهی که UPS به آن متصل است مطابقت داشته باشد (مثلاً bus="002" یا bus="00[2-3]") همانطور که در لینوکس در مسیر /sys/bus/usb/devices یا در خروجی lsusb(8) دیده میشود؛ شامل صفرهای ابتدایی.
نکته
سیستمعامل تضمین نمیکند که شمارههای گذرگاه در طول راهاندازیهای مجدد، بارگذاری مجدد درایورهای هسته یا اتصال مجدد دستگاه (مثلاً تغییر تعداد دستگاههای متصل به هابهای USB) پایدار باقی بمانند.
device = regex
انتخاب یک UPS روی یک دستگاه USB مشخص یا گروهی از دستگاهها. آرگومان یک عبارت منظم است که باید با نام دستگاهی که UPS به آن متصل است مطابقت داشته باشد (مثلاً device="001" یا device="00[1-2]") همانطور که در لینوکس در مسیر /sys/bus/usb/devices یا در خروجی lsusb(8) دیده میشود؛ شامل صفرهای ابتدایی.
نکته
سیستمعامل تضمین نمیکند که شمارههای دستگاه در طول راهاندازیهای مجدد یا اتصال مجدد دستگاه پایدار باقی بمانند.
busport = regex
در صورت پشتیبانی توسط سختافزار، سیستمعامل و libusb در محیط پیادهسازیشده خاص، این گزینه باید اجازه دهد به جای مقادیر شمارشی منطقی device شماره درگاههای فیزیکی روی یک هاب USB مشخص شود، و در نتیجه — این مورد باید در طول راهاندازیهای مجدد یا اتصالهای مجدد نوسان کمتری داشته باشد. برای مثال، این مقدار ممکن است در خروجی توپولوژی USB دستور lsusb -tv روی سیستمهایی که این ابزار را دارند، مشاهده شود.
نکته
این گزینه در عمل توسط برخی از بیلدهای NUT پشتیبانی نمیشود (در این حالت باید همراه با یک هشدار نادیده گرفته شود)، و همچنین توسط تمام سیستمهایی که NUT میتواند روی آنها اجرا شود نیز پشتیبانی نمیگردد.
allow_duplicates
اگر چندین دستگاه UPS دارید که ممکن است توسط گزینههای بالا بهطور یکتا شناسایی نشوند (مثلاً فقط VID:PID در آنجا قابل کشف باشد)، این فلگ به هر نمونه درایور که در آن تنظیم شده اجازه میدهد اولین تطابق را در صورت موجود بودن انتخاب کند، یا برای بررسی مورد دیگر ادامه دهد.
بهطور معمول، راهاندازی اولیه درایور در این مرحله با اعلام خطای «Resource busy» یا خطایی مشابه متوقف میشود، با این فرض که دستگاهی که بهدرستی تطبیق داده شده یکتا است — و فرایند دیگری در حال حاضر آن را مدیریت میکند.
هشدار
این ویژگی ذاتاً غیرقطعی (non-deterministic) است! انتساب نام نمونه درایور به دستگاه واقعی ممکن است بین دفعات اجرا متفاوت باشد!
اگر فقط برایتان مهم است که بدانید حداقل یکی از UPSهای بینام شما آنلاین است، این گزینه میتواند مفید باشد.
اما اگر واقعاً نیاز دارید بدانید کدام دستگاه است، این گزینه کمکی نخواهد کرد!
usb_set_altinterface = bAlternateSetting
usb_config_index, usb_hid_rep_index, usb_hid_desc_index, usb_hid_ep_in, usb_hid_ep_out
بهعنوان یک قاعده کلی تجربی برای کشف usb_hid_desc_index، میتوانید مقادیر بزرگتر wDescriptorLength (تقریباً ۶۰۰ بایت به بالا) را در گزارشهای lsusb یا ابزارهای مشابه مشاهده کنید.
LIBUSB_DEBUG = INTEGER
برای مورد اخیر، میتوانید گزینه درایور LIBUSB_DEBUG را تنظیم کنید؛ همچنین بهصورت سنتی میتوانید پیش از شروع یک برنامه درایور NUT، متغیر محیطی LIBUSB_DEBUG را مقداردهی و export کنید (میتواند در اسکریپت راهاندازی اولیه درایور یا متد سرویس، احتمالاً از طریق nut.conf(5) تنظیم و "export" شود)، با یک مقدار عددی مانند 4 («همه پیامها منتشر میشوند»).
برای جزئیات بیشتر، از جمله مقادیر پشتیبانیشده فعلی برای نسخه کتابخانه شما، به عنوان مثال ببینید:
subdriver = string
langid_fix = value
دستورات UPS (UPS COMMANDS)
این درایور از برخی دستورات آنی پشتیبانی میکند (به upscmd(8) مراجعه کنید):
beeper.toggle
load.on
load.off
shutdown.return
shutdown.stayoff
shutdown.stop
test.battery.start.deep
test.battery.start.quick
test.battery.start value
test.battery.stop
تخمین شارژ باتری (BATTERY CHARGE GUESSTIMATION)
به دلیل تقاضای عمومی، این درایور یک مقدار تخمینی battery.charge و بهطور اختیاری battery.runtime را گزارش میدهد، به شرطی که چند مورد از آرگومانهای بخش EXTRA ARGUMENTS که در بالا ذکر شدند را مشخص کرده باشید.
اگر هر دو مقدار battery.voltage.high و battery.voltage.low را در ups.conf(5) مشخص کنید، اما runtimecal را وارد نکنید، وضعیت شارژ را صرفاً با بررسی ولتاژ باتری تخمین میزند. این روش زیر بار قابل اعتماد نیست، زیرا تنها زمانی مقادیر خواندهشده نسبتاً دقیقی به دست میدهد که بار را قطع کنید، بگذارید باتری چند دقیقه استراحت کند و سپس ولتاژ مدار باز سلول را اندازه بگیرید. این کار در زمانی که برق قطع شده و UPS در حال تأمین انرژی سیستمهای شما است، اصلاً عملی نیست.
battery.voltage - battery.voltage.low
battery.charge = --------------------------------------------- x 100 %
battery.voltage.high - battery.voltage.low
راهی برای به دست آوردن مقادیر دقیقتر بدون قطع بار وجود دارد، اما این کار مستلزم رهگیری مقدار (و سرعت) جریان ورودی و خروجی به باتری است. اگر runtimecal را مشخص کرده باشید، درایور تلاش میکند این کار را انجام دهد. با این حال توجه داشته باشید که این موضوع به شدت به مقادیری که وارد میکنید وابسته است و UPS نیز باید قادر به گزارش میزان بار باشد. دستگاههای متعددی وجود دارند که در تمام زمانها 0% (یا هر مقدار ثابت دیگری) را گزارش میدهند، که در این صورت بدیهی است این روش کار نخواهد کرد.
درایور همچنین راهی برای تعیین افت ظرفیت باتری در طول زمان ندارد، بنابراین خودتان باید این موضوع را مدیریت کنید (با تنظیم مقادیر در runtimecal). همچنین توجه داشته باشید که درایور وضعیت اولیه شارژ را بر اساس ولتاژ باتری حدس میزند، بنابراین ممکن است حتی وقتی مطمئن هستید که باتریها پر هستند، مقداری کمتر از 100% باشد. اصلاً هیچ راهی برای اندازهگیری قابل اعتماد این مورد بین 0 و 100% شارژ کامل وجود ندارد.
این تخمین بهتر از هیچی است (اما نه خیلی بهتر). اگر هر یک از محاسبات فوق مقادیر نادرستی به شما ارائه میدهد، به یاد داشته باشید که این شما بودهاید که مقادیر را در ups.conf(5) وارد کردهاید، بنابراین از نویسنده گلایه نکنید. اگر به چیزی بهتر نیاز دارید، خرید یک UPS را در نظر بگیرید که خودش battery.charge و battery.runtime را بدون کمک درایور NUT گزارش کند.
نکات برای کاربران قبلی درایورهای MEGATEC (NOTES FOR THE PREVIOUS USER OF MEGATEC DRIVERS)
از آنجا که درایورهای blazer جایگزین درایورهای megatec شدهاند، ممکن است برخی تغییرات در پیکربندی برای کاربرانی که به blazer مهاجرت میکنند مورد نیاز باشد.
بخشی از این موضوع شامل گزینههای زیر در megatec است که در ups.conf باید تغییر یابند:
battvolts
dtr and rts
ignoreoff
مشکلات شناختهشده (KNOWN PROBLEMS)
برخی از دستورات UPS توسط همه مدلها پشتیبانی نمیشوند. در بیشتر موارد، زمانی که کاربر تلاش میکند فرمانی پشتیبانینشده را اجرا کند، درایور پیامی به گزارش سیستم (system log) ارسال میکند. متأسفانه برخی مدلها حتی راهی برای بررسی این موضوع توسط درایور فراهم نمیکنند، بنابراین دستورات پشتیبانینشده بدون هیچ پیامی با شکست مواجه میشوند.
هر دو دستور آنی load.off و shutdown.stayoff به این منظور در نظر گرفته شدهاند که بار را به مدت نامحدود قطع کنند. با این حال، برخی از مدلهای UPS اجازه این کار را نمیدهند.
برخی مدلها مقداری ساختگی برای وضعیت بیپر گزارش میکنند (همیشه enabled یا disabled خواهد بود). بنابراین، ممکن است به نظر برسد دستور beeper.toggle هیچ تأثیری در وضعیت گزارششده توسط درایور ندارد، در حالی که در واقعیت به خوبی کار میکند.
مشخص شده است که مقدار دما و بار در برخی مدلها ساختگی است.
نویسندگان (AUTHORS)
همچنین ببینید (SEE ALSO)
blazer_ser(8), nutupsdrv(8), upsc(8), upscmd(8), upsrw(8)
منابع اینترنتی (Internet Resources):
| 06/21/2026 | Network UPS Tools 2.8.5 |