0% found this document useful (0 votes)
79 views33 pages

EETI eGTouch Linux Programming Guide v2.5n

The eGTouch Linux Programming Guide v2.5N provides detailed instructions for installing and configuring the eGTouch touch daemon driver for EETI touch controllers, including prerequisites, installation steps, and troubleshooting FAQs. It covers kernel module checks, driver installation processes, and parameter explanations for configuration. The guide is essential for users looking to set up and utilize the eGTouch driver effectively on Linux systems.

Uploaded by

Gilson Horst
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
79 views33 pages

EETI eGTouch Linux Programming Guide v2.5n

The eGTouch Linux Programming Guide v2.5N provides detailed instructions for installing and configuring the eGTouch touch daemon driver for EETI touch controllers, including prerequisites, installation steps, and troubleshooting FAQs. It covers kernel module checks, driver installation processes, and parameter explanations for configuration. The guide is essential for users looking to set up and utilize the eGTouch driver effectively on Linux systems.

Uploaded by

Gilson Horst
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 33

eGTouch Linux Programming Guide v2.

5N
2021/03/12

EETI eGTouch Linux Programming Guide v2.5N

TABLE OF CONTENTS

TABLE OF CONTENTS......................................................................................... 0
Sec 1: Introduction ............................................................................................ 2
1.1 GuideLine .............................................................................................. 2
1.2 Support From Vendor ......................................................................... 2
Sec 2: Before install .......................................................................................... 3
2.1 Check kernel module .......................................................................... 3
2.2 Conditions to patch kernel source code ......................................... 5
2.3 Check device ........................................................................................ 5
Sec 3: Install Driver Package ........................................................................... 7
3-1 Install Process...................................................................................... 7
3-2 Tools....................................................................................................... 9
Sec 4: Touch Input Event Sequence ............................................................ 10
4-1 Two different event sequences ....................................................... 10
4-2 How to read touch event ................................................................... 11
Sec 5: eGTouchL.ini Parameter Explanations ........................................... 12
5-1 Parameter Table ................................................................................. 12
Sec 6: Annotation ............................................................................................ 17
6-1 DetectRotation Note .......................................................................... 17
6-2 Rotation and Beep for Embedded System ................................... 17
Sec 7: Multi-Monitor Setting .......................................................................... 18
7-1 Numerous Devices ............................................................................ 18
7-2 Monitor Name ..................................................................................... 18
7-3 Calibration Method. ........................................................................... 19
Sec 8: FAQ ......................................................................................................... 20
8-1 Touch not working ............................................................................ 20
8-2 Touch position and direction don’t match rotated display ....... 22
8-3 OS can not map touch position to screen position.................... 22
8-4 Touch is working, but click some items without reaction......... 23
8-5 eGTouchD can NOT find UART interface device......................... 23
8-6 My UART device receive unexpected data from eGTouchD ..... 23
8-7 GNOME Gesture ................................................................................ 24
Sec 9: Support .................................................................................................. 25
eGTouch Programming Guide v2.5N
2021/03/12

9-1 Need Support From EETI ................................................................. 25


Sec 10: Appendix ............................................................................................. 26
10-1 Kernel patch: ( for X-window version < 1.8.7 ) .......................... 26
10-1.1 kernel 2.6.33 downwards ............................................................ 27
10-1.2 kernel 2.6.34 upwards ................................................................. 30
10-2 Kernel patch ( kernel 3.8~3.12 with USB resistive ) ................. 32

1
eGTouch Linux Programming Guide v2.5N
2021/03/12

Sec 1: Introduction

1.1 GuideLine
EETI provides all kinds of touch solution. EETI eGTouch is a touch daemon driver for EETI
touch controller. Only is available for kernel 2.6.24 upward.
Support interfaces:
1. USB
2. RS232
3. PS/2
Having below features:
1. Precise points.
2. Great calibration precision for Resistive controller.
3. Capable for 10+ points report.
4. Following Linux Standard Multitouch-protocol point report.
5. Rightclick, beep sound, constant touch filter, etc.
6. Support multi devices.
7. Available for detecting X-window rotation to do rotating coordinate.
8. Provide manually modify driver’s behavior.
This document would assist you to install eGTouch.

1.2 Support From Vendor


