MODE2(1) 0.10.2" MODE2(1)

mode2 - نمایش خروجی هسته در دسترس برای راه‌اندازهای LIRC

mode2 --driver <driver> [--device <device>] [other options]

mode2 --raw --device <device> [other options]

mode2 --driver <driver> --list-devices

هدف اصلی این برنامه، بررسی عملکرد سخت‌افزارهای گیرندهٔ دست‌ساز LIRC و مشاهدهٔ شکل موج فروسرخ (IR) کنترل از راه دور بدون نیاز به یک اسیلوسکوپ گران‌قیمت بوده است. به مرور زمان، mode2 به ابزاری عمومی برای بررسی نوع خروجی ارائه‌شده توسط هسته برای lirc تکامل یافته است.

دستور mode2 برای راه‌اندازهایی که از LIRC_MODE_MODE2 پشتیبانی می‌کنند، صرفاً طول پالس (pulse) و فاصله (space) را در خروجی استاندارد چاپ می‌کند. برای راه‌اندازهایی که از LIRC_MODE_LIRCCODE پشتیبانی می‌کنند (مانند کارت‌های تلویزیون و راه‌انداز irman)، مقادیر صحیح رمزگشایی‌شده را می‌نویسد.

از نسخهٔ 0.9.4، mode2 همچنین می‌تواند دستگاه‌های موجود برای یک راه‌انداز مشخص را فهرست کند. این قابلیت نیازمند پشتیبانی از شمارش (enumeration) است که در بیشتر راه‌اندازها (اما نه همهٔ آن‌ها) در دسترس است.

در صورت مشخص کردن راه‌انداز صحیح، mode2 همواره باید کار کند. بدون راه‌انداز، گزینهٔ --raw باید همواره برای دستگاه‌های /dev/lirc* کار کند. در زمان نگارش این مستند، دستگاه‌های usb نیز در بیشتر موارد کار می‌کنند. با این حال، از آنجا که به‌دست آوردن مسیر دستگاه usb دشوار است، معمولاً بهتر است از طریق یک راه‌انداز به چنین دستگاه‌هایی دسترسی پیدا کرد.

همهٔ راه‌اندازها به یک دستگاه نیاز ندارند.

خواندن از دستگاه مشخص‌شده.
استفاده از راه‌انداز مشخص‌شده.
نوشتن داده‌های پالس/فاصله به عنوان فایل‌های پیکربندی خام (raw). روی راه‌اندازهای LIRCCODE تأثیری ندارد.
فعال‌سازی نمایشی شبیه به اسیلوسکوپ با زمان میکروثانیه (us) بر نویسه. روی راه‌اندازهای lirccode تأثیری ندارد.
عدم رهاسازی امتیازهای ریشه (root) پس از باز کردن دستگاه. بخش «اجرا به عنوان ریشه (RUNNING AS ROOT)» را ببینید.
فهرست کردن تمام دستگاه‌های موجود برای راه‌انداز مشخص‌شده. نیازمند پشتیبانی است که در همهٔ راه‌اندازها وجود ندارد.
در نظر گرفتن فاصله‌های طولانی‌تر از زمان مشخص‌شده به عنوان شکاف (gap). زمان بر حسب میکروثانیه است.
دسترسی مستقیم به دستگاه. این گزینه در درجهٔ اول برای استفاده با راه‌اندازهای rc هسته در نظر گرفته شده است، یعنی هنگام دسترسی به دستگاه‌های /dev/lirc*. استفاده از سایر دستگاه‌ها ممکن است کار کند، اما در کل رفتاری تعریف‌نشده است.
تنظیم گزینهٔ مختص راه‌انداز با نام key به مقدار مشخص‌شده.
بارگذاری راه‌اندازها از دایرکتوری مشخص‌شده. بخش «بارگذاری راه‌انداز (DRIVER LOADING)» را ببینید.
فایل حاوی مقادیر پیش‌فرض برای تمام گزینه‌ها. مسیر نسبی بر مبنای دایرکتوری جاری تفسیر می‌شود. بخش [فایل‌ها (FILES)] در زیر را ببینید.
تعیین میزان اطلاعات لاگ‌گیری. [level] می‌تواند یکی از سطوح نمادین syslog باشد: 'error'، 'warning'، 'info'، 'notice' یا 'debug'. همچنین lirc سه سطح اضافی 'trace'، 'trace1' و 'trace2' را تعریف می‌کند که پیام‌های بیشتری ارائه می‌دهند ('trace2' بیشترین پیام‌ها را دارد). با این حال، در گزارش لاگ این پیام‌ها به عنوان 'debug' علامت‌گذاری می‌شوند. این سطح همچنین می‌تواند یک عدد صحیح در بازهٔ ۳ (تقریباً بدون پیام) تا ۱۰ باشد.
نمایش خلاصهٔ استفاده از دستور.
نمایش نسخه.

