Firmware of Silead Touchscreen Controller for Jumper EZpad 6 Pro.
Revisión | 9bab47cd0b9a901383eddb0545575ed7788d25f1 (tree) |
---|---|
Tiempo | 2016-06-09 01:57:35 |
Autor | Gregor Riepl <onitake@gmai...> |
Commiter | Gregor Riepl |
Merge pull request #18 from bernhardu/master
Some more description to get the Surftab twin 10.1 to an usable state.
@@ -35,7 +35,7 @@ Device list | ||
35 | 35 | | EastRising | ER-TPC050-1 | yes | [firmware/eastrising/er-tpc050-1](firmware/eastrising/er-tpc050-1)| |
36 | 36 | | Trekstor | SurfTab wintron 7.0 | yes | [firmware/trekstor/surftab7old](firmware/trekstor/surftab7old) | |
37 | 37 | | Trekstor | SurfTab wintron 7.0 (ST70416-6) | yes | [firmware/trekstor/surftab7new](firmware/trekstor/surftab7new) | |
38 | -| Trekstor | SurfTab twin 10.1 (ST10432-8) | no | [firmware/trekstor/surftab-twin-10.1-ST10432-8](firmware/trekstor/surftab-twin-10.1-ST10432-8)| | |
38 | +| Trekstor | SurfTab twin 10.1 (ST10432-8) | yes | [firmware/trekstor/surftab-twin-10.1-ST10432-8](firmware/trekstor/surftab-twin-10.1-ST10432-8)| | |
39 | 39 | | Utok | i800 | yes | [firmware/utok/i800](firmware/utok/i800) | |
40 | 40 | | RCA | Cambio W101 V2 10.1" tablet | yes | [firmware/rca/w101v2](firmware/rca/w101v2) | |
41 | 41 | | Onda | V891w | no | [firmware/onda/v891w](firmware/onda/v891w) | |
@@ -119,6 +119,8 @@ There are normally several blocks of data with the same pattern that | ||
119 | 119 | follow. Copy all of them into a new file and call it firmware.fw. |
120 | 120 | This should be the firmware image for your device. |
121 | 121 | |
122 | +See [here](firmware/trekstor/surftab-twin-10.1-ST10432-8/README.md#command-to-find-the-offsets-used-for-extraction) an example with some help from grep and dd. | |
123 | + | |
122 | 124 | |
123 | 125 | gslx680-acpi |
124 | 126 | ------------ |
@@ -19,32 +19,87 @@ trekstor/surftab-twin-10.1-ST10432-8 | ||
19 | 19 | | Mirrored horizontally | Yes | |
20 | 20 | | Mirrored vertically | No | |
21 | 21 | | Axes swapped | No | |
22 | -| Comments | ./fwtool -c firmware.fw -m 1680 -w 1895 -h 1275 -t 10 -f yflip silead_ts.fw | | |
22 | +| Comments | ./fwtool -c GSL_TS_CFG_THREE.h -2 -m 1680 -w 1895 -h 1275 -t 10 -f yflip silead_ts.fw | | |
23 | 23 | |
24 | 24 | |
25 | 25 | Details: |
26 | 26 | -------- |
27 | - | |
28 | 27 | The driver used for extraction is taken from the preinstalled Windows 10 installation. |
29 | 28 | |
30 | -Tested with gslx680_ts_acpi with vanilla git kernel 4.6-10744-gc543673. | |
31 | -Works in plain X-server with xterm and e.g. text mode midnight commander. | |
32 | -When using SDDM login manager or Plasma desktop "clicking" is not recognised. | |
33 | -However dragging windows is possible. | |
29 | +Tested with gslx680_ts_acpi with Debian kernel linux-image-4.6.0-1-amd64 (4.6.1-1). | |
34 | 30 | |
35 | 31 | |
36 | 32 | Command to convert GSL_TS_CFG_THREE.h |
37 | 33 | ------------------------------------- |
38 | - tools/untscfg firmware/trekstor/surftab-twin-10.1-ST10432-8/Windows_System32_drivers/GSL_TS_CFG_THREE.h firmware/trekstor/surftab-twin-10.1-ST10432-8/firmware.fw | |
39 | - | |
40 | - | |
41 | -Convert the firmware.fw: | |
42 | --------------------------- | |
43 | 34 | cd tools |
44 | - ./fwtool -c ../firmware/trekstor/surftab-twin-10.1-ST10432-8/firmware.fw -m 1680 -w 1895 -h 1275 -t 10 -f yflip ../firmware/trekstor/surftab-twin-10.1-ST10432-8/silead_ts.fw | |
35 | + ./fwtool -c ../firmware/trekstor/surftab-twin-10.1-ST10432-8/Windows_System32_drivers/GSL_TS_CFG_THREE.h -2 -m 1680 -w 1895 -h 1275 -t 10 -f yflip ../firmware/trekstor/surftab-twin-10.1-ST10432-8/silead_ts.fw | |
45 | 36 | cd - |
46 | 37 | |
47 | 38 | |
39 | +Qt5 programs not working? | |
40 | +------------------------- | |
41 | +In my tests at first taps were not recognized in Qt5 based programs like | |
42 | +Plasma or LXQt desktop, or SDDM login manager. | |
43 | + | |
44 | +This was because following conditions were met: | |
45 | +- Debian included the libinput X input drivers and have currently higher priority than Evdev drivers. | |
46 | + See /var/log/Xorg.0.log: Using input driver 'libinput' for 'Silead GSLx680 Touchscreen' | |
47 | +- Qt5 is in a version smaller than 5.6.0 installed. | |
48 | +- "xinput list --long 11" reports "Abs X" valuators. | |
49 | + | |
50 | +But Qt5 expected "Abs MT Position X" valuators. | |
51 | + | |
52 | +Other programs based on different toolkits are not affected. | |
53 | + | |
54 | +Upstream Qt5 fixed this issue in following links: | |
55 | +- https://bugreports.qt.io/browse/QTBUG-48279 | |
56 | +- http://code.qt.io/cgit/qt/qtbase.git/commit/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp?id=462f355e4fb16cc7a1838fa2dda0f763eee58c84 | |
57 | + | |
58 | +Getting source for libqt5gui5_5.5.1+dfsg-17_amd64.deb, applying the above patch, rebuilding | |
59 | +and reinstalling the modified package solves the issue. | |
60 | + | |
61 | +However hinting the X-server to use the Evdev driver would be easier (see below 99-calibration.conf). | |
62 | + | |
63 | + | |
64 | +Calibration (evdev): | |
65 | +-------------------- | |
66 | +Run "xinput_calibrator". It outputs a config snippet for the X-server: | |
67 | + | |
68 | +/usr/share/X11/xorg.conf.d/99-calibration.conf | |
69 | + Section "InputClass" | |
70 | + Identifier "calibration" | |
71 | + MatchProduct "Silead GSLx680 Touchscreen" | |
72 | + Option "Calibration" "40 1880 0 1270" | |
73 | + Option "SwapAxes" "0" | |
74 | + Driver "evdev" | |
75 | + EndSection | |
76 | + | |
77 | +For fine tuning one can also test the values first with this command: | |
78 | + xinput set-int-prop 11 "Evdev Axis Calibration" 32 40 1880 0 1270 | |
79 | + | |
80 | + | |
81 | +Calibration (libinput): | |
82 | +----------------------- | |
83 | +Could not find any GUI to start with calibration. | |
84 | + | |
85 | +I had just following command to start: | |
86 | + xinput set-float-prop 11 "libinput Calibration Matrix" 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 | |
87 | + xinput set-float-prop 11 "libinput Calibration Matrix" 1.045 0.0 -0.015 0.0 1.045 -0.015 0.0 0.0 1.0 | |
88 | + | |
89 | +Like described in "man 5 xorg.conf", the Option "TransformationMatrix" "a b c d e f g h i": | |
90 | +- "a" and "e" specify the width and height | |
91 | +- "c" and "f" specify the x and y offset | |
92 | + | |
93 | +If you have usable values put make such a configuration: | |
94 | +/usr/share/X11/xorg.conf.d/99-calibration.conf | |
95 | + Section "InputClass" | |
96 | + Identifier "calibration" | |
97 | + MatchProduct "Silead GSLx680 Touchscreen" | |
98 | + Option "CalibrationMatrix" "1.045 0.0 -0.015 0.0 1.045 -0.015 0.0 0.0 1.0" | |
99 | + Driver "libinput" | |
100 | + EndSection | |
101 | + | |
102 | + | |
48 | 103 | Following is just for reference, if one wants to extract firmware from SileadTouch.sys: |
49 | 104 | --------------------------------------------------------------------------------------- |
50 | 105 |
@@ -98,7 +153,7 @@ Extract the firmware.fw files: | ||
98 | 153 | | firmware.fw_1 | Not tested, much smaller then the others. | |
99 | 154 | | firmware.fw_2 | Reacts to input, mouse pointer jumpy. | |
100 | 155 | | firmware.fw_3 | Reacts to input, mouse pointer jumpy. | |
101 | -| firmware.fw_4 | Works best, X < 15 are not reachable. | | |
156 | +| firmware.fw_4 | Works good. | | |
102 | 157 | |
103 | 158 | |
104 | 159 | Convert the firmware.fw_4: |