If you encounter any problem as running eGTouch driver, please refer to the Sec 8.
Sec 8 list few common question, it might be useful to you, if your problem still can NOT be
solved, please refer to the Sec 9-1. Need Support From EETI.

如果你有任何 driver 使用上的問題,請參照此文件的第 8 節,該節列出常見的問題,對您可


能很有用,如果仍然無法解決您的問題,請參閱第 9-1 節,取得 EETI 的支援。

如果您有任何驱动程序使用上的问题,请参照此文件的第 8 节,該节列出常见的问题,对您可
能很有用,如果仍然无法解决您的问题,请参见第 9-1 节,取得 EETI 的支持。

2
eGTouch Linux Programming Guide v2.5N
2021/03/12

Sec 2: Before install

2.1 Check kernel module


To install driver, please check module configuration as below:

Necessary:
1. EVDEV
2. UINPUT
3. HIDRAW ( USB Interface )
4. HID_MULTITOUCH ( USB Interface & Kernel 3.0 upwards )
Remove:
CONFIG_TOUCHSCREEN_USB_COMPOSITE
( For USB Interface & PID 0001 controller )

You could check this by “make menuconfig” command or modify Kconfig file. Below is an
example of “make menuconfig”:

Necessary:
[Device Drivers] / [Input device support] / [Device Drivers] / [Input device support] /
[Event interface] [Miscellaneous devices]
/ [User level driver support]

3
eGTouch Linux Programming Guide v2.5N
2021/03/12

Necessary:
[Device Drivers] / [HID Devices] / [Device Drivers] / [HID Devices] /
[/dev/hidraw raw HID device support] Special HID drivers / HID Multitouch panels
( for USB Interface ) ( If Kernel Version 3.0 upwards
& for USB Interface )

Remove:
[Device Drivers] / [Input device support] /
[Touchscreens] / [USB Touchscreen Driver]
( PID 0001 USB controller)

4
eGTouch Linux Programming Guide v2.5N
2021/03/12

2.2 Conditions to patch kernel source code


If your system does not fulfill the conditions described below, please ignore this
section.

If your system meets all below two conditions, please refer to Appendix 10-1 to
do kernel blacklist patch first, or driver would NOT be functional.
1. Interface USB
2. X.org version < 1.8.7 or no X-window

If your system meets all below three conditions, please refer to Appendix 10-2 to
do kernel HIDCORE patch first, or driver would NOT be functional.
1. Interface USB
2. Kernel version 3.8.x to 3.12.x
3. ControllerType Resistive or SCAP

2.3 Check device


1.) If you did above modification, please rebuild your kernel to make it effect.
2.) After that, you could check those kernel functions enable or not through below steps.
All interface.
a. UINPUT device node
You should see uinput under /dev/input/uinput or /dev/uinput.
For example:

USB interface only.


b. hidraw device node
As the usb device is plug-in, there would be a hidraw node generated under /dev

c. USB touch device handlers

5
eGTouch Linux Programming Guide v2.5N
2021/03/12

Type command “cat /proc/bus/input/devices” and see the result.


If you need and have done the source code patch, you would see a blank content
behind the Handlers item.

6
eGTouch Linux Programming Guide v2.5N
2021/03/12

Sec 3: Install Driver Package

3-1 Install Process


Before running install setup script, please plug-in the controller first. Then you could execute
script file setup.sh to automatically install driver.
Syntex:
sh setup.sh # To install the eGTouch driver.
sh setup.sh uninstall # To remove the eGTouch driver.
You could also complete these steps manually.
1. Decompress eGTouch package which contains:
a) eGTouchD: a daemon service driver for EETI touch controller.
b) eGTouchL.ini: a parameter list loaded by driver
c) GetEvent.c: a sample code describes how to read EETI input event.
If you have X-window, you may also be available for these:
d) eGTouchU: a X-window utility tool for eGTouchD (x86 only)
e) eCalib: a command line X-window calibration tool.
f) 52-egalax-virtual.conf X-window configure file for recognizing EETI touch
2. Place “eGTouchL.ini” into Linux system directory “/etc/eGTouchL.ini” where driver
would load it. We can change driver behavior by modifying this file. The detail
descriptions of parameters are described in Section 5. ( You can see brief
definitions in eGTouchL.ini )
3. Place eGTouchD , eGTouchU (x86 only) and eCalib (need X-window) under
/usr/bin.
4. In general Linux distribution, please edit /etc/rc.local ( /etc/rc.d/rc.local in RedHat or
/etc/init.d/boot.local in Suse ), to place /usr/bin/eGTouchD execution in /etc/rc.local to
make eGTouchD execute at system boot.