در بسیاری از موارد mode2 باید به عنوان کاربر ریشه اجرا شود تا به دستگاه‌هایی دسترسی یابد که در اختیار کاربران عادی نیستند. از سوی دیگر، اجرا با دسترسی ریشه مشکلاتی چون مالکیت فایل‌های لاگ توسط ریشه، نگرانی‌های امنیتی و غیره را به وجود می‌آورد.

به منظور مقابله با این مسئله، mode2 به صورت پیش‌فرض پس از باز کردن دستگاه ورودی، امتیازهای ریشه را رها می‌کند. این سازوکار مبتنی بر این است که مجوزهای ریشه با استفاده از sudo(1) به دست آمده باشند، مثلاً با اجرای:

$ sudo mode2 --raw /dev/lirc0
در صورت عدم استفاده از sudo، رفتار مشابهی را می‌توان با متغیر محیطی SUDO_USER پیاده کرد، مثلاً:
# SUDO_USER=$LOGNAME mode2 --raw /dev/lirc0
گزینهٔ --keep-root باعث می‌شود mode2 امتیازهای ریشه را برای کل مدت اجرا حفظ کند.

هنگام اجرا با یک راه‌انداز از نوع MODE2، دستور mode2 زمان‌بندی‌های پالس/فاصله (space/mark) را چاپ می‌کند:

al@snorken $ ./mode2 --driver default --device /dev/lirc0
Using driver default on device /dev/lirc0
Trying device: /dev/lirc0
Using device: /dev/lirc0
pulse 2750
space 800
pulse 500
space 350
pulse 550
space 350
pulse 550
...
هنگام اجرا با یک راه‌انداز از نوع LIRCCODE، دستور mode2 مقادیر رمزگشایی‌شده را چاپ می‌کند:
     $ ./mode2 --driver atilibusb
     Using driver atilibusb on device /dev/lirc0
     Trying device: /dev/bus/usb/001/007
     Using device: /dev/bus/usb/001/007
     code: 0x14709b0000
     code: 0x14709b0000
     code: 0x14709b0000
     code: 0x14709b0000
     code: 0x14709b0000
     ...
هنگام اجرا با استفاده از mode2 --list-devices برای راه‌انداز devinput در حالی که یک دستگاه usb از نوع X10 RF متصل است:
    $ ./mode2 --list-devices --driver devinput
    /dev/input/event12 [0bc7:0006] X10 WTI RF receiver vers:  1.10 serial: ?
    /dev/input/by-id/usb-X10_WTI_RF_receiver-event-if00 -> ../event12
    /dev/input/by-path/pci-0000:0b:00.0-usb-0:1:1.0-event -> ../event12

راه‌اندازها به صورت پویا بارگذاری می‌شوند. مسیر جستجوی مورد استفاده برای این منظور، بر پایهٔ اولویت نزولی به شرح زیر تعیین می‌شود:

  • گزینهٔ --plugindir.
  • مدخل 'plugindir' در بخش [lircd] از فایل lirc_options.conf.
  • متغیر محیطی LIRC_PLUGINDIR.
  • مقدار پیش‌فرضِ ثابت درون برنامه (/usr/lib/lirc/plugins).

در صورت عدم وجود گزینهٔ --loglevel، به عنوان جایگزین استفاده می‌شود. نحو آن همانند --loglevel است؛ بخش «گزینه‌ها (OPTIONS)» را ببینید.

/etc/lirc/lirc_options.conf
فایل گزینه‌ها که مقادیر پیش‌فرضِ گزینه‌های خط فرمان را در بخش [mode2] نگه می‌دارد. برای برخی مقادیر از جمله debug، plugindir، driver و device، در صورتی که در بخش [mode2] یافت نشوند، mode2 به بخش [lircd] رجوع می‌کند.
مکان این فایل را می‌توان با استفاده از گزینهٔ خط فرمان -O/--options-file یا متغیر محیطی LIRC_OPTIONS_PATH تغییر داد.
~/.cache/mode2.log
لاگ اشکال‌زدایی (Debug log). مقداردهی به متغیر محیطی XDG_CACHE_HOME مکان این فایل را به $XDG_CACHE_HOME/mode2.log منتقل می‌کند. میزان گزارش‌گیری از متغیر محیطی LIRC_LOGLEVEL پیروی می‌کند که به طور پیش‌فرض روی مقدار debug در فایل lirc_options.conf تنظیم شده است.

xmode2(1)
lirc(4)

مستندات lirc به صورت صفحات html نگهداری می‌شوند. این مستندات در مسیر html/ در دایرکتوری مستندات قرار دارند.

Last change: Jan 2017 mode2