IPX and AMD64 not mixing?

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Sephiroth
Level 2
Level 2
Posts: 36
Joined: Fri Mar 27, 2009 4:57 pm

IPX and AMD64 not mixing?

Post by Sephiroth »

I've searched the forums for AMD64 and IPX but couldn't find a solution here. I am running Debian Lenny 2.6.26-1-amd64 on an AMD Turion 64x2 1.60GHz system with 1GB of RAM. I have Wine running and it runs my older games just fine (this is a laptop with an ATI1100M so no new games here!) but it doesn't seem to work with IPX. I installed the IPX tools package and ran the commands below as root.

Code: Select all

modprobe ipx
ipx_interface add wlan0 802.2 0x00000001
If I check the interface, it is there, even after rebooting, so I believe that it is working. However, if I try to play a game that requires IPX for LAN-play, such as Lords of Magic SE, I can get into the IPX screen and enter a game name, but it won't create the game, as though IPX is not installed. The game runs flawlessly in single-player despite what the AppDB says. Then again, the AppDB has a very old review of the game.

I am running 1.1.17, clean install. Do I have to configure Wine to tell it that IPX is installed, or is this a problem with 64bit Linux. I came to Linux to try this since IPX in XP Pro x64 is a broken, unsupported 64bit version that doesn't work with anything.
Sephiroth
Level 2
Level 2
Posts: 36
Joined: Fri Mar 27, 2009 4:57 pm

Post by Sephiroth »

Anybody? I'd like to be able to play some of my older Win9X games on the laptop via Wine, but I don't see a tutorial or FAQ page on IPX, much less IPX on an AMD64 build of Linux. What do I have to do to make IPX work in Wine?
vitamin
Moderator
Moderator
Posts: 6605
Joined: Sat Feb 23, 2008 2:29 pm

Re: IPX and AMD64 not mixing?

Post by vitamin »

Sephiroth wrote:I am running 1.1.17, clean install. Do I have to configure Wine to tell it that IPX is installed, or is this a problem with 64bit Linux.
Check config.h file to see if Wine detected and compiled support for IPX. There are might be some problems with 32<->64 bit compatibility as well for things that no one uses now days.
Sephiroth
Level 2
Level 2
Posts: 36
Joined: Fri Mar 27, 2009 4:57 pm

Post by Sephiroth »

I downloaded a deb from the repository instead of building my own. I assumed that Wine supported everything that Windows games would need by default. If not, I can build my own.
Gert van den Berg

IPX and AMD64 not mixing?

Post by Gert van den Berg »

On Sat, Mar 28, 2009 at 5:37 PM, Sephiroth <[email protected]> wrote:
Anybody?  I'd like to be able to play some of my older Win9X games on the laptop via Wine, but I don't see a tutorial or FAQ page on IPX, much less IPX on an AMD64 build of Linux.  What do I have to do to make IPX work in Wine?
Accordign to the Red Alert HOWTO, you need to be running as root for
IPX to work...

This might be a bad idea, since it enables bugs in Wine (not very
likely, but not impossible) / Windows malware to destroy all data on
your computer.

Some info: (I presume that most games uses the UDP equivalent in IPX,
which would probably require a listening socket)
http://lkml.indiana.edu/hypermail/linux ... /0309.html

Gert
austin987
Wine Developer
Wine Developer
Posts: 2383
Joined: Fri Feb 22, 2008 8:19 pm

IPX and AMD64 not mixing?

Post by austin987 »

On Sun, Mar 29, 2009 at 3:22 AM, Gert van den Berg <[email protected]> wrote:
On Sat, Mar 28, 2009 at 5:37 PM, Sephiroth <[email protected]> wrote:
Anybody?  I'd like to be able to play some of my older Win9X games on the laptop via Wine, but I don't see a tutorial or FAQ page on IPX, much less IPX on an AMD64 build of Linux.  What do I have to do to make IPX work in Wine?
Accordign to the Red Alert HOWTO, you need to be running as root for
IPX to work...

This might be a bad idea, since it enables bugs in Wine (not very
likely, but not impossible) / Windows malware to destroy all data on
your computer.

Some info: (I presume that most games uses the UDP equivalent in IPX,
which would probably require a listening socket)
http://lkml.indiana.edu/hypermail/linux ... /0309.html
This is where POSIX capabilities would be useful:
http://wiki.winehq.org/FAQ#head-96bebfa ... 78b0d41014


--
-Austin
Sephiroth
Level 2
Level 2
Posts: 36
Joined: Fri Mar 27, 2009 4:57 pm

Post by Sephiroth »

Red Alert had a UDP patch to allow LAN play via UDP/IP. 99% of the games out there that used IPX did not get their code changed from IPX to UDP. In fact, Red Alert is the only game that I know of with such a patch. In fact, most games that used IPX for multiplayer wound up only being playable online through tunneling via a service like Heat, Kali, MPlayer, or others.

Also, I don't see why you would need to be root to use a protocol installed on the local machine available to all users. That sounds like a major Wine bug. I'll try running LoMSE as root to see if it fixes the problem. If it does, we should file a bug report if one hasn't already been filed. I know for a fact that normal Linux applications don't need root access to use IPX because I have done so in the past.

*EDIT*

You cannot run Wine as root. Every time I try one of two things happen. If I try in a root terminal, it creates /root/.wine and spews a hundred errors. If I use "su root wine ./lomse.exe" it gives an error about not being able to load a binary file. I guess that means that running Wine as root is out of the question.
Gert van den Berg

IPX and AMD64 not mixing?

Post by Gert van den Berg »

On Sun, Mar 29, 2009 at 6:07 PM, Sephiroth <[email protected]> wrote:
Also, I don't see why you would need to be root to use a protocol installed on the local machine available to all users.  That sounds like a major Wine bug.  I'll try running LoMSE as root to see if it fixes the problem.  If it does, we should file a bug report if one hasn't already been filed.  I know for a fact that normal Linux applications don't need root access to use IPX because I have done so in the past.
Read the LKML link I posted.
Sephiroth
Level 2
Level 2
Posts: 36
Joined: Fri Mar 27, 2009 4:57 pm

Post by Sephiroth »

Still not helpful, even if root is the only one that can manage IPX (design flaw in the kernel, not good) Wine still won't operate as root. What good is having IPX in the kernel (or in Wine for that matter) if it's useless due to being root-only?
austin987
Wine Developer
Wine Developer
Posts: 2383
Joined: Fri Feb 22, 2008 8:19 pm

IPX and AMD64 not mixing?

Post by austin987 »

On Mon, Mar 30, 2009 at 8:36 PM, Sephiroth <[email protected]> wrote:
Still not helpful, even if root is the only one that can manage IPX (design flaw in the kernel, not good) Wine still won't operate as root.  What good is having IPX in the kernel (or in Wine for that matter) if it's useless due to being root-only?
Wine _can_ run as root, it's just not recommended. Sometimes it's
necessary, in cases like these.


--
-Austin
Sephiroth
Level 2
Level 2
Posts: 36
Joined: Fri Mar 27, 2009 4:57 pm

Post by Sephiroth »

How? I've tried the standard method of using "su" followed by the user and then the command-line, but it won't start, complaining about being root.

*EDIT*

Oh and I tried setuid already.

Code: Select all

~/.wine/drive_c/Games/Sierra/LOMSE$ setuid root wine ./lomse.exe
setuid: setuid(user=root) failed: Operation not permitted
austin987
Wine Developer
Wine Developer
Posts: 2383
Joined: Fri Feb 22, 2008 8:19 pm

IPX and AMD64 not mixing?

Post by austin987 »

On Mon, Mar 30, 2009 at 8:51 PM, Sephiroth <[email protected]> wrote:
How?  I've tried the standard method of using "su" followed by the user and then the command-line, but it won't start, complaining about being root.





You have to login as root. Sudo is intentionally broken, as it breaks
permissions. You could use su, except odds are your $DISPLAY and some
other environmental variables won't be set.

--
-Austin
Sephiroth
Level 2
Level 2
Posts: 36
Joined: Fri Mar 27, 2009 4:57 pm

Post by Sephiroth »

Two problems with that. Wine doesn't run in the shell, and root isn't allowed to login to X. I tried using the "root shell", but that is just a different color terminal that appends "su" to every command issued. Therefore, I no of no way to get an X display as root.
austin987
Wine Developer
Wine Developer
Posts: 2383
Joined: Fri Feb 22, 2008 8:19 pm

IPX and AMD64 not mixing?

Post by austin987 »

On Mon, Mar 30, 2009 at 9:37 PM, Sephiroth <[email protected]> wrote:
Two problems with that.  Wine doesn't run in the shell
Yes it does.
and root isn't allowed to login to X
Sure it can, you have to enable it.