7
eGTouch Linux Programming Guide v2.5N
2021/03/12

5. To blacklist usbtouchscreen module run from the beginning of system operation. You
could also manually modify /etc/modprobe.d/blacklist.conf to add usbtouchscreen
into blacklist.

### Beginning: blacklist usbtouchscreen ###


blacklist usbtouchscreen
### End: blacklist usbtouchscreen ###

6. If Xorg Version is 1.8.7 upwards, put 52-egalax-virtual.conf xorg rule file into
/usr/share/X11/xorg.conf.d folder

7. After launching eGTouchD with device plugged, check /proc/bus/input/devices file


and you will find two virtual devices. Like below figures:

We could check event node which was assigned to the virtual device and read/get
input event through this device node, e.g. /dev/input/eventX.

8
eGTouch Linux Programming Guide v2.5N
2021/03/12

3-2 Tools
As you have X-window, these tools are available for use.
Please execute these tools under “root” permission!
eGTouchU The tool eGTouchU is a utility tool which could help you modify
x86 system only driver’s parameter through UI. The detail descriptions please refer to the
document “EETI eGTouch Utility Guide” in driver package.
eCalib The tool eCalib is a calibration tool with command line. Please type
“eCalib -h” to see the usage content.

9
eGTouch Linux Programming Guide v2.5N
2021/03/12

Sec 4: Touch Input Event Sequence

The eGTouchD daemon sends input event through kernel feature UINPUT so that the
client program can get these events from /dev/input/eventX.

4-1 Two different event sequences


The eGTouchD daemon would report event based on different kernel version.

1. kernel version is 2.6.36 upwards:


Multi-touch Protocol Type B
ABS_MT_SLOT 0
ABS_MT_TRACKING_ID 0
ABS_MT_POSITION_X x[0]
ABS_MT_POSITION_Y y[0]
ABS_MT_SLOT 1
ABS_MT_TRACKING_ID 1
ABS_MT_POSITION_X x[1]
ABS_MT_POSITION_Y y[1]
you can see the detailed rule described in /Documentation/input/multi-touch-protocol.txt
under Linux kernel source code.

2. kernel version is 2.6.35 downwards:


EETI protocol: Standard mouse event and custom extra event
Type = EV_KEY Type = EV_KEY
Code = BTN_LEFT Code = BTN_EXTRA
Value = left mouse button state of first point, Value = the touch state of second point,
1: pen down / 0: life off. 1: pen down / 0: lift off.
Type = EV_ABS Type = EV_ABS
Code = ABS_X Code = ABS_RX
Value = the X axis position of first point. Value = the X axis position of second point.
The range is from 0 to 4095. The range is from 0 to 4095
Type = EV_ABS Type = EV_ABS
Code = ABS_Y Code = ABS_RY
Value = the Y axis position of first point. Value = the Y axis position of second point.
The range is from 0 to 4095. The range is from 0 to 4095.

10
eGTouch Linux Programming Guide v2.5N
2021/03/12

Type = EV_SYNC
Code = SYN_REPORT
Value = 0
A Sync report event, all data will be valid after this event is received.

4-2 How to read touch event


EETI provide a sample code GetEvent.c to show how the event sequence behaves. Please
compile the sample code and execute it corresponding to the event node ( /dev/input/eventX ).
You would see the event sequence as panel is touched and design your own application based
on this input sequence as well

11
eGTouch Linux Programming Guide v2.5N
2021/03/12

Sec 5: eGTouchL.ini Parameter Explanations

The file eGTouchL.ini has a parameter list which would be loaded by driver. Driver’s
behavior could be changed by these parameters. Please DON’T modify the front title as
setting up eGTouchL.ini.

5-1 Parameter Table


This table describe the detailed usage of all parameters. There is also a simple
description in eGTouchL.ini.

 DebugEnableBits Debug message you want to show.


0 Close all Debug
1 Print initialization debug message [Default]
FFFF Open all Debug
F
 ShowDebugPosition Position you want to show/store Debug message
0 Print in file located at /tmp [Default]
1 Print in terminal
2 Print in above both

 DeviceNums How many devices you want to plug-in to the system. If you
want more than one device, please modify this value.
1 Only one device [Default]
2-10 More than one device. [Max = 10]

 Baudrate Choose the BaudRate

0 Auto detect Baudrate [Default]


X Set Baudrate to X bps. ( PCAP72: 57600 , Resis: 9600 )
 ScanInterface Choose scan interface
0 Scan all interface [Default] ( USB / RS232 / PS/2 )
1 Scan USB interface only.
2 Scan UART interface only.
3 Scan PS/2 interface only.
 ScanDevStartDelayTime Driver booting delay time
0 No delay [Default]
X Delay X millisecond to start driver.
 SerialPath RS232 Serial Path

12
eGTouch Linux Programming Guide v2.5N
2021/03/12

default Default path /dev/ttySX ( X could be equals to 0-10 ) [Default]


/dev/serial/t Customized path. Please type in your specific serial path accordinating to the
tyS0 form.
 SupportPoints The amount of points you want to report
(This is also confined by Controller)
0 No point
1 Single-touch
>=2 Multi-touch [Default = 10]
 Direction Change the X and Y direction
0 Don’t make any invert [Default]
1 Invert X
2 Invert Y
3 Invert both X and Y
4 Swap X and Y
 Orientation Change the orientation
0 0 degree [Default]
1 90 degree
2 180 degree
3 270 degree
 EdgeCompensate Do edge compensate
0 Disable [Default]
1 Enable
EdgeLeft, EdgeRight Edge compensate value
EdgeTop, EdgeBottom
X If equals to 100, it means no change.
If you set Left=50, you’ll see the left-edge points are shrinks inward. And vice
versa. [Min 50 - 150 Max] [Default = 100]
 HoldFilterEnable Filter out constant touch or not
0 Disable [Default]
1 Enable
HoldRange Constant touch valid area
X ±X range of the point which would lead to constant touch
[Min 0 - 50 Max] [Default = 10]

 SplitRectMode Split the display into Specific Rect. Touch would just show on the
specific Rect.
0 No change (Full Display) [Default]
1-8 Driver in-built split Rect

13
eGTouch Linux Programming Guide v2.5N
2021/03/12

2 1 5
7 8
3 4 6
9 Customized Rect.
CustomRectLeft Theses parameters are valid as SplitRectMode=9. You can
CustomRectRight customize the Rect by these parameters.
CustomRectTop
CustomRectBottom
0-4095 Four sides of the customized Rect

 MonitorName Monitor Name


default Use for mapping touch data output to specific monitor.
null Check monitor name by command "xrandr", example: "eDP1".
If there’s no roation and multi monitor requirement, just ignore it.
Note: if you find your monitor name will change after suspend resume.
You can set "eDP*", and then driver will search correct monitor number.
 DetectRotation Enable: Driver would map its coordinate corresponding to X
( Only for x86 system ) window rotation or monitor status change. *Please see Sec 6.
Disable: If there’s no roation and multi monitor requirement, just
disable it.
0 Disable [Default]
1 Enable
 ReportMode Set different report type
1 Normal Mode. Report point normally. [Default]
2 Click on Touch. Only report point as touch down.
3 Click on Release. Only report point as touch up.
 EventType Set events report type
0 Auto detect mode
1 Single touch mode ( if mouse cursor is disapeared, please try set EventType to 1 )
2 Multi touch even type mode
 BtnType Set EETI protocol BtnType
0 Report single event as BTN_LEFT. [Default]
1 Report single event as ABS_PRESSURE. (Generally for Tslib)
2 Report single event as BTN_TOUCH.
 RightClickEnable Report mouse Right Click after constant touch for a while
0 Disable Right Click
1 Enable Right Click [Default]
RightClickDuration Constant touch duration to trigger Right Click
X X milliseconds [Default = 1500]

14
eGTouch Linux Programming Guide v2.5N
2021/03/12

RightClickRange Valid area of trigger-RightClick constant touch

X ±X range of the point would lead to constant touch for RightClick


[Min 0 - 50 Max] [Default = 10]
 BeepState Make a beep sound as touch *Please see Sec 6-3.

0 Disable Beep
1 Make a beep sound as ”Touch Down”
2 Make a beep sound as ”Touch Up”
3 Make a beep sound as both two above conditions.
BeepDevice Choose the beep sound device

0 No device
1 Send beep sound by from system buzzer
2 Send beep sound by from sound card ( Only for x86 system )
3 Send beep sound from both devices.
BeepFreq You can modify buzzer beep frequency here.

X (Only for buzzer) The buzzer beep frequency. [Default = 1000]

BeepLen You can modify buzzer beep time length here.

X (Only for buzzer) The buzzer beep time length (ms). [Default = 200]

 VKEYEnable Enable this option if there’s virtual key on your touch sensor.
0 Disable [Default]
1 Enable
VKEYReportMod Virtual Key Sensitivity.
X Smaller value means more sensitive. On the other hand, larger is less sensitive
VKEY_X Y 1. The value of X refer to the vkey package reported by
controller as touching the specified virtual key on your
sensor.
2. The value of Y refer to the keyevent code in input.h which
you want to report to system. You can choose the keyevent
you want and fill in the code.
Example A: 1. As controller report vkey package [0], we’ll send keyevent
VKEY_0 139 code [139] to system.
2. The event code [139] in input.h refers to MENU_KEY.
Note: 139 is a decimal number.

15
eGTouch Linux Programming Guide v2.5N
2021/03/12

Example B: 1. You can fill in Hex number in Y by adding a symbol [0x]


VKEY_1 0x160 before the number.
2. As controller report vkey package [1], we’ll send keyevent
code [0x160] to system
The event code [0x160] in input.h refer to KEY_OK.

Note: If you’re not sure controller’s vkey package value, please contact EETI vendor.

16
eGTouch Linux Programming Guide v2.5N
2021/03/12

Sec 6: Annotation

6-1 DetectRotation Note


eGTouch driver support detect monitor rotation and multi monitor mapping. For enable
these features, eGTouch driver have to be executed after X-server is ready( We use Xlib to do
detection ), and system need support these commands: ”xrandr” and ”xinput”.

We recommand use lightdm to startup eGTouch driver until now, if your system not using
lightdm, please install lightdm first. You can install by this command: ”apt-get install lightdm”.
Since the ready time sequence of Xlib is different among diverse startup. We’re sorry that we
couldn’t provide solution correspond to all startup. If there’s any further problem as setting up
please contact us for technical support.

Notice:
When you execute ”setup.sh ”to install eGTouch driver, please set ”y” to enable functions.

And remember set ”MonitorName” in /etc/eGTouchL.ini

You can check monitor name by command "xrandr".

6-2 Rotation and Beep for Embedded System


If you are using an embedded system ( ex: ARM CPU), and you need support for rotation
detection. There’s a necessary condition: Xrandr lib support since eGTouch detect rotation
event by Xrandr lib.

And so on. If you are using an embedded system ( ex: ARM CPU), you need support for sound
card beep. There’s a necessary condition: ALSA lib support since eGTouch send beep sound
by ALSA lib.

If you need this support and your system got target library, please contact us for a customized
driver. Thanks.

17
eGTouch Linux Programming Guide v2.5N
2021/03/12

Sec 7: Multi-Monitor Setting

7-1 Numerous Devices


If you’re going to use numerous devices, please do remember to modify the parameter
“DeviceNums” in the ini file.
For example: If you’ve plug two EETI devices on your system, please modify the parameter as
below:
DeviceNums 2

After modifying the parameter, please reboot your system or restart driver to make it valid.

7-2 Monitor Name


After setting 7-1 Numerous Devices and reboot system or restart driver, /etc/eGTouchL.ini will
have two devices configuration, please make sure MonitorName and DetectRotation are
setting correctly by each device.
For example, you can get monitor name via $ xrandr and set it to the corresponding device,
and check DetectRotation is set to 1, and set the second device as the same way.

After modifying the parameter, please reboot your system or restart driver to make it valid.

18
eGTouch Linux Programming Guide v2.5N
2021/03/12

7-3 Calibration Method.


If you are using PCAP devices, it is no need to do calibration, if not, please refer to the below
statement.
The calibration tool eCalib currently does not support multi-monitor, you may have to calibrate
your touch controller one by one.
For example, if you are using two touch controller and monitor, please disconnect your second
monitor and touch controller, than do calibration and disconnect first monitor and controller
after calibrating done, than reconnect second monitor and touch controller to your system, do
calibration again, reconnect all of your monitors and controllers after calibrating done.

19
eGTouch Linux Programming Guide v2.5N
2021/03/12

Sec 8: FAQ

8-1 Touch not working


1. Check connection of controller.
For USB interface: $ dmesg | grep eGalax
[PCAP example]

[Resistant touch example]

For UART interface: $ dmesg | grep tty


Find system current ttyS inputs.

Use hexdump and touch screen, if connection is OK, it will print some information.
$ sudo hexdump /dev/ttySX , in this example, X should be 0 or 1.

If you have trouble in this step, please check the hardware connection of your device
and controller.

2. Check eGTouch driver status.


$ ps –ef | grep eGTouchD

If eGTouchD is not running, please running eGTouchD manually. $ sudo eGTouchD

3. Check input device has been created.


$ cat /proc/bus/input/devices | grep eGalax To see is there any eGalaxTouch
Virtual Device in list.

20
eGTouch Linux Programming Guide v2.5N
2021/03/12

[PCAP example]

[Resistant touch example]

If you have trouble in this step, please check the required modules have been installed
correctly. (Refer to 2.1 Check kernel module)
If you are using UART interface, please also have a check to 8.5 section.

4. Check input data flow.


Use evtest to get the data from input device, (Installation: $ sudo apt-get install evtest)
d Select the respond device as below example. $ sudo evtest
[PCAP example] Select eGalax Virtual Device for Touch and touch screen.

[Resistant touch example] Select eGalax Virtual Device for Single and touch screen.

If you see data printing from screen, you may check has inbox touch driver has been
blocked correctly. (Refer to 2.2 section)
If you do not see data printing from screen, please refer to 9.1 section, describe your
issue and contact us.

21
eGTouch Linux Programming Guide v2.5N
2021/03/12

8-2 Touch position and direction don’t match rotated display


1. Set Orientation value in eGTouchL.ini to match your using scenario.

2. Reboot device.

8-3 OS can not map touch position to screen position


Some Linux embedded system do not have display server (X, Wayland..), so the resolution
of touch input cannot be mapped to screen, in this case, you may need to specific your screen
resolution manually, please follow the below steps.
1. Get screen resolution, and set resolution manually.
(You can get screen resolution via $ xrandr)
2. For example, if your resolution is 800x600, add ResolX and ResolY to eGTouchL.ini

3. Reboot device.

22
eGTouch Linux Programming Guide v2.5N
2021/03/12

8-4 Touch is working, but click some items without reaction


Some desktops of Linux distribution have compatible issue to multi-touch event. In this case,
connect touch device to other system, and observe is it can reproduce at the different system.
If so, please upgrade your system or change to other system.
If you are using PCAP and you do not have multi-touch requirement, you also can change
event type to single event, for details, please refer to 5.1 section.

8-5 eGTouchD can NOT find UART interface device


Check the setting of ScanInterface and SerialPath in eGTouchL.ini, please try to change
ScanInterface setting to 2 and assign serial path with your input path, the definition of
ScanInterface refer to 5.1 section, to figure out serial path can refer to 8.1 section.

After modifying the parameter, please reboot your system or restart driver to make it valid.

8-6 My UART device receive unexpected data from eGTouchD


As default, eGTouchD will scan USB and UART interface to find touch controller, eGTouchD
use Vendor ID (VID) and Product ID (PID) to interpret USB interface touch device and send
some data to UART to interpret UART interface touch device, this issue can be avoided by the
below setting.
If you are using USB interface touch controller, please modify the ScanInterface to 1 in
eGTouchL.ini, than eGTouchD will skip to scan UART interface.
If you are using UART interface touch controller, please refer to 8.5 section to specify
ScanInterface and SerialPath in eGTouchL.ini, eGTouchD will only scan specified serial path.
After modifying the parameter, please reboot your system or restart driver to make it valid.

23
eGTouch Linux Programming Guide v2.5N
2021/03/12

8-7 GNOME Gesture


GNOME 3.14 Support Touchscreen gestures for application and for system-wide actions.
If you’d like to disable GNOME Gesture for your KIOSK system.
You can install gnome-shell-extensions-tool, and use EETI disable-gestures setup.sh
script to install “disable-gestures” extensions.
./setup_ges.sh: #Install Gnome Extension: Disable-Gnome-Gesuture.
./setup_ges.sh uninstall: #Uninstall Gnome Extension: Disable-Gnome-Gesuture

