Jump to content

[SOLVED] Elan PS/2 Touchpad Driver for XP


Dave-H

Recommended Posts

Ok,  in the meantime the ETDSimpleUi.exe install and uninstall files.

Expand the .zip in the "source" 11.14.4.1 directory together with the drivers files and add the ETDSimpleUI.exe, and right click->install on the ETDSimpleUI.inf.

Of course the driver needs to be already installed.

Then, to remove, right click->install on the ETDSimpleUI_remove.inf

It remains the doubt about these .avi files:

Button_SmartPad.avi
Clicking_2F.avi
Scroll_Reverse_H.avi
Scroll_Reverse_V.avi
i.e. if they are actually used by ETDsimpleUI.exe or not. :dubbio:

jaclaz

 

ETDSimpleUI.zip

Link to comment
Share on other sites


Quote
Quote

16 hours ago, Dave-H said:

The only file I had to add to the folder because it couldn't find it the first time was ETDMcpl.dll, which wasn't originally included.

But the file is in the actual "untouched" \tp118w7\{app}\Elantech\11.4.14.1\X86\, right?
It was missing in your "frankendriver" folder only because of all the various tests.

Yes, that's right. As I said I'm now using the "ETD_new" folder as the source, which came after the "Frankendriver" folder.
ETDMcpl.dll wasn't in there for some reason, I think at that time we thought it wasn't needed, but it's there now.
 

Quote
Quote

 

16 hours ago, Dave-H said:

One thing I have noticed, which I mentioned in passsing before ages ago, is that the uninstallation routine does not remove ETD.sys from the System32\Drivers folder, and I've since found that it doesn't remove the "ETD" service entry from HKLM\System\CurrentControlSet\Services in the registry either.
This appears to be the same with all the drivers I've experimented with, and it would be nice to fix it!

 

Yep, and - additionally - it leaves the \Program Files\Elantech folder untouched AFAICT (and also the .HKLM\System\CurrentControlSet\Control entries )

 

Actually it does always remove the entire Elantech folder from Program Files on every uninstall, and it removes all the registry entries too, except for the ETD service entry.
Apart from the anomalies I mentioned, I've actually always thought that the drivers' uninstall routines were pretty good, some uninstallers leave a huge amount of rubbish behind!

:)

Link to comment
Share on other sites

On 5/26/2020 at 1:03 PM, Dave-H said:

Yes, that's right. As I said I'm now using the "ETD_new" folder as the source, which came after the "Frankendriver" folder.
ETDMcpl.dll wasn't in there for some reason, I think at that time we thought it wasn't needed, but it's there now.

Good :), but for further tests you need to imagine being a "final" user, knowing nothing of this thread and that follows these instructions:
1) get the tp118w7 from https://support.lenovo.com/cz/en/downloads/ds035770
2) use Universal Extractor (or maybe easier use http://innounp.sourceforge.net/ ) to extract the contents, innounp -x tp118w7.exe
3) replace the ETD.inf in the directory \{app}\Elantech\11.4.14.1\X86\ with the new one
4) run the Setup.exe in \{app}\Elantech\11.4.14.1\X86\


Then, optionally,

5) get the Samsung driver 4.9.0.0 from https://www.helpjet.net/Fs-52207751-65343120-34459956.html
6) open it in 7-zip and copy the ETDSimpleUI.exe from \Elan\X86\ to the directory \{app}\Elantech\11.4.14.1\X86\
7) Add the two ETDSimpleUI .inf files and right click/install the ETDSimpleUI.inf

On 5/26/2020 at 1:03 PM, Dave-H said:

Actually it does always remove the entire Elantech folder from Program Files on every uninstall, and it removes all the registry entries too, except for the ETD service entry.
Apart from the anomalies I mentioned, I've actually always thought that the drivers' uninstall routines were pretty good, some uninstallers leave a huge amount of rubbish behind!

:)

This is interesting :thumbup, as it means that the Uninstaller likely has a number of "internal" settings that are not in the ETD.inf.

It has to be seen if it does everything in the actual .inf.

Try in the .inf:

1) add:
ETDSys.DelFiles     = 12            ; Driver directory
at the end of:
[DestinationDirs]

2) change:
DelFiles = No_Files
to:
DelFiles = ETDSys.DelFiles
in:
[Uninstall]

3) add:
[ETDSys.DelFiles]
ETD.sys,,,0x00000001
after:
[No_Files]

4) add:
HKLM,"SYSTEM\CurrentControlSet\Services\ETD"
at the end of:
[Uninstall_DelReg]

jaclaz

Edited by jaclaz
added .exe in the Innounp command line
Link to comment
Share on other sites

Quote

Good , but for further tests you need to imagine being a "final" user, knowing nothing of this thread and that follows these instructions:
1) get the tp118w7 from https://support.lenovo.com/cz/en/downloads/ds035770
2) use Universal Extractor (or maybe easier use http://innounp.sourceforge.net/ ) to extract the contents, innounp -x tp118w7
3) replace the ETD.inf in the directory \{app}\Elantech\11.4.14.1\X86\ with the new one
4) run the Setup.exe in \{app}\Elantech\11.4.14.1\X86\

Sorry for the delay again!

After completely uninstalling the driver, I'm trying to do the installation as a new user would, just following the steps in your previous post, not using any files already downloaded.

I used innounp and that worked fine, although the command as you wrote it (innounp -x tp118w7) doesn't seem to work, it only works if you add ".exe" to the end of it.

So I now have the folder with all the 11.4.14.1 files in it, and I've replaced ETD.inf with your most recent version.

However, when I run setup.exe, all that happens is that a message pops up saying "The driver version doesn't suit the Touch-Pad. Please check the device in system and install the suitable driver."

I don't think I've done anything wrong or missed anything. Was there something else we had to do other than just replace the INF?

:dubbio:

 

 

Link to comment
Share on other sites

OK, I found the problem!

Setup.ini needs to have "String28=*ETD0108" added at the end of it, then it works!

I guess we'll have to either provide a modified setup.ini or add that to the instructions.

:yes:

Link to comment
Share on other sites

6 hours ago, Dave-H said:

I guess we'll have to either provide a modified setup.ini or add that to the instructions.

If the strings section is the last in that file, you can just echo String28=*ETD0108 >> setup.ini from a .bat file or whatever.

Link to comment
Share on other sites

14 hours ago, Dave-H said:

OK, I found the problem!

Setup.ini needs to have "String28=*ETD0108" added at the end of it, then it works!

I guess we'll have to either provide a modified setup.ini or add that to the instructions.

:yes:

Very good. :)

Yep, that "Lenovo" setup.ini is an "exception" as all the "Asus" ones are *just*:

[Setup_Config]
CheckHWID=1
ResetPreviousRegistry=1

Whilst the "Samsung" one is:
 

[Setup_Config]
CheckHWID=0
CheckMode=1
String1=
String2=
String3=
String4=
String5=
String6=
String7=
String8=
String9=
String10=
String11=
String12=
String13=
String14=
String15=
String16=
String17=
String18=
String19=
String20=
String21=
String22=
String23=
String24=
String25=
ResetPreviousRegistry=1

 Good catch :yes:.

Though adding the "String28=*ETD0108" is a nice solution, it would cover only the ETD108, whilst the .inf - in theory - at the moment covers:
 

*ETD0000
*ETD0101
*ETD0102
*ETD0105
*ETD0106
*ETD0107
*ETD0108
*ETD0109
*ETD010A
*ETD010B
*ETD010C
*ETD010E
*ETD010F
*ETD0111
*ETD0112
*ETD0113
*ETD0114

so, since we have anyway to provide the modded ETD.inf we can add a pre-made simple Setup.ini file either according to the "Asus" philosophy (lousy/loose):

[Setup_Config]
CheckHWID=1
ResetPreviousRegistry=1

a (lousier/looser) "one size fits all":
 

[Setup_Config]
CheckHWID=0
ResetPreviousRegistry=1

or an "exact"  one:

[Setup_Config]
CheckHWID=1
CheckMode=1
ResetPreviousRegistry=1
String1=*ETD0000
String2=*ETD0101
String3=*ETD0102
String4=*ETD0105
String5=*ETD0106
String6=*ETD0107
String7=*ETD0108
String8=*ETD0109
String9=*ETD010A
String10=*ETD010B
String11=*ETD010C
String12=*ETD010E
String13=*ETD010F
String14=*ETD0111
String15=*ETD0112
String16=*ETD0113
String17=*ETD0114


