The forum

SCT Driver newbie trouble

SCT Device Updater driver for handheld vehicle tuner

Author Replies
dwalbeck Thursday 28 May 2015 at 7:12

Long time Linux user, but newbie to Wine.  I wanted to try to install this software using Wine rather than install all of Windows just for this one program, but I'm not having much luck.  I did manage to get the main program to install, but it needs the drivers installed in order to communicate with the handheld tuner that plugs in via USB.  With the errors I'm seeing, it seems like I'm just missing a library or something, but have tinkered long enough without any progress that I thought I'd send up a flare and get some advice from more knowledgeable sources.

First I suppose is the most obvious, which is if this is a reasonable goal to try to get working?  I would think it would be possible, although maybe a bit harder being that a device is thrown in the mix.  Anyway I'm running Mint 17 powered by a AMD Athlon 64 X2 Dual core 4200Mhz in the Gnome 3 desktop and running Wine version 1.7.38.  I'm trying the install using the PlayOnLinux 4.2.2 with what I understood to be the least troublesome version of Wine 1.5.18. 

The main software installed without much fuss, once I included a handful of libraries that it required, but after it completed the install and extracted a second executable (the driver) I have been unable to get that second program to install.  I was able to work past the first couple of errors I was getting, but I'm not sure what I'm missing for this error - being not very familiar with Windows libraries.  Here is the error I'm seeing:


[05/27/15 22:36:16] - Running wine-1.5.18 SCTDriversV1011x86.exe (Working directory : /home/davey/.PlayOnLinux/wineprefix/SCT/drive_c/Program Files/SCT/SCT Device Updater)
fixme:storage:create_storagefile Storage share mode not implemented.
wine: Unhandled page fault on read access to 0x00000000 at address 0x79004c44 (thread 0025), starting debugger...

Here is the output from the log output:

Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0x79004c44).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:79004c44 ESP:0033f164 EBP:0033f1f0 EFLAGS:00010246(  R- --  I  Z- -P- )
 EAX:00000000 EBX:7ed37118 ECX:00000002 EDX:00000000
 ESI:00000104 EDI:0033f5dc
Stack dump:
0x0033f164:  7ed37118 00000104 7ed51e80 00000000
0x0033f174:  00000000 7ed37118 79003ba2 003a0043
0x0033f184:  0077005c 006e0069 006f0064 00730077
0x0033f194:  0073005c 00730079 00650074 0033006d
0x0033f1a4:  005c0032 0073006d 006f0063 00650072
0x0033f1b4:  002e0065 006c0064 002e006c 006f006c
=>0 0x79004c44 in mscoree (+0x4c44) (0x0033f1f0)
  1 0x7bc89cd0 in ntdll (+0x79ccf) (0x0033f510)
  2 0x7902e49f in mscoree (+0x2e49e) (0x0033f580)
  3 0x7bc89d40 in ntdll (+0x79d3f) (0x0033fef0)
0x79004c44: movw    0x0(%eax),%dx
Module    Address            Debug info    Name (76 modules)
PE    63000000-63072000    Deferred        wininet
PE    79000000-79045000    Export          mscoree
ELF    7b800000-7b8fe000    Deferred        kernel32<elf>
  \-PE    7b810000-7b8fe000    \               kernel32
ELF    7bc00000-7bcc3000    Dwarf           ntdll<elf>
  \-PE    7bc10000-7bcc3000    \               ntdll
ELF    7bf00000-7bf03000    Deferred        <wine-loader>
ELF    7dd38000-7dd51000    Deferred        sxs<elf>
  \-PE    7dd40000-7dd51000    \               sxs
ELF    7de72000-7de92000    Deferred
ELF    7de92000-7df2c000    Deferred        windowscodecs<elf>
  \-PE    7dea0000-7df2c000    \               windowscodecs
ELF    7df91000-7dfc4000    Deferred        uxtheme<elf>
  \-PE    7dfa0000-7dfc4000    \               uxtheme
ELF    7dfc4000-7dfca000    Deferred
ELF    7dfca000-7dfd5000    Deferred
ELF    7dfd5000-7dfe5000    Deferred
ELF    7dfe5000-7dfe9000    Deferred
ELF    7dfe9000-7dff4000    Deferred
ELF    7dff4000-7dfff000    Deferred
ELF    7dfff000-7e005000    Deferred
ELF    7e005000-7e009000    Deferred
ELF    7e009000-7e010000    Deferred
ELF    7e010000-7e014000    Deferred
ELF    7e014000-7e036000    Deferred
ELF    7e036000-7e03c000    Deferred
ELF    7e03c000-7e170000    Deferred
ELF    7e170000-7e183000    Deferred
ELF    7e183000-7e19d000    Deferred
ELF    7e19d000-7e226000    Deferred        winex11<elf>
  \-PE    7e1b0000-7e226000    \               winex11
ELF    7e226000-7e24e000    Deferred
ELF    7e24e000-7e2ee000    Deferred
ELF    7e2f4000-7e315000    Deferred        imm32<elf>
  \-PE    7e300000-7e315000    \               imm32
ELF    7e315000-7e329000    Deferred
ELF    7e329000-7e348000    Deferred        cabinet<elf>
  \-PE    7e330000-7e348000    \               cabinet
ELF    7e348000-7e43b000    Deferred        comctl32<elf>
  \-PE    7e350000-7e43b000    \               comctl32
