EVTEST(1)   EVTEST(1)

evtest - ابزار پایش رویدادها و پرس‌وجوی دستگاه ورودی

evtest [--grab] /dev/input/eventX
evtest --query /dev/input/eventX <type> <value>

حالت نخست فراخوانی که در بالا نشان داده شده است («حالت ضبط» یا capture mode) باعث می‌شود evtest اطلاعات مربوط به دستگاه ورودی مشخص‌شده را نمایش دهد، از جمله تمامی رویدادهایی که توسط آن دستگاه پشتیبانی می‌شوند. سپس دستگاه را پایش کرده و تمامی رویدادهای تولیدشده در لایه رویداد را نمایش می‌دهد.

اگر پرچم --grab در حالت ضبط مشخص شود، evtest انحصار EVIOCGRAB را روی دستگاه فعال نگه می‌دارد. تا زمانی که این انحصار برقرار است، فرآیندهای دیگر رویدادی از دستگاه‌های هسته دریافت نخواهند کرد. این انحصار با خروج evtest مجدداً آزاد می‌شود.

در حالت دوم فراخوانی («حالت پرس‌وجو» یا query mode)، ابزار evtest یک پرس‌وجوی یک‌باره از وضعیت یک مقدار خاص (value) برای نوع رویداد مشخص (type) انجام می‌دهد.

شناسه type یکی از موارد زیر است: EV_KEY، EV_SW، EV_SND، EV_LED (یا مقدار عددی آن).

مقدار value می‌تواند نمایش ده‌دهی (مانند 44)، هگزادسیمال (مانند 0x2c)، یا نام ثابت (مانند KEY_Z) مربوط به کلید/سوییچ/صدا/LED مورد پرس‌وجو باشد.

اگر بیت وضعیت تنظیم شده باشد (کلید فشرده شده، سوییچ روشن و...)، برنامه evtest با کد 10 خارج می‌شود. اگر بیت وضعیت تنظیم نشده باشد (کلید رها شده، سوییچ خاموش و...)، با کد 0 خارج می‌شود. هیچ خروجی دیگری تولید نخواهد شد.

ابزار evtest باید توانایی خواندن از دستگاه را داشته باشد؛ در بیشتر موارد این بدان معناست که باید با دسترسی مدیر سیستم (root) اجرا شود.

ابزار evtest معمولاً برای اشکال‌زدایی مشکلات دستگاه‌های ورودی در X.Org استفاده می‌شود. خروجی evtest اطلاعات ارائه‌شده توسط هسته را نمایش می‌دهد؛ بر اساس این اطلاعات می‌توان مشخص کرد که آیا باگ مربوط به هسته است یا مشکلی در X.Org وجود دارد.

اگر evtest حتی با وجود استفاده از دستگاه هیچ رویدادی را نمایش نمی‌دهد، ممکن است دستگاه توسط یک فرآیند به صورت انحصاری در اختیار گرفته شده باشد (EVIOCGRAB). این مورد معمولاً هنگام اشکال‌زدایی دستگاه‌های synaptics از درون محیط X رخ می‌دهد. جابه‌جایی با VT به یک TTY یا خاموش کردن کارساز X این انحصار را پایان می‌دهد و می‌توان دستگاه‌های synaptics را اشکال‌زدایی کرد.

دستور زیر فرآیندهایی را که یک توصیف‌گر فایل باز روی دستگاه دارند نشان می‌دهد:

fuser -v /dev/input/eventX

در صورت بروز خطا، evtest مقدار 1 را بازمی‌گرداند.

هنگام استفاده برای پرس‌وجوی وضعیت، اگر بیت وضعیت تنظیم نشده باشد مقدار 0 و اگر بیت وضعیت تنظیم شده باشد مقدار 10 توسط evtest بازگردانده می‌شود.

inputattach(1)

ابزار evtest توسط Vojtech Pavlik <vojtech@suse.cz[1]> نوشته شده است.

این صفحهٔ راهنما توسط Stephen Kitt <steve@sk2.org[2]> بر اساس موارد موجود در بستهٔ lineakd، برای سیستم Debian GNU/Linux نوشته شده است (اما ممکن است توسط دیگران نیز استفاده شود).

1.
vojtech@suse.cz
mailto:vojtech@suse.cz
2.
steve@sk2.org
mailto:steve@sk2.org
08/27/2025