:dubbio:
 

jaclaz

Link to comment
Share on other sites

"CheckHWID=0" would presumably result in hardware compatibility not being checked at all, which isn't good as the driver could potentially then just apparently install OK anyway but not work, and the user wouldn't know why.

Does "CheckHWID=1" just check that the hardware is referenced in the INF?

I would have thought that would be OK.
:dubbio:

Link to comment
Share on other sites

26 minutes ago, Dave-H said:

"CheckHWID=0" would presumably result in hardware compatibility not being checked at all, which isn't good as the driver could potentially then just apparently install OK anyway but not work, and the user wouldn't know why.

Does "CheckHWID=1" just check that the hardware is referenced in the INF?

I would have thought that would be OK.
:dubbio:

I don't know, that should be it, BUT (I guess) that IF:

CheckMode=1

the

Stringn=

entries in the Setup.ini are checked (instead/overriding ETD.inf ones or - more likely - as a pre-requisite).

My personal vote is on the "exact" (for what it costs) Setup.ini:

[Setup_Config]
CheckHWID=1
CheckMode=1
ResetPreviousRegistry=1
String1=*ETD0000
String2=*ETD0101
String3=*ETD0102
String4=*ETD0105
String5=*ETD0106
String6=*ETD0107
String7=*ETD0108
String8=*ETD0109
String9=*ETD010A
String10=*ETD010B
String11=*ETD010C
String12=*ETD010E
String13=*ETD010F
String14=*ETD0111
String15=*ETD0112
String16=*ETD0113
String17=*ETD0114

sometimes (not always, but often enough) it is  gratifying to be plus royaliste que le roi ;):

https://www.oxfordreference.com/view/10.1093/oi/authority.20110803100332506

jaclaz

 

Link to comment
Share on other sites

Yes indeed! :D
So to be sure we need to supply a setup.ini file as well as an ETD.inf file to replace the default ones in 11.4.14.1.

I'm puzzled as to why we didn't run into this problem before now.
Did we perhaps copy the setup.ini file from 11.5.20.3 as well as the INF when we made the "Frankendriver", and that version just stayed there throughout the subsequent tests?
:dubbio:

Link to comment
Share on other sites

25 minutes ago, Dave-H said:

Yes indeed! :D
So to be sure we need to supply a setup.ini file as well as an ETD.inf file to replace the default ones in 11.4.14.1.

I'm puzzled as to why we didn't run into this problem before now.
Did we perhaps copy the setup.ini file from 11.5.20.3 as well as the INF when we made the "Frankendriver", and that version just stayed there throughout the subsequent tests?
:dubbio:

Yep :), in the Frankendriver tests we used as base the 11.5.20.3 and either deleted unneeded files or overwrote selected/needed ones from 11.4.14.1 (or from some other older "Asus" drivers), so - at least here - the Setup.ini in use remained (or became) the *catch all*:

[Setup_Config]
CheckHWID=1
ResetPreviousRegistry=1

Anyway, it is an interesting philological experiment, undoubtedly the "base" (original) Setup.ini is something like:

[Setup_Config]
CheckHWID=1
CheckMode=1
String1=
...
Stringn=
ResetPreviousRegistry=1

the (diligent) Lenovo guy  filled the blanks, the (lazy) Asus guy removed the CheckMode and Stringn lines, the (lazier) Samsung guy  changed only the CheckHWID=0.

Three different solutions/workarounds for a non-problem (as AFAIK a .inf for a driver won't install anyway if it doesn't find the hardware - hence the need for me to create the device via devcon) :whistle:.

The difference is AFAICT only that the Setup.exe outputs a "Cannot install" window earlier if the hardware is checked (CheckHWID=1) and if the list is in Setup.ini (and CheckMode=1).

 

jaclaz

 

Edited by jaclaz
Link to comment
Share on other sites

