Touch screen is not working on Asus Eee Top ET1602

2,023 views
Skip to first unread message

Alex

unread,
Nov 29, 2011, 10:15:20 PM11/29/11
to Android-x86
Hi,

I already asked before, raising this question again.

I have tried the latest available version 3.2-RC2 - the same issue is
still there: the touch screen is not working, and as the new version
doesn't have a calibration screen, I cannot tell if it's better or
worse than before.
The fact is - the touch screen worked fine in the older versions! The
last known working one was 2.2-r2. What changed since then?

What could be done to figure out the cause of the problem and fix it?
Can someone advice please?

Thanks,
Alex


On Sep 7, 4:09 pm, Alex wrote:
> I've just tried 2.3-RC1, and found the touchscreen is broken again on
> the Eee Top, though it worked fine in 2.2-r2.
> Now it might be not too bad, as it works on a calibration screen, but
> when Android system loads the touchscreen is unresponsive.
> I see the driver being loaded (USB HID v1.01 Mouse [HID TOUCH HID
> Touch Panel] on usb-0000...), but the logcat shows "No input device
> calibration properties found for device HID TOUCH HID Touch Panel."

Касаткин Илья

unread,
Nov 30, 2011, 8:00:11 AM11/30/11
to Android-x86
Hi! It may help you.

This seems to be a problem that everybody is not answering but the
problem is relatively easy to fix. Of course once you have 3.2
installed and have a external keyboard connected, hit Alt-F1 to get a
command line. First find out what your touchpad is ...

Code:
less /proc/bus/input/devices
Find out what the Vendor ID and Product ID is for your touchsreen.
Then go to ..

Code:
cd /system/usr/idc
In there you will see other .idc files. Just copy one of the other idc
files and change the name to suit your touchscreen.

Code:
cp Vendor_0001_Product_0002.idc Vendor_1110_Product_2220.idc
Then all you have to do is reboot.

YuriZkit

unread,
Nov 30, 2011, 9:40:20 AM11/30/11
to andro...@googlegroups.com
I've done that on my T101MT, multitouch is activated, BUT it still work's as a big touchpad. Maybe it's just a calibration problem, but there are no one howto...


--
You received this message because you are subscribed to the Google Groups "Android-x86" group.
To post to this group, send email to andro...@googlegroups.com.
To unsubscribe from this group, send email to android-x86...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/android-x86?hl=en.


Daniel Hofer

unread,
Nov 30, 2011, 2:21:47 PM11/30/11
to Android-x86
Hello!

I also have this problem with my ET1602, and the idc file
(Vendor_1bfd_Product_1688.idc) didn't fix it.
I've also tried the patches suggested in http://comments.gmane.org/gmane.linux.kernel.input/19645
but without success.

Daniel

Alex

unread,
Dec 4, 2011, 8:37:07 PM12/4/11
to Android-x86
I have tried to add an .idc file this way. First of all - the /system/
usr/idc directory on my Android-x86 installation contained only a
couple of qwerty*.idc files, which don't seem to be suitable for a
touch screen. I have found one example here:
http://code.google.com/p/synergy-vendor/source/browse/trunk/incredible/system/usr/idc/synaptics-rmi-touchscreen.idc?r=47,
copied it as Vendor_1bfd_Product_1688.idc, but it didn't work. Also
tried a simple .idc file, which contained only these two lines (found
this info somewhere in the news group):
======
touch.deviceType = touchScreen
touch.orientationAware = 1
======
This didn't work either.

Can anyone provide an example of an .idc file for a touch screen,
which might work for my Eee Top?

Thanks,
Alex

Alex

unread,
Dec 5, 2011, 4:05:57 AM12/5/11
to Android-x86
Some more information.
I've tried to use build/target/board/generic_x86/GenericTouch.idc - no
luck either.

Tried to run getevent, got the following info:
============
events:
SYN (0000): 0000 0001 0003 0004
KEY (0001): 0110 0111 0112 0140 014a 014b
ABS (0003): 0000 value 0, min 0, max 4095, fuzz 0 flat 0
0001 value 0, min 0, max 4095, fuzz 0 flat 0
0002 value 21, min 0, max 4095, fuzz 0 flat 0
0003 value 4086, min 0, max 4095, fuzz 0 flat 0
MSC (0004): 0004
============

When I touch the screen, getevent detects the events. For example when
I click in the left bottom corner the following data is printed:

0004 0004 00090001
0001 0110 00000001
0003 0002 00000022
0003 0003 00000fef
0000 0000 00000000
0004 0004 00090001
0001 0110 00000000
0000 0000 00000000


Can anyone derive anything useful from this info?

Thanks,
Alex


On Dec 4, 5:37 pm, Alex <alp...@gmail.com> wrote:
> I have tried to add an .idc file this way. First of all - the /system/
> usr/idc directory on my Android-x86 installation contained only a
> couple of qwerty*.idc files, which don't seem to be suitable for a

> touch screen. I have found one example here:http://code.google.com/p/synergy-vendor/source/browse/trunk/incredibl...,


> copied it as Vendor_1bfd_Product_1688.idc, but it didn't work. Also
> tried a simple .idc file, which contained only these two lines (found
> this info somewhere in the news group):
> ======
> touch.deviceType = touchScreen
> touch.orientationAware = 1
> ======
> This didn't work either.
>
> Can anyone provide an example of an .idc file for a touch screen,
> which might work for my Eee Top?
>
> Thanks,
> Alex
>
> On Nov 30, 5:00 am, Касаткин Илья <amcool...@gmail.com> wrote:
>
>
>
>
>
>
>
> > Hi! It may help you.
>
> > This seems to be a problem that everybody is not answering but the
> > problem is relatively easy to fix. Of course once you have 3.2
> > installed and have a external keyboard connected, hit Alt-F1 to get a

> > command line. First find out what your touchpad is ...asus .idc

Alex

unread,
Dec 7, 2011, 9:20:32 PM12/7/11
to Android-x86
Forgot to mention one more bit. The touch device seems to be
registered properly in the EventHub. Here's what I see in the logcat:

I/EventHub( 1466): New device: id=6, fd=117, path='/dev/input/event5',
name='HID TOUCH HID Touch Panel', classes=0x80000004, configuration='/
system/usr/idc/Vendor_1bfd_Product_1688.idc', keyLayout='',
keyCharacterMap='', builtinKeyboard=false

As far as I understand, the flags are correct: device->classes ==
INPUT_DEVICE_CLASS_EXTERNAL | INPUT_DEVICE_CLASS_TOUCH

What is missing that stops the touch screen from working properly?
Where else should I look at?

Chih-Wei Huang, do you have any clues?

Thanks,
Alex

Alex

unread,
Dec 13, 2011, 7:14:24 PM12/13/11
to Android-x86
Well, looks like I have finally fixed it. Honeycomb is working on my
Eee Top now!
The problem seems to be caused by incorrect initialization of the
touch events somewhere on the low level (in the kernel or the touch
panel driver?). The scan codes in the events received by the Android
input services are ABS_Z instead of the ABS_X, ABS_RX instead of
ABS_Y, and BTN_MOUSE instead of BTN_TOUCH. So I've added these codes
in InputReader.cpp, and got the touchscreen working.

