LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Games (http://www.linuxquestions.org/questions/linux-games-33/)
-   -   Installing PhysX drivers in wine? (http://www.linuxquestions.org/questions/linux-games-33/installing-physx-drivers-in-wine-673208/)

ephemeros 09-29-2008 11:33 PM

Installing PhysX drivers in wine?
 
Hey

I'm trying to install the NVidia PhysX drivers from the official package downloaded from the website. A small progress window is shown but disappears quickly. The output in the terminal is:
Code:

wine ./PhysX_8.04.25_SystemSoftware.exe
fixme:advapi:LookupAccountNameW (null) L"user" (nil) 0x33f7fc (nil) 0x33f800 0x33f7f4 - stub
fixme:advapi:LookupAccountNameW (null) L"user" 0x15ce68 0x33f7fc 0x17bc48 0x33f800 0x33f7f4 - stub
err:msi:ACTION_CallDllFunction failed to load dll L"C:\\windows\\temp\\msi5652.tmp"

After that the installer hangs. The relevant sleeping processes are MSIEXEC, explorer.exe, winedevice.exe, services.exe, wineserver, and PhysX_8.04.25_SystemSoftware.exe.
I'm using XUbuntu Hardy AMD64 with Wine 1.1.5 (the last current update).
Any ideas?

pinniped 09-30-2008 12:38 AM

The software is trying to use a system call (LookupAccountNameW) which is not yet implemented. SO - that program just won't run under WINE at this stage. Of course you can implement that call, then see where the program fils next, implement that other call, and so on until it works. :)

Also note: drivers can't really be run in WINE - WINE provides the WinDuhs API (system calls) so that programs can run. A driver on the other hand registers with the WinDuhs kernel and gains low-level access to hardware. Unfortunately the system of registering WinDuhs drivers cannot be translated to the Linux driver scheme in a generic fashion. SO - drivers will not run under WINE. There are specialized projects like ndiswrapper which provide the interface to register specific types of drivers; in the case of ndiswrapper these are wireless ethernet adapters (but there are claims that it also works for some wired adapters).

i92guboj 09-30-2008 02:21 AM

If it's some kind of moded driver for your video card forget about it.

The poster above already told you the reasons, I just add that if you are working on linux, all the system calls will be directed ultimately at your kernel, and your linux drivers. No user land program can bypass that and directly handle your hardware, and wine is no exception. Windows drivers do not work and will never work in wine. There's no need either. If you have a driver for linux you use it natively. And if you don't have a driver for linux, there's no way that wine could bridge your windows driver into linux even if wine supported that functionality.

ephemeros 10-01-2008 02:46 AM

Thank you for the clarifications about drivers.
I actually need to play a game that use PhysX (Ageia), this is a dynamics engine more than a driver, I think the package from NVidia contains dlls and drivers for the video cards that support dynamics hardware acceleration. My video card doesn't support this, but the games should work on it, if the engine (dlls maybe?) is installed.
I think that unimplemented function is required for the installer only, would it be possible to extract it somehow? I ask for that because it seems seems to use msiexec, which I know is a windows package installer. Btw, the game when starts, it complains Ageia is not installed, so I think it doesn't need other than the engine.

i92guboj 10-01-2008 08:24 AM

Quote:

Originally Posted by ephemeros (Post 3296712)
Thank you for the clarifications about drivers.
I actually need to play a game that use PhysX (Ageia), this is a dynamics engine more than a driver, I think the package from NVidia contains dlls and drivers for the video cards that support dynamics hardware acceleration. My video card doesn't support this, but the games should work on it, if the engine (dlls maybe?) is installed.

I see. What you are guessing is not that mad. It could work, as long as it's just a dll and it doesn't contain so low level code. The problem as you say is to unpack the file. I guess that the installer comes as a self-contained exe file, doesn't it?

You can try a number or things. Sometimes, exe files are just self-extracting zips, and can be uncompressed with unzip, unrar or even 7z. You can try. There's a number of other propietary decompressors that could be tried on linux. There's also cabextract and unshield, this last might be particularly interesting:

http://synce.sourceforge.net/synce/unshield.php

I don't know if there's a way to force msiexec to uncompress a file, though. But if you manage to get that missing dll you can try to put it into your system32 directory or the game dir, and see if it works. Let's cross our fingers and hope that it will be able to communicate ok with the standard wine directx layer.

Also, there are places around the net to search for dll files, have you tried those?

ephemeros 10-02-2008 11:04 AM

I think this is everything it would be possible to do (except hacking Wine & stuff). I tried some dll download (dll-files.com) and didn't work, actually there was a PhisX dll there and that should be enough. I will try with alternative installer extractions, although I think everything is extracted but not configured, registry and user configuration are probably my next targets :P.
Thanks!


All times are GMT -5. The time now is 10:09 PM.