Jump to content

Linux server, possible?


Recommended Posts

BlackHoleMaximusX
Posted

Hi everyone, anyone can tell me if IL-2 BOS server is compatible with linux?

Posted

I've had some success running it on OS X with wine. This was a few versions back. I'll try with the latest version this week and report.

Posted

Would be great if IL2 Dserver could run on Linux....

Posted

Currently running DServer on linux using wine. Appears to be working. One notable difference is that you have to set the IP in the SDS file. On Windows you can typically leave that empty. If you leave it empty on Linux, it will use 127.0.0.1, which probably isn't right.

Posted

^ Btw, I tried logging into your server today and it kept giving me the connection error 100009.

Posted

Weird, I can connect and so could two other players, including Jupp. Jupp, if you see this, can you confirm?

Posted

Currently running DServer on linux using wine. Appears to be working. One notable difference is that you have to set the IP in the SDS file. On Windows you can typically leave that empty. If you leave it empty on Linux, it will use 127.0.0.1, which probably isn't right.

Hi Coconut,

Would you describe a little bit how did you install it? I have installed wine on Debian 7 and DServer shows up, but after clicking open SDS file nothing happens.

Posted

I copied an installed copy of the game from windows to Linux in wine's directory, after trying and failing to run the installer in wine. Maybe the partial installation installed bits that DServer uses?

 

Other than that, make sure you cd to DServer's directory before launching it.

  • Upvote 1
Posted

I would like to know if there are plans to release a linux version of the DSERVER.

Posted

Thanks coconut. My Dserver on Linux works :)

Posted

It kinda defeats the purpose to run a windows application on linux in emulation mode---- unless you just don't have a windows machine to run it on.

Posted

It kinda defeats the purpose to run a windows application on linux in emulation mode---- unless you just don't have a windows machine to run it on.

 

That's the thing. I just bought some hardware for a dedicated game server. A windows license would be a significant part of the cost (about 25%), and remote control is kind of crappy. I'm glad I can avoid that.

 

Wine isn't bad at all. It's simply an implementation of some of Windows APIs to Linux. Stability and performance of games that rely heavily on DirectX can be a problem, but for a server that's no problem. As far as memory and cpu consumption go I don't seem to be losing anything. Scriptability is also very good.

Posted

That's the thing. I just bought some hardware for a dedicated game server. A windows license would be a significant part of the cost (about 25%), and remote control is kind of crappy. I'm glad I can avoid that.

 

Wine isn't bad at all. It's simply an implementation of some of Windows APIs to Linux. Stability and performance of games that rely heavily on DirectX can be a problem, but for a server that's no problem. As far as memory and cpu consumption go I don't seem to be losing anything. Scriptability is also very good.

I understand where you're coming from on the license fees and the justification for using wine.  Yeah I'm about ready to blow my brains out trying to use powershell when I could do everything I need and then some in bash. :) 

 

I currently have a media application compiled on both Linux and Windows (by the company that wrote it).   Running the application on the same hardware with the same resources (one on Linux, and one on Windows), I receive 60x faster trancoding speeds on the native Linux instance.  Granted, these are big numbers and relative to the code, but consistent with my experience throughout my career on this topic.

Posted

Thanks coconut. My Dserver on Linux works :)

Well, it works till mission end. Then DServer freezes, doesn't load next mission and I have to restart it. 

Posted (edited)

Are you using a rotation of multiple missions? I haven't tried that yet.

 

On MacOSX I did have a problem where DServer froze upon closing. That problem does not occur on my current Linux setup, which uses the latest debian stable with debian's wine packages. DServer does hang for a little while when I close it, but after 30s or so it shuts down cleanly.

Edited by coconut
Posted

I have only one mission file witch should be loaded again after mission end.

 

My Deserver also freezes on closing SDS file or exiting. What kind of Debian release have you got? 

Posted (edited)

lsb_release -da says:

Distributor ID: Debian
Description:    Debian GNU/Linux 8.1 (jessie)
Release:        8.1
Codename:       jessie
Wine has version 1.6.2. Edited by coconut
Posted

By the way, if you start DServer.exe from the command-line, and have EaDebug in systemm.reg set to winedbg --auto, you will get a clear message that the program has crashed. Maybe your DServer.exe has crashed, was attached to winedbg, but if it doesn't have a terminal attached, you can't see it.

[Software\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug] 1440783134
"Auto"="1"
"Debugger"="winedbg --auto %ld %ld"
Posted

I finally solved a problem I had with the server. Every time it crashed, it remained lingering in the process list, consuming a few percents of CPU power. To avoid that, I use the following registry key:

[Software\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug] 1440783134
"Auto"="1"
"Debugger"="winedbg --command kill %ld %ld"

This makes it easy to keep the server starting in a loop. I'm using the following script to start and restart the server. Note the use of Xvfb to have all of this running in "text mode", i.e. without a real X server. The script is a bit raw, I'll turn it into something cleaner later, maybe...