After install “disable-gestures” extensions, you can use command “gnome-shell-ex


tension-tool” to enable & disable this extensions.

24
eGTouch Linux Programming Guide v2.5N
2021/03/12

Sec 9: Support

9-1 Need Support From EETI


If you have any problems when running the eGTouchD driver and the above FAQs still
cannot solve your problem, please help to collect debugging information and provide a
description of your issue. Collecting required information according to the following steps can
help us understand your problem and provide assistance as soon as possible.
Please run eetiGetInfo.sh script as root to collect debugging information, the information
may include your system information, kernel log, driver setting and driver information, we only
use these information to assist your question.

This may takes few seconds, and you will find an eeti.tar.gz file in your current path.
Please attach eeti.tar.gz, describe your issue and contact us by mail: [email protected]

25
eGTouch Linux Programming Guide v2.5N
2021/03/12

Sec 10: Appendix

If your system’s X-window version is 1.8.7 upwards, kernel version is not 3.8 to 3.12,
and EETI touch controller type is not USB Resistive/SCAP touch, please IGNORE this
section.

10-1 Kernel patch: ( for X-window version < 1.8.7 )


If your system meets all below two conditions:
1. Interface USB
2. X.org version < 1.8.7 or no X-window

Please refer below instructions to do kernel blacklist patch, or driver would NOT be
functional.
Please append following RED section into your source code.
If your kernel is 2.6.33 downwards, please follow section 8-1.1
If your kernel is 2.6.34 upwards, please follow section 8-1.2

26
eGTouch Linux Programming Guide v2.5N
2021/03/12

10-1.1 kernel 2.6.33 downwards

1. / S o u r c e C o d e / d r i v e r s / i n p u t / e v d e v . c
static struct input_device_id evdev_blacklist[] =
{ /* Added by EETI */
{
.flags = INPUT_DEVICE_ID_MATCH_BUS | INPUT_DEVICE_ID_MATCH_VENDOR,
.bustype = BUS_USB,
.vendor = 0x0EEF,
},
{}, /* Terminating entry */
};

static struct input_handler evdev_handler = {


.event = evdev_event,
.connect = evdev_connect,
.disconnect = evdev_disconnect,
.fops = &evdev_fops,
.minor = EVDEV_MINOR_BASE,
.name = "evdev",
.id_table = evdev_ids,

.blacklist = evdev_blacklist, /* Added by EETI */


};

27
eGTouch Linux Programming Guide v2.5N
2021/03/12

2. / SourceCode/ driv ers/ i nput/ mou sed ev. c


static struct input_device_id mousedev_blacklist[] =
{ /* Added by EETI */
{
.flags = INPUT_DEVICE_ID_MATCH_BUS | INPUT_DEVICE_ID_MATCH_VENDOR,
.bustype = BUS_USB,
.vendor = 0x0EEF,
},
{
.flags = INPUT_DEVICE_ID_MATCH_BUS | INPUT_DEVICE_ID_MATCH_VENDOR,
.bustype = BUS_VIRTUAL,
.vendor = 0x0EEF,
},
{}, /* Terminating entry */
};

static struct input_handler mousedev_handler = {


.event = mousedev_event,
.connect = mousedev_connect,
.disconnect = mousedev_disconnect,
.fops = &mousedev_fops,
.minor = MOUSEDEV_MINOR_BASE,
.name = "mousedev",
.id_table = mousedev_ids,
.blacklist = mousedev_blacklist, /* Added by EETI */
};

28
eGTouch Linux Programming Guide v2.5N
2021/03/12

3. / S o u r c e C o d e / d r i v e r s / i n p u t / j o y d e v . c
static const struct input_device_id joydev_blacklist[] =
{
{
.flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT,
.evbit = { BIT_MASK(EV_KEY) },
.keybit = { [BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH) },
}, /* Avoid itouchpads and touchscreens */
{
.flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT,
.evbit = { BIT_MASK(EV_KEY) },
.keybit = { [BIT_WORD(BTN_DIGI)] = BIT_MASK(BTN_DIGI) },
}, /* Avoid tablets, digitisers and similar devices */
{
.flags = INPUT_DEVICE_ID_MATCH_BUS | INPUT_DEVICE_ID_MATCH_VENDOR,
.bustype = BUS_VIRTUAL,
.vendor = 0x0EEF,
}, /* Added by EETI */
{} /* Terminating entry */
};

