linux input如何固定設備event handler


於qt開發時間。遇到的問題,usb輸入設備(鼠標器,usb 電容屏)在動力分配后自己主動input節點,實例usb鼠標停留電后,分配給自己的主動性/dev/input/event0 mouse0。第一插頭后,加入自己主動節點在未來。變/dev/input/event1mouse1

 

對於鼠標類型的設備。/dev/input/mouseX 的全部消息都會匯總到/dev/input/mice,因此,qt的QWS_MOUSE_PROTO輸入能夠指定IntelliMouse=/dev/input/mice,鼠標插拔即使mouseX變化也都能使用。

 

可是,對於usb觸控類型輸入設備,使用的event接口,向應用層匯報的是絕對坐標信息。不是mouse的相對坐標信息,所以當eventX設備號變化后。應用層就無法識別了,由於沒有像/dev/input/mice這種接口。而大部分應用觸控都使用了tslib。TSLIB_TSDEVICE=/dev/input/event0, 


直接給出須要改動的地方:

共同擁有3處:drivers/input/input.c  input_register_device函數



drivers/input/mousedev.c   mousedev_connect函數



drivers/input/evdev.c  evdev_connect函數



結果例如以下,我的三個設備都固定為event6  event7  event8  ,usb設備隨意插拔,event handler也不會變化

/ # 
/ # cat /proc/bus/input/devices 
I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="gt928 Touchscreen"
P: Phys=1-0014/input0
S: Sysfs=/devices/virtual/input/input6
U: Uniq=
H: Handlers=mouse6 event6 
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=1000003


I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="ADS7846 Touchscreen"
P: Phys=spi1.0/input0
S: Sysfs=/devices/platform/omap2_mcspi.1/spi1.0/input/input7
U: Uniq=
H: Handlers=mouse7 event7 
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=1000003


I: Bus=0003 Vendor=0eef Product=0001 Version=0100
N: Name="eGalax Inc. USB TouchController"
P: Phys=usb-ehci-omap.0-1.1/input0
S: Sysfs=/devices/platform/ehci-omap.0/usb1/1-1/1-1.1/1-1.1:1.0/input/input8
U: Uniq=
H: Handlers=mouse8 event8 
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=1000003


/ # 

版權聲明:本文博主原創文章,博客,未經同意不得轉載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM