Jump to content

[SOLVED] Elan PS/2 Touchpad Driver for XP


Dave-H

Recommended Posts

After deleting HKLM\SYSTEM\CurrentControlSet\Control\Elantech\OtherSetting the settings are still being saved OK.
After then deleting HKLM\SYSTEM\CurrentControlSet\Control\Elantech\ the driver stops working completely.
The Asus style icon in the system try is replaced with the Elan style icon with a red "no entry" sign in it, and the touchpad is dead.
Over-installing with the INF then did fix this, after replacing the necessary files and rebooting.
HKLM\SYSTEM\CurrentControlSet\Control\Elantech\ has been restored.
The settings had reverted to the defaults, and when changed they don't "stick".
I exported the two keys you detailed (I assume the second one should have been saved to Elantech_OtherSetting_saving_NOT.reg, not as stated Elantech_OtherSetting_saving_OK.reg).
Importing Elantech_OtherSetting_saving_OK.reg did not return the settings to being saved.
Importing Elantech_saving_OK.reg did not return the settings to being saved either.
So, it looks like the "magic" is not in that key!
:no:

Link to comment
Share on other sites


Hmmm.

It's queer.

So the .inf installing must be changing *something else* outside HKLM\SYSTEM\CurrentControlSet\Control\Elantech\ and that something is part of the "magic" (otherwise restoring the saved .regs should have brought the situation to an "as before" state).

BUT the .inf installing does not change anything when over-installing on the working/saving settings driver.

:dubbio:

It makes no sense. :(

jaclaz

 

Edited by jaclaz
Link to comment
Share on other sites

How about trying this the other way around?
What about using 11.4.14.1 as the starting point instead of 11.5.20.3, as we know that all the files have to actually come from that version to work on XP anyway, and adding bits of the 11.5.20.3 INF to the 11.4.14.1 INF to see if we can get it to do what the 11.5.20.3 INF does?
:dubbio:

Link to comment
Share on other sites

No, there is something that simply does not make sense.

Here I am trying to replicate the situation, using devcon too create the *ETD0108 node and here the Setip.exe (setup.exe from 11.4.14.1 renamed) has no issues with an ETD.inf  from 11.5.20.3 modified and without the .cat file.

Give me some time I'll see if I can come out with something that is hopefully reproducible on the real hardware on your machine.

Can you confirm that - besides the .inf - the only *needed* files (all coming from 11.4.14.1) are the ones I listed earlier?:
ASUS_UI.exe
ETDApix.dll
ETDCmds.dll
ETDCtrl.exe
ETDFavorite.dll
ETDUn_inst.exe
ETDUninst.dll

or, maybe better, can you make a

DIR "C:\Program Files\Elantech\*.*">C:\elantech.dir

of your system (with the driver "fully" installed and working)?

I lost track of which "other" files (if any) you have there (i.e. the .avi's).

BTW, also can you get devcon.exe from here (so that we will be using the same version):

https://msfn.org/board/topic/173201-gavottes-ramdisk-automation-package/?do=findComment&comment=1091396

and run these commands (and post results):


devcon.exe listclass mouse
devcon.exe hwids =mouse
devcon.exe stack =mouse
devcon.exe driverfiles *mouse* 
devcon.exe driverfiles "HID\Vid_13ee&Pid_0003&Rev_0000" <- here replace with the *whatever* is the ID of the Elantecg trackpad
devcon.exe drivernodes *mouse*
devcon.exe drivernodes "HID\Vid_13ee&Pid_0003&Rev_0000" <- here replace with the *whatever* is the ID of the Elantecg trackpad
devcon findall =mouse
devcon classfilter mouse upper

jaclaz

Link to comment
Share on other sites

@Dave-H, is there something in those registry keys, that looks like a pointer to "install-specific" device?

(Sorry, i can't think of a way to word this simpler currently)

Like, when you reinstall your i.e. LAN card, and the first time it's named "ethernet adapter blabla", but the second install changes the name to "ethernet adapter blabla #2" and so on...

Maybe, the backup you made points to the previous install of the device, but the following reinstall points to the new name, so importing the backup won't just work?

Link to comment
Share on other sites

Thanks @RainyShadow!
What do you think @jaclaz?

The only way to completely eliminate that possibility would be to completely clean the system before every time an install is done I suppose, but I think one of the things we were testing was to see if an in-place INF install over the top of a non-working install would get the driver working properly again (which it didn't).

@jaclaz

Here's the directory file.
As regards the control panel and the avi files, what is in there is actually ETDSimpleUI.exe renamed to Asus_UI.exe, so I can use that instead of the Asus control panel, which is really slow and unresponsive. The avi files are the ones that go with ETDSimpleUI.exe, from driver version 4.9.0.0.

Also the first lot of output from devcon.

I will do the others later on if that's OK (dinner time now!)
Before I do, can I just confirm that I need to replace "HID\Vid_13ee&Pid_0003&Rev_0000" with "*ETD0108" in those commands?
:dubbio:

elantech.dir
devcon1.txt

Link to comment
Share on other sites

Ok, there must be *something* on your install (maybe SP3 changes something? I doubt it) or setting or some other program (like antivirus/anti-whatever) that prevents the running on your system of a Setup.exe with unsigned drivers (or possibly a Group policy, I have NO idea what could it be).

Here Setup.exe (from 11.4.14.1) runs just fine, both with the original .inf from  11.5.20.3 and with it modified (removed the .cat file, changed files to the ones you are actually using, etc.).

Of course I cannot say if the driver works or not.

At first sight the only difference I can find is that devcon (as well as .inf install from device manager "Have disk") does not add anything to the driverstore.

Doing a few random tests, it does seems like ,inf installing checks date/version of drivers and installs "whatever it seems better" (but no real prove of this).

Anyway, here everything works as it should (as far as I can test it).

Find attached a modified 11.5.20.3 .inf and a (quick and half-@§§ed as always) small video (actually animated .gif) showing you what happens here.

Let me know when you got the file so that I can remove it from attachments. (EDIT: Ok, removed)

jaclaz

 

Edited by jaclaz
Link to comment
Share on other sites

OK, it doesn't really matter, devcon is a "strange beast", and I am not at all an expert in its use.

Anyway, further update. :)

The Setup (or Setip) .exe seems (a lot) like a wrapper around DPINST.EXE.

I.e. all the Setup does with (from a command prompt opened in a directory one level higher than the one where the driver files are):

.\x86\Setup.exe

can be replicated with the command:

.\x86\dpinst.exe /C

(the /C is optional, what actually happens is logged anyway in C:\Windows\DPINST.LOG)

Here the ETDUn_inst.exe does not work (as I need to force with devcon the device *ETD0108, whilst the ETDUn_inst is probably intended to uninstal the actual "real" device, i.e. the "ACPI\ETD0108\4&1B919E6A&0" you have).

Anyway the following command: 
.\x86\dpinst.exe /U C:\appoggio\Daveh\ETD_new\x86\ETD.inf /D /C

Seemingly does all that is needed (the /C is optional as seen above BUT - for some reasons the path to the .inf neeeds to be a FULL path and you'll need to change it according to your situation), namely:
1) it removes the device
2) it removes the etd_inserthereacrazylongstring folder from C:\WINDOWS\system32\DRVSTORE\
3) it deletes the the OEMnn.inf and OEMnn.PNF from C:\WINDOWS\inf\
4) it deletes the ETD.SYS from C:\WINDOWS\system32\drivers\
5) it removes files from C:\Program Files\Elantech\
6) it removes the Elantech entry from Add/Removeprograms

You should open the:
C:\Windows\SetupApi.log

and the:
C:\Windows\DPINST.log

with a text editor and remove all the last lines related to Elantech related attempts, so that it will be easier to try the above DPINST commands and compare the log entries with the ones created when Setup.exe and ETDUn_inst.exe are run.

jaclaz
 

 

Link to comment
Share on other sites

So, after I've removed all the (many!) entries relating to the Elan driver in SetupApi.log and DPINST.log, I should run -

.\x86\dpinst.exe /U <path to INF>\ETD.inf /D /C

What folder should I be in to run that though, the "Frankendriver" folder?
And should the path to the INF be the Frankendriver folder too?

Also am I using the existing unmodified INF or the modified one you attached earlier?

That command will presumably uninstall the driver.

So I do that, and then .\x86\dpinst.exe /C will reinstall it.
Again, what folder should I be in and which INF file should I use?

Sorry, so many questions, but I don't want to risk invalidating any test by not doing it absolutely correctly.
:)
 

Edited by Dave-H
Addition
Link to comment
Share on other sites

Well, you should recreate a new "source" directory identical to the one you can see on top left of the video/gif.

The files are the same that you have in the \Program Files\Elantech folder plus:
dpinst.exe
dpinst.xml
a couple Eula files (I left in it only Italian and English but you can re-add the whole lot or add none)
the ETD.sys (from 11.4.14.1)
the modified ETD.inf (that originates from 11.5.20.3 and where I only removed the .cat reference and changed files to reflect your "final" \Program Files\Elantech folder

Here is anyway the detailed dir.txt of it.

Quote

 Directory di C:\appoggio\Daveh\ETD_new\x86

17/05/2020  09.40    <DIR>          .
17/05/2020  09.40    <DIR>          ..
08/10/2012  22.04         1.933.168 ASUS_UI.exe
15/08/2011  20.45           664.064 DnD01.avi
15/08/2011  20.45           782.336 DnD02.avi
15/08/2011  20.45           716.084 DnD03.avi
22/07/2015  04.31           931.560 dpinst.exe
22/07/2015  04.10            29.176 dpinst.xml
22/07/2015  04.10            12.550 ELANLogo.ico
22/07/2015  04.10             6.966 ELANTP.bmp
17/05/2020  09.28         1.986.643 ETD.inf
05/03/2013  17.25           311.696 ETD.sys
05/03/2013  17.25         1.693.072 ETDApix.dll
05/03/2013  17.25         1.799.056 ETDCmds.dll
05/03/2013  17.25         2.248.080 ETDCtrl.exe
05/03/2013  17.25         1.676.176 ETDFavorite.dll
05/03/2013  17.25         1.620.880 ETDUninst.dll
05/03/2013  17.25         1.787.792 ETDUn_inst.exe
22/07/2015  04.10               627 Eula0409ENU.tx_
22/07/2015  04.10               684 Eula0410ITA.tx_
15/08/2011  20.46           904.192 Rotation_Twist.avi
15/08/2011  20.46         2.144.978 Scroll_Inertial.avi
09/07/2012  15.21           864.768 Scroll_Reverse_H.avi
09/07/2012  15.21           968.192 Scroll_Reverse_V.avi
05/03/2013  17.25         1.792.400 Setup.exe
16/05/2020  17.05                55 Setup.ini
15/08/2011  20.46           786.944 Swipe_3F_Down_SwitchWnd.avi
15/08/2011  20.46         1.615.872 Swipe_3F_LR_PageupDown.avi
15/08/2011  20.46           461.312 Swipe_3F_Up_Computer.avi
15/08/2011  20.46           354.816 Tapping_1F.avi
15/08/2011  20.46           990.904 Tapping_2F_Middle_Button.avi
15/08/2011  20.46           763.392 Tapping_2F_Popup.avi
15/08/2011  20.47         1.783.296 Zooming.avi
              31 File     31.631.731 byte
               2 Directory  117.333.360.640 byte disponibili

BUT BEFORE doing any attempt, you need to clean the system which namely means:
1) uninstall from device manager the touchpad device
2) verify that you have no ETD.sys file in \Windows\drivers\ 
3) verify that you have no OEMnn.inf and OEMnn.PNF file in \Windows\inf related to Elantech installs
4) verify that you have no etd_inserthereacrazylongstring folder in \WINDOWS\system32\DRVSTORE\
5) verify that you have not any Elantech related item in Add/Remove programs
6) delete the Registry HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Elantech key and all its subkeys