--
-Austin
Sephiroth
Level 2
Level 2
Posts: 36
Joined: Fri Mar 27, 2009 4:57 pm

Post by Sephiroth »

I didn't mean that shell in KDE, I meant a REAL shell. In other words, raw Linux. As in, without X installed style shell. The shell you get to when you use ALT+N at the KDE login. I didn't mean it wouldn't run from a terminal in X.

As for enabling root to login to X, not going to happen, too much of a risk. I still need a working solution however.
austin987
Wine Developer
Wine Developer
Posts: 2383
Joined: Fri Feb 22, 2008 8:19 pm

IPX and AMD64 not mixing?

Post by austin987 »

On Mon, Mar 30, 2009 at 9:47 PM, Sephiroth <[email protected]> wrote:
As for enabling root to login to X, not going to happen, too much of a risk.
Precisely why we don't encourage it in Wine. The root user needs
access to a $DISPLAY, however you can accomplish that.

--
-Austin
Gert van den Berg

IPX and AMD64 not mixing?

Post by Gert van den Berg »

On Tue, Mar 31, 2009 at 3:36 AM, Sephiroth <[email protected]> wrote:
Still not helpful, even if root is the only one that can manage IPX (design flaw in the kernel, not good) Wine still won't operate as root.  What good is having IPX in the kernel (or in Wine for that matter) if it's useless due to being root-only?
IPX seem to work for a normal user, unless you want to create
lisetening sockets (which is needed for connectionless transports)

For IP, the kernel allows non-root users to listen on ports above 1024
(or 1023, I'm not exactly sure).

I have no idea why they haven't made a similar exception for IPX...

And to use Wine as root, you should be using "su -" (with the dash) or
a login in order to have the environment set up correctly. It requires
apps to be installed seperately for root into their own WINEPREFIX as
well. You might need to get root's DISPLAY and XAuthoritiy set up
before X works... (A SSH session with X forwarding might be easier...
'ssh -X root@localhost' should do it (SSH need to be set up to allow
root logins and X11Forwwarding))
austin987
Wine Developer
Wine Developer
Posts: 2383
Joined: Fri Feb 22, 2008 8:19 pm

IPX and AMD64 not mixing?

Post by austin987 »

On Mon, Mar 30, 2009 at 10:40 PM, Gert van den Berg
<[email protected]> wrote:
For IP, the kernel allows non-root users to listen on ports above 1024
(or 1023, I'm not exactly sure).
Above 1024.

--
-Austin
Sephiroth
Level 2
Level 2
Posts: 36
Joined: Fri Mar 27, 2009 4:57 pm

Post by Sephiroth »

When trying that, I get the same error described above.

Code: Select all

~/.wine/drive_c/Games/Sierra/LOMSE$ su - root wine ./lomse.exe
Password:
/usr/bin/wine: /usr/bin/wine: cannot execute binary file
Since "-" and "-l" are the same, I tried "-l" also with identical results. You are right though, 1024+ are usable by normal users. I cannot understand for the life of me why they even bothered putting in IPX support if it's broken and useless. I am really aggaravated at the insane amount of trouble I am having with such a reliable protocol in Linux. I probably have around 30 games that rely solely on IPX for LAN games that will be unplayable if this can't be fixed. I love Linux, but with the alpha-state of the ath5k module being included in new kernels and this broken IPX crap, I am beginning to lean towards XP again. At least I can dual-boot 32bit and 64bit XP and use my games.
Gert van den Berg

IPX and AMD64 not mixing?

Post by Gert van den Berg »

On Tue, Mar 31, 2009 at 5:52 AM, Sephiroth <[email protected]> wrote:
When trying that, I get the same error described above.

Code:

~/.wine/drive_c/Games/Sierra/LOMSE$ su - root wine ./lomse.exe
Password:
/usr/bin/wine: /usr/bin/wine: cannot execute binary file
You need to use 'su -' on its own or use the -c parameter if you want
to run a command (with -c you might need to enclose the command in
quotes...)

Since "-" and "-l" are the same, I tried "-l" also with identical results.  You are right though, 1024+ are usable by normal users.  I cannot understand for the life of me why they even bothered putting in IPX support if it's broken and useless.  I am really aggaravated at the insane amount of trouble I am having with such a reliable protocol in Linux.  I probably have around 30 games that rely solely on IPX for LAN games that will be unplayable if this can't be fixed.  I love Linux, but with the alpha-state of the ath5k module being included in new kernels and this broken IPX crap, I am beginning to lean towards XP again.  At least I can dual-boot 32bit and 64bit XP and use my games.
You might want to give Solaris / OpenSolaris / a BSD a shot as well,
they may / may not have similar limitations concerning non-root IPX
use... (Solaris has RBAC which should alllow capabilities to be
assigned more finely... With the trusted extensions you can assign
permissions to just about anything...)

To try figuring out the relevant POSIX capability on Linux might work as well...

The likely candidates seem to be:
CAP_NET_BIND_SERVICE
CAP_NET_RAW
CAP_NET_ADMIN

http://www.gentoo.org/proj/en/hardened/capabilities.xml has a full list...

An introduction to POSIX capabilities:
http://www.friedhoff.org/posixfilecaps.html
http://www.ibm.com/developerworks/libra ... ixcap.html

setfcaps seem to be the relevant command, I presume that it needs to
be run on the wine executable... No idea in which package you can find
it...

Gert
austin987
Wine Developer
Wine Developer
Posts: 2383
Joined: Fri Feb 22, 2008 8:19 pm

IPX and AMD64 not mixing?

Post by austin987 »

On Mon, Mar 30, 2009 at 10:52 PM, Sephiroth <[email protected]> wrote:
When trying that, I get the same error described above.

Code:

~/.wine/drive_c/Games/Sierra/LOMSE$ su - root wine ./lomse.exe
A) That's not a single command.
B) You'll have to install that program as root. Or copy the WINEPREFIX
and chown -r root:root.