ELF    7e43b000-7e4a6000    Deferred        shlwapi<elf>
  \-PE    7e450000-7e4a6000    \               shlwapi
ELF    7e4a6000-7e6b7000    Deferred        shell32<elf>
  \-PE    7e4b0000-7e6b7000    \               shell32
ELF    7e6b7000-7e7c6000    Deferred        oleaut32<elf>
  \-PE    7e6d0000-7e7c6000    \               oleaut32
ELF    7e7c6000-7e83c000    Deferred        rpcrt4<elf>
  \-PE    7e7d0000-7e83c000    \               rpcrt4
ELF    7e83c000-7e854000    Deferred        version<elf>
  \-PE    7e840000-7e854000    \               version
ELF    7e854000-7e956000    Deferred        gdi32<elf>
  \-PE    7e860000-7e956000    \               gdi32
ELF    7e956000-7ea96000    Deferred        user32<elf>
  \-PE    7e970000-7ea96000    \               user32
ELF    7ea96000-7eaf7000    Deferred        advapi32<elf>
  \-PE    7eaa0000-7eaf7000    \               advapi32
ELF    7eaf7000-7ebfd000    Deferred        ole32<elf>
  \-PE    7eb10000-7ebfd000    \               ole32
ELF    7ebfd000-7ec87000    Deferred        urlmon<elf>
  \-PE    7ec10000-7ec87000    \               urlmon
ELF    7ec87000-7ed6d000    Deferred        msi<elf>
  \-PE    7ec90000-7ed6d000    \               msi
ELF    7ed6d000-7ed7a000    Deferred
ELF    7ed7a000-7ed93000    Deferred
ELF    7ef93000-7efd9000    Deferred
ELF    7efda000-7efe3000    Deferred
ELF    7efe3000-7f000000    Deferred        msiexec<elf>
  \-PE    7eff0000-7f000000    \               msiexec
ELF    f7494000-f7499000    Deferred
ELF    f7499000-f7647000    Deferred
ELF    f7647000-f7663000    Deferred
ELF    f7664000-f7670000    Deferred
ELF    f7681000-f768a000    Deferred
ELF    f768b000-f77cc000    Dwarf 
ELF    f77ce000-f77f0000    Deferred
ELF    f77f0000-f77f1000    Deferred        [vdso].so
process  tid      prio (all id:s are in hex)
00000008 SCTDriversV1011x86.exe
    00000009    0
0000000e services.exe
    00000020    0
    0000001f    0
    00000019    0
    00000018    0
    00000017    0
    00000015    0
    00000010    0
    0000000f    0
00000012 winedevice.exe
    0000001d    0
    0000001a    0
    00000014    0
    00000013    0
0000001b plugplay.exe
    00000021    0
    0000001e    0
    0000001c    0
00000022 explorer.exe
    00000023    0
00000024 (D) C:\windows\system32\msiexec.exe
    00000025    0 <==
System information:
    Wine build: wine-1.5.18
    Platform: i386
    Host system: Linux
    Host version: 3.13.0-37-generic


If anyone could point me in the right direction, or provide any feedback that would be helpful, I would be most appreciative for the assistance.  It almost seems like it's a permission restriction or maybe it's related to the error I was getting previously, which was:

fixme:ntdll:NtLockFile I/O completion on lock not implemented yet

Anyone chuck an old dog a bone?  Thanks.




petch Thursday 28 May 2015 at 14:04

Wine does not support drivers.

It implements applications-facing API using the host system, it does not have access to the devices, as it runs like any other application.


Edited by petch

dwalbeck Sunday 31 May 2015 at 9:22

Yeah, I was afraid that might be the case, which is unfortunate.  I do however appreciate and thank you for taking the time to help educate me better on the operations of Wine.  It has definitely come a long way from when I last tried it years back, and to it's credit it did install the software perfectly and runs it great - however it requires the drivers to the device in order to fully function.

I don't suppose that would would happen to know if VirtualBox would work for something like this?  I know that you can allow a sort of pass though connection to selected USB devices, so I believe it has a decent chance of working.

Anyway, thank you for sharing your insight and knowledge and it's too bad this usage scenario isn't compatible.  I guess if it comes to tha point, I can just install Windows on a secondary drive - now that I've split my 4 disk stripe raid into individual drives.  Thank you very much for you help.


petch Sunday 31 May 2015 at 10:08

That may indeed work with VirtualBox, even with the open source release that now has USB filtering too

ravery Sunday 31 May 2015 at 15:29

a linux version of your driver maybe?

if you can get the device installed on linux, wine will pass it through to the wine program


dwalbeck Sunday 7 June 2015 at 11:37

Unfortunately the software support for this program is very restrictive and only available for a few versions of Windows.  If I get real ambitious, then maybe I'll decompile the driver and try to port it over, but I don't know if I want to spend that kind of time for something that may no even help with my Jeep issues.  I am very grateful for your insights and in better educating me on Wine - which I have to say is impressive with all it can do.  Maybe not the most user friendly thing, but impressive all that it's capable of.  It's too bad it doesn't fit well for this specific scenario.  Maybe I'll try Virtualbox, or just breaking down and install Windows on one of my spare drives... if I can even find an old copy of Windows.  8-)  Thanks again for your time and help with this.