AND "clean" the SetupApi.log and DPINST.log,

Then you need to run in couples, i.e. you first run EITHER the Setup/setip.exe from the unmodified 11.5.20.3 folder OR run from the same folder the dpinst.exe,.

Following, you run the ETDUn_inst.exe OR the dpinst.exe /U from the same folder.

Then you try doing the same from the "ETD_new" folder, after having verified that all 6 points above check (as long as install and uninstall the same .inf and folder it shoudl work nicely).

If you setup your desktop similar to what I showed you in the video, you will have most relevant places of the 6 above under control in "real time".

Unfortunately you will probably need intermediate reboots to check what happens after a driver install or uninstall, so you will have to re-compose the desktop each time, I used 7-zip because it is more compact and updates faster when copying/deleting files, but you can use a set of explorer windows. or a batch in another command prompt *like* (I am using C: you will need to use D: of course) :

DIR C:\Windows\drivers\ETD.sys
DIR C:\Windows\inf\oem15.* <- in my case it is OEM15 adapt to your situation
DIR C:\WINDOWS\system32\DRVSTORE\etd_*

Get:
https://docs.microsoft.com/en-us/sysinternals/downloads/regjump 

regjump HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Elantech

jaclaz

Link to comment
Share on other sites

OK, I've already cleared the files, I'll now have a go at all that!
Presumably I'll have to clean the files again after I've uninstalled the driver so that information isn't included in them.

I had trouble with your animated GIF BTW, I normally use XnView to view them, but that file just crashes it, it says the file type can't be determined.
I have managed to view it using my ancient copy of Ulead GIF Animator, but it's very difficult to get it all on the screen, and that program is also struggling to play it.

I'll let you know how it goes!

What did you think about @RainyShadow's hypothesis yesterday BTW?
Cheers, Dave.
:)
 

Link to comment
Share on other sites

31 minutes ago, Dave-H said:

I had trouble with your animated GIF BTW, I normally use XnView to view them, but that file just crashes it, it says the file type can't be determined.
I have managed to view it using my ancient copy of Ulead GIF Animator, but it's very difficult to get it all on the screen, and that program is also struggling to play it.
 

Well, it plays just fine in Opera 12.something series, Presto.

It plays fine in chrome (Iron 49.0.2623.112), though it is very slow to load.

It plays fine in Basilisk/Serpent 2019.08.16

It plays fine in Firefox 47.1

It is as widely compatible as an animated .gif can be made.

46 minutes ago, Dave-H said:

What did you think about @RainyShadow's hypothesis yesterday BTW?

I am not sure to have understood what he meant, it is entirely possible that if you have multiple etd_whatever files in the driverstore the stupid windows attempts to use one before another, but that shouldn't affect the device name :unsure:.

Anyway doing a registry wide search on the Registry with Registrar Lite (Reglite) or use any other registry tool that has search with multiple results.

for strings *like* 

Elan
Elantech
ETDCtrl.exe
ETD.sys

etc. 

should clear easily if this is the case.

jaclaz

 

Link to comment
Share on other sites

Thanks.

Yes, your animated GIF does play fine in my browser, but I was hoping to be able to play it in something which would allow me to easily stop and start it at particular points, and ideally move frame by frame, but I guess that won't be possible.

Anyway, I am working through your instructions, logging what I'm doing so I can let you see exactly what I've done and the results I got.

I use Registry Workshop BTW, which has an extremely good search facility which lists everything that it finds so you can easily review things (and it has multiple undo levels too I'm very glad to say!) I shouldn't need regjump as I can just set that key up as a "favourite" in Registry Workshop.

:)

 

Edited by Dave-H
Addition
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...