کار با evdev(1250 مجموع کلمات موجود در متن) (7630 بار مطالعه شده است) کار
با evdev
اگر
صاحب یک ماوس٬ صفحه کلید یا دسته بازی
هستید که تعداد زیادی دکمه و چرخ دارد٬
حتما متوجه شدهاید که بعضی از دکمهها
و چرخها در محیط X
کار
نمیکنند.
این
مقاله در مورد روشهای تنظیم X
برای
استفاده از تمام امکانات دستگاههای
ورودی با استفاده از راهانداز evdev
نوشته
شده است.
۱.
evdev چیست؟
evdev رابط
عمومی رخدادهای ورودی است یعنی تمام
رخدادهای ورودی را که در هسته بوجود
میآیند با برچسبهای زماندار (timestamp)
به
برنامه منتقل میکند.
این
راهانداز٬ دستگاههای ورودی را با نام
eventX در
شاخه /dev/input
ایجاد
میکند که X
میتواند
اعداد 0
تا 31
را داشته
باشد.
به عنوان
مثال:
$ ls -l
/dev/input/event*
crw-rw---- 1 root
root 13, 64 2007-03-14 11:06 /dev/input/event0
crw-rw---- 1 root
root 13, 65 2007-03-14 11:06 /dev/input/event1
crw-rw---- 1 root
root 13, 66 2007-03-14 11:06 /dev/input/event2
crw-rw---- 1 root
root 13, 67 2007-03-14 11:06 /dev/input/event3
crw-rw---- 1 root
root 13, 68 2007-03-14 11:06 /dev/input/event4
|
تنها یک صفحه
کلید و یک ماوس به این کامپیوتر متصل است
ولی ۵ دستگاه ورودی شناسایی شدهاند!
در این
مورد در ادامه مقاله توضیح داده میشود.
۲.
چطور
evdev
را
نصب کنم؟
معمولا evdev
روی
سیستم نصب است و فقط نیاز به تنظیم سیستم
برای استفاده از آن داریم.
برای
نصب و استفاده از evdev
به این
موارد نیاز داریم.
بخش اول و اصلی
در هسته قرار دارد که یک راهانداز
سختافزار است که در قسمت قبل در مورد آن
صحبت شد.
هسته
باید این راهانداز را داشته باشد تا
بتوانید از evdev
استفاده
کنید.
اگر
هسته را خودتان نصب میکنید این راه انداز
را در قسمت
Device
Drivers->Input device support->Event interface
فعال کنید.
بخش دوم یک
راهانداز نرمافزار است که میتواند
یک راهانداز در X
یا gpm
باشد
که ما فقط در مورد X
صحبت
میکنیم.
برای
نصب آن:
Debian: # apt-get
install xserver-xorg-input-evdev
Fedora: # yum install
xorg-x11-drv-evdev
|
۳.
آزمایش
evdev
حتما قبل از
تنظیم X
باید
هر کدام از دستگاههای event
که در
سیستم وجود دارد آزمایش شوند تا معلوم
شود که چه هستند و آیا درست کار میکنند.
برای
اینکار از ابزاری به نام evtest
که یکی
از ابزارهای پروژه LinuxConsole
است
استفاده میکنیم.
در دبیان
این ابزار در بسته dvb-utils
قرار
دارد٬ چون از آن برای آزمایش کنترل از راه
دور کارتهای dvb
نیز
استفاده میشود.
برای
آزمایش هر دستگاه event:
#
evtest /dev/input/eventX
|
که به جای X
باید
عدد مربوطه را قرار دهید.
در ضمن
برای اجرای این دستور نیاز به مجوز کاربر
ریشه دارید.
برای
خروج از هر آزمایش باید دکمههای Ctrl+c
را باهم
فشار دهید.
با
آزمایش سه دستگاه اول مشخص شد که آنها
دکمههای Power
و Sleep
روی
case
هستند.
event3 مربوط
به ماوس و event4
مربوط
به صفحه کلید است.
در زیر
خروجی مربوط به ماوس را میبینید:
#
evtest /dev/input/event3
Input
driver version is 1.0.0
Input
device ID: bus 0x3 vendor 0x9da product 0x6 version 0x110
Input
device name: "A4Tech USB Optical Mouse"
Supported
events:
Event type 0 (Reset)
Event code 0 (Reset)
Event code 1 (Key)
Event code 2
(Relative)
Event type 1 (Key)
Event code 272
(LeftBtn)
Event code 273
(RightBtn)
Event code 274
(MiddleBtn)
Event code 275
(SideBtn)
Event code 276
(ExtraBtn)
Event code 277
(ForwardBtn)
Event type 2
(Relative)
Event code 0 (X)
Event code 1 (Y)
Event code 6 (HWheel)
Event code 8 (Wheel)
Testing
... (interrupt to exit)
|
همان طور که
میبینید اطلاعاتی در مورد ماوس٬ نوع
رخداد و کد آن به همراه نام دکمهها و
چرخها در خروجی دیده میشوند.
با فشار
دادن هر یک از دکمهها و یا چرخاندن
چرخها٬ رخداد به همراه اطلاعات مربوط
به آن روی صفحه نمایش داده خواهد شد.
۴.
تنظیم
X
برای تنظیم X
فایل
مربوطه را با یک ویرایشگر متن باز کنید:
#
vi /etc/X11/xorg.conf
تنظیمات ماوس
را پیدا کنید:
Section
"InputDevice"
Identifier
"Configured Mouse"
Driver
"evdev"
Option
"CorePointer"
Option
"Name" "A4Tech USB Optical Mouse"
Option
"ZAxisMapping" "4 5 6 7"
EndSection
|
بخش Identifier
تنها
یک نام است که X
از آن
استفاده میکند و نیازی به تغییر آن
ندارید.
بخش Driver
را باید
از mouse
به evdev
تغییر
دهید.
بخش Option
اول که
مربوط به X
است و
این ماوس را به عنوان اشارهگر اصلی تنظیم
میکند و نیازی به تغییر آن ندارید.
بخش Option
دوم که
مربوط به evdev
است و
باعث میشود تا از دستگاهی استفاده شود
که دارای این نام باشد.
به هیچ عنوان
استفاده از تنظیمی مانند زیر درست نیست:
Option
"Device" "/dev/input/event3"
|
ممکن است ماوس
بعدا به درگاه Usb
دیگری
متصل شود یا جای ماوس و صفحه کلید عوض شود
و ترتیب دستگاههای event
در
/dev/input
تغییر
کند. می
توانید با استفاده از روشهای مختلف
دستگاه مورد نظر را شناسایی کنید٬ میتوانید
از Name
مانند
مثال بالا یا از vendor
که یک
شماره برای شناسایی سازنده است و میتوانید
آنرا در خروجی evtest
یا در
فایل /proc/bus/input/devices
پیدا
کنید.
به عنوان مثال
اگر از vendor
به شکل
زیر استفاده کنید٬ هر چیزی که سازنده آن
A4tech
باشد
به عنوان ماوس استفاده خواهد شد:
(برای
اطلاع از تنظیمات بیشتر man
evdev را
در کنسول اجرا کنید.)
بخش Option
سوم که
باز مربوط به X
است و
باعث میشود که حرکت چرخ اول به سمت بالا
و پایین که همان دکمههای ۴ و ۵ است برای
حرکت عمودی و حرکت چرخ دوم به سمت بالا و
پایین که همان دکمههای ۶ و ۷ است برای
حرکت افقی استفاده شود.(برای
اینکه بدانید چه اعدادی را در این قسمت
وارد کنید قسمت بعدی را مطالعه کنید.)
۵.
آزمایش
تنظیمات X
ابتدا X
را مجددا
راهاندازی کنید تا تنظیمات اعمال شوند.
برای
آزمایش دستگاههای ورودی که X
از آنها
استفاده میکند از ابزار xev
استفاده
میشود.
با اجرای
دستور xev
در یک
شبیهساز ترمینال مانند xterm,
gnome-terminal و
یا konsole
یک پنجره
کوچک مانند آنچه در تصویر زیر میبینید
ظاهر میشود:
تصویر ۱ xev
اشارهگر ماوس
را به داخل پنجره برده و چرخهای ماوس را
حرکت دهید اعداد مربوط به هر حرکت روی
صفحه نمایش داده خواهد شد که با استفاده
از آنها میتوانید X
را تنظیم
کنید.
برای تنظیم صفحه
کلید نیز می توانید از همین روش استفاده
کنید.
نویسنده:
سیاوش
صفی
منابع:
/usr/src/linux/Documentation/input/input.txt
man
evdev
man xorg.conf
PDF Version
|