Here's my patch:
=======================================================
diff --git a/services/input/InputReader.cpp b/services/input/
InputReader.cpp
index 1ed5ad7..aa900e2 100644
--- a/services/input/InputReader.cpp
+++ b/services/input/InputReader.cpp
@@ -4904,6 +4904,7 @@ void SingleTouchInputMapper::process(const
RawEvent* rawEvent) {
case EV_KEY:
switch (rawEvent->scanCode) {
case BTN_TOUCH:
+ case BTN_MOUSE:
mAccumulator.fields |= Accumulator::FIELD_BTN_TOUCH;
mAccumulator.btnTouch = rawEvent->value != 0;
// Don't sync immediately. Wait until the next
SYN_REPORT since we might
@@ -4929,10 +4930,12 @@ void SingleTouchInputMapper::process(const
RawEvent* rawEvent) {
case EV_ABS:
switch (rawEvent->scanCode) {
case ABS_X:
+ case ABS_Z:
mAccumulator.fields |= Accumulator::FIELD_ABS_X;
mAccumulator.absX = rawEvent->value;
break;
case ABS_Y:
+ case ABS_RX:
mAccumulator.fields |= Accumulator::FIELD_ABS_Y;
mAccumulator.absY = rawEvent->value;
break;
=======================================================

The only minor issue: this change made the system detect the touch
events, but the touchscreen started working like a large touchpad.
This is not a big deal though. I've copied GenericTouch.idc found
under build/target/board/generic_x86 to /system/usr/idc/
Vendor_1bfd_Product_1688.idc on the Android system, and got a normally
working touchscreen.

The issue is solved!

It would be nice to have the problem fixed properly in the Android
repository for the future. My mapping of ABS_RX/ABS_Z to ABS_X/ABS_Y
is just a workaround specifically for this device, but I guess the
touch panel driver(?) needs to be fixed to send correct events
instead.

Alex

PS. Also found a bug in the screen timeout settings - selecting "Never
Timeout" option crashes the Settings app. I've fixed it by adding
another value for screen_timeout_values array in packages/apps/
Settings/res/values/arrays.xml. I'm not sure if that choice is handled
properly, so I just put 2000000000 there - it's not not "Never", but
23 days is long enough. :)

Mike C

unread,
Dec 14, 2011, 10:03:42 AM12/14/11
to Android-x86
Alex,

Seems like you did a great job solving two issues that were out for
quite a while.
Is there a way to do these fixes for a programming-nono like me? So
without compiling source code and other difficult stuff?

Thanks!

mike

Alex

unread,
Dec 14, 2011, 5:30:32 PM12/14/11
to Android-x86
Hi Mike,

On Dec 14, 7:03 am, Mike C <michel.cap...@gmail.com> wrote:
> Alex,
>
> Seems like you did a great job solving two issues that were out for
> quite a while.

Yeah, I've been trying to approach those touchscreen issues for a
while - wanted to upgrade the Android-x86 installation on my Eee Top.

> Is there a way to do these fixes for a programming-nono like me? So
> without compiling source code and other difficult stuff?

No, unfortunately the main change requires recompiling the whole
thing. Only the .idc file can be added later (though when installed in
a writable mode for this purpose, it has issues with WiFi - I've just
posted about this).

But I have uploaded my working ISO here: http://www.megaupload.com/?d=LSWGVHGM
Please let me know if it works for you.

Alex

Chih-Wei Huang

unread,
Dec 15, 2011, 6:33:39 AM12/15/11
to andro...@googlegroups.com
Hi Alex,
Good work. Interesting.

I suggest you try to revert commit 2653b718
of kernel 3.0.1 branch:

cd kernel/
git revert 2653b718

Then rebuild without your fix.
(rm $OUT/kernel first to ensure kernel be rebuilt)

Commit 2653b718 actually reverts c2c3489c,
which is suppose to fix the inverted issue of
touchpack driver.
But in froyo-x86 it didn't work as expect,
so I revert it.
Maybe we need it again in hc or ics?

2011/12/14 Alex <alp...@gmail.com>:

Mike C

unread,
Dec 15, 2011, 6:38:28 AM12/15/11
to Android-x86
Alex,

I installed your .iso on a usb stick but I could not run your version
on my AAO 110 with Hoda/eGalax touchscreen.

fyi:
getevent detects the touchpad as event 14 and the touchscreen as event
7. The whole touchscreen is detected but in the GUI it's not. It does
not matter which .idc file I use or non at all.

Good luck.

Mike

Alex

unread,
Dec 15, 2011, 9:07:30 PM12/15/11
to Android-x86
Hi Chih-Wei,

I saw the thread in the linux-input list where you guys discussed
this, but it sounded like that quirk needed to be removed to make
things work.
OK, I'll try to put it back.

Alex

Alex

unread,
Dec 15, 2011, 9:19:03 PM12/15/11
to Android-x86
Hi Mike,

On Dec 15, 3:38 am, Mike C <michel.cap...@gmail.com> wrote:
> Alex,
>
> I installed your .iso on a usb stick but I could not run your version
> on my AAO 110 with Hoda/eGalax touchscreen.

Oh, if you have some other device, my build will probably not work. It
is supposed to fix only the problem, which is specific to the ET1602
touchscreen.

> fyi:
> getevent detects the touchpad as event 14 and the touchscreen as event
> 7. The whole touchscreen is detected but in the GUI it's not. It does
> not matter which .idc file I use or non at all.

Yeah, I had something like this - the touchscreen was detected, and
getevent received some events, but apparently not the ones needed by
the touch input handler. You could try to figure out what events are
received by the getevent. I think they are supposed to look like this:
0003 0000 00000022
0003 0001 00000fef

These are ABS events with ABS_X and ABS_Y codes and corresponding
coordinates. In my case they were ABS_Z & ABS_RX instead.

>
> Good luck.
>
> Mike

Alex

Mike C

unread,
Dec 16, 2011, 4:04:23 AM12/16/11
to Android-x86
Alex,

I get similar events as you do when I touch the touch screen while
getevent is running. I can't be of much help other than do some
testing on my AAO 110/eGalax.
Please keep on finding a solution for the touchscreen issue, you seem
the be the one closest to solving it.

Mike

flatmax

unread,
Jan 22, 2012, 5:07:09 AM1/22/12
to Android-x86
Any more updates on getting touch working with the et1602 ?

I have also tried the idc fix - but it didn't work on any of the 3.2
versions nor the 4.0 EEE PC version.
I don't think I will try to git reversion and compilation option at
this point ...

any other methods ?

Matt

Alex

unread,
Jan 26, 2012, 8:24:10 PM1/26/12
to Android-x86
As megaupload.com was closed, but there is still interest in my build,
I have re-uploaded the ISO to MediaFire:
http://www.mediafire.com/?8gd829v696s6bux

Please note - that build is from the code almost 2 months old - there
were some recent changes, which are not included yet.

Alex

Jokester

unread,
Mar 5, 2012, 4:41:42 AM3/5/12
to andro...@googlegroups.com
Hi,
Tell me Alex, how are going things with the new ICS version?
Do your workarround still works (or is still needed) for the Android-X86-ICS version?

Thanks,
Jk

Holst

unread,
May 17, 2012, 4:52:12 PM5/17/12
to andro...@googlegroups.com
Hi Alex
 
Do you still have the iso image because I would like to try it on my et1602
(The file is not on mediafire anymore)
 
Thanks

Holst

unread,
May 17, 2012, 4:53:26 PM5/17/12
to andro...@googlegroups.com
Hi Alex
 
Do you still have the iso image, because I would like to try it on my et1602
 
Thanks

Den fredag den 27. januar 2012 02.24.10 UTC+1 skrev Alex:

Bryan Basil

unread,
Nov 28, 2012, 5:15:01 PM11/28/12
to andro...@googlegroups.com
After overwriting my libinput.so file in /system/lib with yours, x no longer starts.  I am left with a root@eeepc terminal instead of any startup processes or the android boot splash.  Any help?  Android 4.0 RC2 for eees.  Eee Top ET1602.

On Monday, August 13, 2012 9:36:28 AM UTC-7, Holst wrote:

Hi Daniel

I have build a new libinput.so lib where I have made the changes as described by Alex.

You can download and install the newest Android x86 4.0 rc2 version. After installation overwrite the installed libinput.so file in the /lib folder.

/Henrik

Bryan Basil

unread,
Nov 28, 2012, 5:31:50 PM11/28/12
to andro...@googlegroups.com


It looks like my libc.so is segfaulting.  I've reinstalled the OS several times, trying different methods.  From using a GUI file manager to using the terminal to mv or cp the files, nothing works.  Are you sure all I have to do is replace libinput.so with your file?  No other necessary steps?
Message has been deleted

Bryan Basil

unread,
Nov 30, 2012, 5:07:08 AM11/30/12
to Android-x86
I discovered the problem. I downloaded your libinput attachment from
within the Android x86 environment, and what I got was not in fact the
real .so file but rather a text file called libinput.so that contained
the html the browser should have used to fetch the file. After
thinking on it I downloaded it from Ubuntu and loaded it onto a flash
card, problem solved.

Alex

unread,
Dec 12, 2012, 10:53:24 PM12/12/12
to andro...@googlegroups.com
Sorry for not responding guys - I haven't been checking this group for a while.

Henrik, thank you for providing the fixed library - it works fine!

But I have just found out from another thread, that the tegav2 build has a better support for our Eee Top than the eeepc build. In fact android-x86-4.0-RC2-tegav2.iso has just worked for me out of the box! The touch screen works, and audio plays fine as well. So that looks like the ISO we have to use - finally this ET1602 touchscreen issue is officially fixed!

Alex

Reply all
Reply to author
Forward
0 new messages