Running my own linux server

Apr 09, 2010 13:41 Running my own linux server
Hi All,

I'm trying to run my own bolo server on Linux for a few friends, but I'm having a bit of trouble. I've tried two different things so far:

1. The linux binary from winbolo.com -- downloaded OK, but I get an error when I try to use it:
[code:1:ecb7af80af]$ ./linbolods
-bash: ./linbolods: No such file or directory[/code:1:ecb7af80af]
This looks like there's a library missing, but I'm not sure what it would be - I have glibc installed and SDL (since I can compile it). ltrace and strace don't give me many clues either, or I'm just not reading them properly:

[code:1:ecb7af80af]~/winbolo/linbolo117-server$ ltrace /home/anthony/winbolo/linbolo117-server/linbolods
Can't execute `/home/anthony/winbolo/linbolo117-server/linbolods': No such file or directory
PTRACE_SETOPTIONS: No such process[/code:1:ecb7af80af]
and
[code:1:ecb7af80af]~/winbolo/linbolo117-server$ strace /home/anthony/winbolo/linbolo117-server/linbolods
execve("/home/anthony/winbolo/linbolo117-server/linbolods", ["/home/anthony/winbolo/linbolo117"...], [/* 18 vars */]) = -1 ENOENT (No such file or directory)
dup(2) = 3
fcntl(3, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(3, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aff19ee0000
lseek(3, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(3, "strace: exec: No such file or dir"..., 40strace: exec: No such file or directory
) = 40
close(3) = 0
munmap(0x2aff19ee0000, 4096) = 0
exit_group(1) = ?
~/winbolo/linbolo117-server$[/code:1:ecb7af80af]

2. I've tried building from scratch, which works, but I can't seem to connect. The code is the latest from the Google Code repository, and claims to be 1.16, even though 1.17 is up on winbolo.com. I have it running, but I can't connect to it with 1.17, 1.16 or 1.15. The client claims not to be able to connect (check firewall, port, etc.) and with 1.17 the server gives this message:
[code:1:ecb7af80af]~/winbolo$ ./linbolods -map maps/bigcity.map -port 4242 -gametype Open -ai no -nowinbolonet -maxplayers 16 -addr XXX.XXX.XXX.XXX
LinBolo Server - v1.16 (12/02/09)
LinBolo Copyright 1998-2006 John Morrison
Bolo Copyright 1987-1995 Stuart Cheshire

Core Simulation Startup
Server Transport Startup
Thread Manager Startup
Type "help" for help, "quit" to exit.
Info packet request from XXX.XXX.XXX.XXX (my client's IP address)
[/code:1:ecb7af80af]
And then nothing. Can anyone shed any light on what's going on? Is this an RSA key issue or something? (Although I suspect that I might get a different error message if that were the case).

Thanks in advance,

Anthony
Apr 11, 2010 18:41
Wow, completely missed this one.

Ok, yes, you can't connect because of RSA keys. They are setup that way to prevent people from creating hacked clients and joining games.

Did you set linbolods to be an executable? I believe when you unzip it originally its not one and you have to chmod it.

Min
Apr 12, 2010 00:34
Min wrote:

Ok, yes, you can't connect because of RSA keys. They are setup that way to prevent people from creating hacked clients and joining games.

Ok, so if I understand you correctly, to run a custom server I also need to distribute a custom client with the same keys? Or is there an easy way to disable the key checking?

Min wrote:

Did you set linbolods to be an executable? I believe when you unzip it originally its not one and you have to chmod it.
Min

Yes, it was executable right 'out of the gate', otherwise the strace stuff wouldn't have worked. I'm a programmer/linux administrator in my day job, so I can handle the easy stuff like that ;)

I suspect that it's the libraries at fault. My system is Ubuntu Jaunty, which has glibc version 2.9, but the server at winbolo.com seem to be linked against 2.4, which is quite old now. If it's not possible to get a new release linked against 2.9, I'll see if I can install 2.4 alongside 2.9 and report back here.

Thanks,

Anthony
Last edited: Apr 12, 2010 00:52 (edited 1 time)
Apr 12, 2010 00:43
anthony wrote:
Ok, so if I understand you correctly, to run a custom server I also need to distribute a custom client with the same keys? Or is there an easy way to disable the key checking?


Disabling key checking would enable people to simply compile up a cheat client and join any game. Disabling the key checking is not an option. To run a custom server you would need to distribute a custom client with the matching keys. That is correct.

anthony wrote:
Yes, it was executable right 'out of the gate', otherwise the strace stuff wouldn't have worked. I'm a programmer/linux administrator in my day job, so I can handle the easy stuff like that ;)

I suspect that it's the libraries at fault. My system is Ubuntu Jaunty, which has glibc version 2.9, but the server at winbolo.com seem to be linked against 2.4, which is quite old now. If it's not possible to get a new release linked against 2.9, I'll see if I can install 2.4 alongside 2.9 and report back here.


Ya, sounds like that's probably whats going on for sure. I encountered similiar problems when I was setting up my server originally. But I just installed 2.4 and got rid of 2.9 I believe. Its a bit of a pain honestly. If you want linbolods linked against 2.9 you'd have to get elvis to do it. He's the only one with the RSA keys.

Min
Apr 17, 2010 13:08
Min wrote:
anthony wrote:
Ok, so if I understand you correctly, to run a custom server I also need to distribute a custom client with the same keys? Or is there an easy way to disable the key checking?


Disabling key checking would enable people to simply compile up a cheat client and join any game. Disabling the key checking is not an option. To run a custom server you would need to distribute a custom client with the matching keys. That is correct.


Well, yeah - but if it's just for my friends I can stick a password on it and have done with it.

Min wrote:
anthony wrote:
I suspect that it's the libraries at fault.


Ya, sounds like that's probably whats going on for sure. I encountered similiar problems when I was setting up my server originally. But I just installed 2.4 and got rid of 2.9 I believe. Its a bit of a pain honestly. If you want linbolods linked against 2.9 you'd have to get elvis to do it. He's the only one with the RSA keys.


I have other stuff running, so I can't really downgrade to 2.4 without breaking everything. I'm currently compiling 2.4 -- if that works then I should be able to run winbolo by altering LD_*_PATHS in a script, like this:

http://linuxgazette.net/issue48/tag/48.html

Compiling glibc is a right royal pain - it's grinding away at the moment, but I'm running into errors - mainly because it's an old code base, and I'm trying to compile with a shiny new gcc (4.3.3).

I'll let you know how it goes. Thanks for your help so far.

Anthony
Apr 17, 2010 16:24
No worries, hopefully it helps.

Min
May 02, 2010 12:10
Still no joy - I haven't been able to get the 2.4 glibc to compile (next try is compiling gcc2.95 from scratch and building with that, but I dunno whether it'll work. I could also try installing an antique version of Linux on an old PC, but I don't know that that's likely to work)

I also haven't heard anything from Elvis, so I'm guessing that a version of WinBolo with a more up to date glibc is not going to be likely.

A pity - I think I can see now why there aren't too many Bolo servers around, despite it being such a good game...

Any other thoughts on how I can get a bolo server running? How are you doing it?

Thanks,

Anthony
May 02, 2010 13:38
I'll compile up a server with the release keys using ubuntu 10.04 in the next couple of days.

I downloaded the winbolo server from winbolo.com and could run it on a fresh ubuntu 9.10 server installation without any problems. The only additional package I had to install was libsdl1.2debian
May 03, 2010 10:51 [SOLVED] Running my own linux server
Elvis wrote:
I'll compile up a server with the release keys using ubuntu 10.04 in the next couple of days.


That would be great. I'm running on Jaunty (9.04?) but can fairly easily upgrade. My glibc is 2.9

Elvis wrote:
I downloaded the winbolo server from winbolo.com and could run it on a fresh ubuntu 9.10 server installation without any problems. The only additional package I had to install was libsdl1.2debian


That's ... interesting, since I'm unable to run it on an older system. I had thought that my problems were due to the binary needing an older version of glibc, but perhaps that's not the case?

Aha! Figured it out! Of course - I'm running on an x86_64 kernel, and hadn't installed the 32-bit compatibility libraries! I've just done a

[code:1:684d37029b]sudo apt-get install ia32-libs[/code:1:684d37029b]

and everything seems to be working a-ok now with the binary from winbolo.com.

Feeling kinda stoopid, but hopefully this will help others who have the same (or similar) problem.

Thanks,

Anthony
Last edited: May 03, 2010 12:17 (edited 1 time)
May 03, 2010 11:56
The proof is in the pudding, of course :)

http://www.winbolo.net/gameinfo.php?ip=tenacity.rambleone.com.au&port=4242&key=7aa093f76704ce13f363c218fec4b8bc
May 04, 2010 05:37
Very nice :) good work :)

Min