static struct input_handler joydev_handler = {


.event = joydev_event,
.connect = joydev_connect,
.disconnect = joydev_disconnect,
.fops = &joydev_fops,
.minor = JOYDEV_MINOR_BASE,
.name = "joydev",
.id_table = joydev_ids,
.blacklist = joydev_blacklist,
};

29
eGTouch Linux Programming Guide v2.5N
2021/03/12

10-1.2 kernel 2.6.34 upwards

1. / S o u r c e C o d e / d r i v e r s / i n p u t / e v d e v . c
static bool evdev_match(struct input_handler *handler, struct input_dev *dev)
{
/* Avoid EETI USB touchscreens */
#define VID_EETI 0x0EEF
if ((BUS_USB == dev->id.bustype) && (VID_EETI == dev->id.vendor))
return false;
return true;
}

static struct input_handler evdev_handler = {


.event = evdev_event,
.match = evdev_match, /* Added by EETI*/
.connect = evdev_connect,
.disconnect = evdev_disconnect,
.fops = &evdev_fops,
.minor = EVDEV_MINOR_BASE,
.name = "evdev",
.id_table = evdev_ids,
};

2. / SourceCode/ driv ers/ i nput/ mou sed ev. c


static bool mousedev_match(struct input_handler *handler, struct input_dev *dev)
{
/* Avoid EETI USB touchscreens */
#define VID_EETI 0x0EEF
if ((BUS_USB == dev->id.bustype) && (VID_EETI == dev->id.vendor))
return false;
/* Avoid EETI virtual devices */
if ((BUS_VIRTUAL == dev->id.bustype) && (VID_EETI == dev->id.vendor))
return false;
return true;
}
static struct input_handler mousedev_handler = {
.event = mousedev_event,

30
eGTouch Linux Programming Guide v2.5N
2021/03/12

.match = mousedev_match, /* Added by EETI */

.connect = mousedev_connect,
.disconnect = ousedev_disconnect,
.fops = &mousedev_fops,
.minor = MOUSEDEV_MINOR_BASE,
.name = "mousedev",
.id_table = mousedev_ids,
};

3. / S o u r c e C o d e / d r i v e r s / i n p u t / j o y d e v . c
static bool joydev_match(struct input_handler *handler, struct input_dev *dev)
{
/* Avoid touchpads and touchscreens */
if (test_bit(EV_KEY, dev->evbit) && test_bit(BTN_TOUCH, dev->keybit))
return false;
/* Avoid tablets, digitisers and similar devices */
if (test_bit(EV_KEY, dev->evbit) && test_bit(BTN_DIGI, dev->keybit))
return false;

/* Avoid EETI virtual devices */


#define VID_EETI 0x0EEF
if (( BUS_VIRTUAL == dev->id.bustype) && (VID_EETI == dev->id.vendor))
return false;
return true;
}

static struct input_handler joydev_handler = {


.event = joydev_event,
.match = joydev_match,
.connect = joydev_connect,
.disconnect = joydev_disconnect,
.fops = &joydev_fops,
.minor = JOYDEV_MINOR_BASE,
.name = "joydev",
.id_table = joydev_ids,
};

31
eGTouch Linux Programming Guide v2.5N
2021/03/12

10-2 Kernel patch ( kernel 3.8~3.12 with USB resistive )


If your system meets all below three conditions:
1. Interface USB
2. Kernel version 3.8.x to 3.12.x
3. ControllerType Resistive or SCAP

Please comment the following RED section in your source code.


/So urc eC o de/ dri v ers/ hi d/hid -co re . c
bool hid_ignore(struct hid_device *hdev)
{

switch (hdev->vendor) {

/*case USB_VENDOR_ID_DWAV:*/
/* These are handled by usbtouchscreen. hdev->type is probably
* HID_TYPE_USBNONE, but we say !HID_TYPE_USBMOUSE to match
* usbtouchscreen. */
/*if ((hdev->product == USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER ||
hdev->product == USB_DEVICE_ID_DWAV_TOUCHCONTROLLER) &&
hdev->type != HID_TYPE_USBMOUSE)
return true;
break;*/

}

}

32

You might also like