I've now tried your uninstall modifications to the INF, and I'm pleased to say that the ETD.sys file and the ETD service registry entries are now removed!
:thumbup
Why this did not happen before I'm at a loss to understand, every single driver we've tried left those behind when it was uninstalled, even the later Asus drivers we tried on 8.1, they left the equivalent AsusTP.sys file behind! Very strange, if it was just laziness on the part of the INF programmers, why are all the drivers like that? Anyway, what you've done now is a great improvement!
:yes:
I used the default "simple" setup.ini from 11.5.20.3 and it works fine, so I can't see any obvious reason not to use it.
:)

Link to comment
Share on other sites

14 hours ago, RainyShadow said:

If the strings section is the last in that file, you can just echo String28=*ETD0108 >> setup.ini from a .bat file or whatever.

Sorry @RainyShadow, I should have thanked you for your suggestion.
I think we're OK with this now though.
:)

Link to comment
Share on other sites

59 minutes ago, Dave-H said:

I've now tried your uninstall modifications to the INF, and I'm pleased to say that the ETD.sys file and the ETD service registry entries are now removed!
:thumbup
Why this did not happen before I'm at a loss to understand, every single driver we've tried left those behind when it was uninstalled, even the later Asus drivers we tried on 8.1, they left the equivalent AsusTP.sys file behind! Very strange, if it was just laziness on the part of the INF programmers, why are all the drivers like that? Anyway, what you've done now is a great improvement!
:yes:
I used the default "simple" setup.ini from 11.5.20.3 and it works fine, so I can't see any obvious reason not to use it.
:)

Good. :)

Back to this test, and if it works, we are all set for a "final" version:

https://msfn.org/board/topic/181362-xp-driver-for-amd-hd8180-graphics-and-elan-ps2-touchpad/page/38/?tab=comments#comment-1182336

Note, when trying here (BOTH with  devcon and with Setup.exe), there is a "queer" behaviour, they *somehow* install - besides ETD.inf, also ETDsimpleUI.inf AND ETDSimpleUI_remove.inf (which of course makes the ETDSimpleUI.exe install a non-install), it is like the Setup.exe (but also devcon.exe, notwithstanding the command line devcon install .\x86\ETD.inf *ETD0108) runs all .inf files in the folder, i.e. *.inf.

The ETDSimpleUI.exe needs the .avi files that are present in the "main" \x86\ folder and even if we make an \x86\ETDsimpleUI\ subdirectory, the path to the higher level \x86\  subdirectory is not a valid one in .inf files syntax (AFAICT), not really a problem as the .inf will ask for the first .avi file and the user will need to point to the higher level directory, then all other .avi files will be copied from there.

The ETDSimpleUI_remove.inf can instead be put in a subdirectory, no problem with that.

We'll have to think about a way out for this CATCH22 :dubbio:, we could well replace the two .inf files with a small batch or a couple .reg files.

Also, it has to be tested if the ETD_Uninst.exe is "smart" or not, i.e. if it deletes ONLY the files mentioned in oemnn.inf AND IF the \Program FIles\Elantech\ directory is empty THEN it removes it OR if it simply deletes the \Program FIles\Elantech\ directory, no questions asked.

About ETDSimpleUI.exe, it seems like in order to run it needs to access an (empty) 

HKEY_CURRENT_USER\Software\Elantech

key, this is not (here) created by the ETD.inf (but it may well be created on your system by the actual ETD.sys or ETDCtrl.exe running, cannot say). 

jaclaz

 

Link to comment
Share on other sites

Your install INF for ETDSimpleUI works fine.
The uninstall INF works fine apart from leaving the HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace\{3EA22083-D5BF-411b-A6D6-A27541794266} key behind, which results in a dead blank icon in the Windows Control Panel.

I'm sure you're right about those four video files not being used by ETDSimpleUI, I seem to remember that I found that as well.

Unfortunately if you install the ETDSimpleUI, its settings are not used by the driver!
It's back to the same problem we had with the Asus UI and the Elan UI before, where the Asus UI actually changed the settings, but the Elan one didn't, although it appeared to.
Now the Elan UI changes the settings, and the ETDSimpleUI doesn't, although it appears to.
I guess they're changing different things in the registry again!
:dubbio:

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...