--
-Austin
Sephiroth
Level 2
Level 2
Posts: 36
Joined: Fri Mar 27, 2009 4:57 pm

Post by Sephiroth »

Too much trouble, I guess Linux just isn't worth anything beyond TCP/IP or UDP/IP yet. I know this isn't a Wine problem now, however. The whole thing with Linux is not having to run as root. Locking out IPX is the incredibly large loop-hole in that sense, since some of us still use IPX programs and Novell shares. Guess I can close my post about not being able to talk with Novell machines over on the other board as well. I now know why nobody can talk with the Novell machines. Back to Windows we go unless we get a quick kernel patch to fix this bug. Thanks to everybody that helped!
perryh

IPX and AMD64 not mixing?

Post by perryh »

"Sephiroth" <[email protected]> wrote:
You are right though, [IP ports] 1024+ are usable by normal users.
I cannot understand for the life of me why they even bothered
putting in IPX support if it's broken and useless.
Probably because someone expected that it would be used only for
mounting disk shares from Windows/Samba servers, or for exporting
disk shares via Samba: since only root can mount or export, only
root needs to be able to bind to an IPX socket.

It might be worth checking your distro's docs, to see if there may
be a configuration option.
austin987
Wine Developer
Wine Developer
Posts: 2383
Joined: Fri Feb 22, 2008 8:19 pm

IPX and AMD64 not mixing?

Post by austin987 »

On Tue, Mar 31, 2009 at 2:05 AM, <[email protected]> wrote:
"Sephiroth" <[email protected]> wrote:
You are right though, [IP ports] 1024+ are usable by normal users.
I cannot understand for the life of me why they even bothered
putting in IPX support if it's broken and useless.
Probably because someone expected that it would be used only for
mounting disk shares from Windows/Samba servers, or for exporting
disk shares via Samba:  since only root can mount or export, only
root needs to be able to bind to an IPX socket.

It might be worth checking your distro's docs, to see if there may
be a configuration option.

And file a bug with them, so they know people need IPX for gaming.

--
-Austin
Gert van den Berg

IPX and AMD64 not mixing?

Post by Gert van den Berg »

On Tue, Mar 31, 2009 at 7:44 AM, Sephiroth <[email protected]> wrote:
Locking out IPX is the incredibly large loop-hole in that sense, since some of us still use IPX programs and Novell shares.  Guess I can close my post about not being able to talk with Novell machines over on the other board as well.
Novell has been recommending IP for AGES....

IPX is mostly dead and only seen in old applications.

A separate project implementing IPX over IP on Windows, that is also
tested to work under Wine might be the best solution... (Wine would
probably need to implement proper DLL load orders if wsock32 is
replaced and calling the normal version thereof...
(http://msdn.microsoft.com/en-us/library/ms682586.aspx and
http://bugs.winehq.org/show_bug.cgi?id=14980 all seem related...))

Gert
Locked