egalax触摸屏:
1.在需要转屏和特定分辨率的时候,可用cvt命令和xrandr命令来设定其分辨率。
…………$ xrandr
VGA1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm
1280x1024 60.0*+ 75.0
1152x864 75.0
1024x768 75.1 60.0
800x600 75.0 60.3
640x480 75.0 60.0
720x400 70.1
可修改分辨率,假设为1024x768,屏幕要求为竖屏,故可用命令为:
…………~$ xrandr --output VGA1 --mode 1024x768 --rotate right
但是系统在关机重启之后就会恢复为原来的设置,故需要修改X的配置文件,即/etc/X11/xorg.conf
Section "ServerLayout"
InputDevice "EETI" "SendCoreEvents"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"
Screen 2 "Screen2" RightOf "Screen1"
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
ModulePath "/usr/lib/xorg/modules"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
FontPath "built-ins"
EndSection
Section "Module"
Load "extmod"
Load "dri2"
Load "dbe"
Load "dri"
Load "glx"
Load "record"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5 6 7"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
Modeline "1024x768_60.00" 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync
Option "PreferredMode" "1024x768_60.00"
Option "Position" "0 0"
Option "Rotate" "right"
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
EndSection
Section "Monitor"
Identifier "Monitor2"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
EndSection
Section "Device"
### Available Driver options are:-
### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
### <percent>: "<f>%"
### [arg]: arg optional
#Option "AccelMethod" # [<str>]
#Option "DRI" # [<bool>]
#Option "ColorKey" # <i>
#Option "VideoKey" # <i>
#Option "FallbackDebug" # [<bool>]
#Option "Tiling" # [<bool>]
#Option "Shadow" # [<bool>]
#Option "SwapbuffersWait" # [<bool>]
#Option "XvMC" # [<bool>]
#Option "XvPreferOverlay" # [<bool>]
#Option "DebugFlushBatches" # [<bool>]
#Option "DebugFlushCaches" # [<bool>]
#Option "DebugWait" # [<bool>]
#Option "HotPlug" # [<bool>]
Identifier "Card0"
Driver "intel"
BusID "PCI:0:2:0"
EndSection
Section "Device"
### Available Driver options are:-
### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
### <percent>: "<f>%"
### [arg]: arg optional
#Option "ShadowFB" # [<bool>]
#Option "Rotate" # <str>
#Option "fbdev" # <str>
#Option "debug" # [<bool>]
Identifier "Card1"
Driver "fbdev"
BusID "PCI:0:2:0"
EndSection
Section "Device"
### Available Driver options are:-
### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
### <percent>: "<f>%"
### [arg]: arg optional
#Option "ShadowFB" # [<bool>]
#Option "DefaultRefresh" # [<bool>]
#Option "ModeSetClearScreen" # [<bool>]
Identifier "Card2"
Driver "vesa"
BusID "PCI:0:2:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Card1"
Monitor "Monitor1"
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen2"
Device "Card2"
Monitor "Monitor2"
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
重启系统之后,就会竖屏,分辨率为1024x768
有可能此时触摸触摸屏的时候,手指点的方向和想要的不一样,或者完全相反,可用uGalaxTouch来校准。校准后的配置保存在/var/lib/eeti.param文件中,但这个文件我们用vi打开时,显示的是乱码,故是不给我们可以看到的。
校准后,在xorg.conf文件中会多出一段话,即
### Touch Configuration Beginning ###
Section "InputDevice"
Identifier "EETI"
Driver "egalax"
Option "Device" "usbauto"
Option "Parameters" "/var/lib/eeti.param"
Option "ScreenNo" "0"
Option "SkipClick" "0"
EndSection
### Touch Configuration End ###
所以修改eeti.param可以得到多个方向的转屏显示效果。
egalax触摸屏是支持两点触摸的,其两点触摸的驱动程序在linux-2.6.38.8/drivers/hid/目录下,文件名为:hid-egalax.c
在仅仅只需要触摸屏单点触摸的情况下,这样就已经就足够了,即在EETI官网下载对应版本linux的驱动,并安装,其实就是一个.so和一个配置文件。这样触摸屏就可以工作了。如果需要转屏和改分辨率,就按上述步骤即可。通过校准程序来修改eeti.param,即可。
但是如果需要该触摸屏支持两点触摸,那么就不能用从其官网上下载下来的驱动包。而是hid-egalax.c。但是这里有一个问题,只有在input驱动能识别该驱动,才会把其判断为两点触摸设备,否则就是单点。所以,有个小窍门就是在linux-2.6.38.8/drivers/hid/目录下,修改文件hid-ids.h,加上该触摸屏的pid和vid参数。再编译该模块,insmod即可。
< #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH1 0x720c
---
> //#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH1 0x720c
> #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH1 0x7224(需要加入的触摸屏的PID)
这样就可以了,不需要从官网上下载下来的驱动,需要竖屏和修改分辨率的时候,就和上面单点修改是一样的。