#!/bin/bash

set -xe

[ -z $1 ] && (echo "Missing sds base filename"; exit 1)

base_sds=$1
sds_file=../../data/sds/${base_sds}.sds

cd .wine/<your path here>/il2/bin/game

[ -f $sds_file ] || (echo "Could not find SDS file $sds_file"; exit 1)

ip_addr=$(/sbin/ifconfig eth0|tr ' ' '\n'|grep -e 'addr:[0-9]*\.')
ip_addr=${ip_addr#addr:}
local_config=${base_sds}.sds
sed "s/ServerIP = \".*\"/ServerIP = \"$ip_addr\"/" <$sds_file >$local_config

if [ -z $DISPLAY ]; then
        (Xvfb :1 || echo "Could not run Xvfb. Already running?")&
        export DISPLAY=:1
fi

while true; do
        d=$(date +"%F-%T")
        logfile=$base_sds-$d.log
        wine DServer.exe $local_config 2>&1 | ts | tee $logfile
done

My config files are in il2/data/sds/expert.sds, normal.sds... and I call the script using nohup (so that it keeps going on when I close the ssh connection to the server)

nohup ./bosdserver.sh expert >nohup.txt &
Posted

I installed Debian 8.2 Jessie and wine 1.6.2 but after typing wine Dserver.exe in console nothing happens. Have no idea where the problem is.

Posted

You might have to run the installer first to get the directx runtime installed. After that you can abort the installation. Copy the game files (both data and bin) from windows to wine. Cd to bin/game and start DServer.exe from there. That should do it.

Posted

OK, it works :) And after mission end DServer load new mission so everything looks good so far. 

 

Thanks.

  • 1 month later...
Posted (edited)

It no longer seems to work with version 1.104. What happens is that sometimes when someone disconnects, the server stops being responsive. New players cannot join (they get sent back to the server list), flights cannot be ended, targets don't seem to take damage, radars are not updated... but you can keep flying normally. The problem where players can't join the server is not specific to running under wine, and maybe it's a bug that is rarely triggered on Windows that shows itself more often on wine.

 

I'll try some more with other missions to see if maybe there's something wrong with the mission, but I don't think that's the case. In the end I suppose I'll have to pay for a Windows license.

Edited by coconut
Posted (edited)

...and it works again (I think). I ran the dxsetup.exe and vcredist_x86.exe from data/updater, and I haven't had a crash since then. It's just been me alone though, so I do not dare shout victory just yet, but it looks good.

 

This might also apply to people having stability issues running DServer or DEDServer on Windows. If players were unable to finish their flight even though they had landed, try running these exes from data/updater. It might solve it.

 

If anyone wants to give it a run, I'll leave the server running, it's aptly called "wine test".

Edited by coconut
Posted

New negative report: It does not work. If there's heavy AI activity in the air, the server can end up in a situation where it becomes partly unresponsive. One can fly and fight normally, but kill notifications are dropped, it's impossible to finish the flight even after landing. Leaving the server and attempting to connect to the server again fails, sending you back to the server list.

 

By "heavy activity", I mean maybe 10 AI fighters/attack planes, with a tick delay over 10ms.

 

Wine test is over for me, I'll have to install windows on my server. That makes me a little sad, I had a pretty nice setup with my debian installation.

Posted

It's a bad news for sure .... Linux server would be great

  • 3 years later...
Posted

I just tested it an running DServer on Linux works perfectly except for BoS.LogParser.Offline.exe which as far as I can tell makes the stats not show up. You can see more details of my testing in my comment here:

 

  • Upvote 1
  • 3 weeks later...
Posted

OK is there way to repair BoS.LogParser.Offline.exe ??

Posted

Yes, decompile BoS.LogParser.Offline.exe with ILSpy then recompile it using Visual Studio IDE targeting .NET 4.0. Then just replace the old BoS.LogParser.Offline.exe with the newly compiled one.

 

I'll be working on a script this weekend to make it simple and not require Visual Studio IDE.

  • 4 weeks later...
Posted
On 2/5/2019 at 5:49 PM, Nick_R said:

Yes, decompile BoS.LogParser.Offline.exe with ILSpy then recompile it using Visual Studio IDE targeting .NET 4.0. Then just replace the old BoS.LogParser.Offline.exe with the newly compiled one.

 

I'll be working on a script this weekend to make it simple and not require Visual Studio IDE.

 

Hi Nick, am curious the current status of dserver via Wine? I can probably handle the decompile/recompile but I'm only going to embark on messing with all this if dserver via Wine is actually viable. What are your experiences? Thanks!

Posted

It runs flawlessly. I actually wrote a script to compile Lparser against .NET 4.0 on Linux so that makes it really simple. Instructions are here:

 

  • Like 1

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
×
×
  • Create New...