AA dedicated server for MIPS arch?

Post here if you need help setting up your server, etc.
User avatar
Z-Man
God & Project Admin
Posts: 11717
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

It would be enough for a master server, maybe a four player game server. If there really is an emulator around, I can give it a try some time.
User avatar
Your_mom
Match Winner
Posts: 653
Joined: Sun Jun 06, 2004 1:45 am

Post by Your_mom »

http://vmips.sourceforge.net/ i found this although getting that to work may require some elbow grease. good luck guys
User avatar
Z-Man
God & Project Admin
Posts: 11717
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

Thanks. Gentoo has ebuilds for that, but they are marked as very experimental and unstable. I'm giving them a shot anyway. Mmm, ACCEPT_KEYWORDS="~*". Sounds like fun.
va1210
Posts: 5
Joined: Thu Aug 11, 2005 10:28 pm
Location: Helsinki

Post by va1210 »

I just installed an MMC/SD reader into my WRT54G, and slipped in a 128 Mb card. So now space at least shouldn't be a problem. If anyone here still feels like giving this MIPS-port of the dedicated server a whirl I'd be more than happy to let my router serve as a development guinea pig.
User avatar
Lucifer
Project Developer
Posts: 8751
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

Heh. Now that I'm in a debian-based distribution, maybe there's packages for the cross-compiler. I'll have to see. No promises, though, I'm really busy these days with school/work. :(
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
dlh
Formerly That OS X Guy
Posts: 2035
Joined: Fri Jan 02, 2004 12:05 am
Contact:

Post by dlh »

Hmm, which one should I install?

Code: Select all

mips-elf-gcc                   cross/mips-elf-gcc @3.4.3        gcc cross-compilers for mips-elf, with newlib runtime library
mips-rtems-gcc                 cross/mips-rtems-gcc @3.2.3        gcc cross-compilers for mips-rtems, with newlib runtime library.
Walking Tree
Match Winner
Posts: 641
Joined: Sun Jul 10, 2005 9:14 am

Post by Walking Tree »

armagetron dedicated runs on mips little and big endian. see http://packages.debian.org/unstable/gam ... ron-server .
on the grid as ~free::zombie~
User avatar
Lucifer
Project Developer
Posts: 8751
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Post by Lucifer »

bump. Check the armagetron linux thread for the t2 thing, turns out t2 has a wrt2 target. Is anybody still available for testing?
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Z-Man
God & Project Admin
Posts: 11717
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

With my bandwidth upgrade, I got a new AVM Fritz!Box WLAN 3030. It's listed as theoretically supported. My old modem is still working fine, so that gives me some experimentation freedom and my geek pride has been activated. I'll try to get at least the master server running. Chances are slim, my model only seems to have 4 Mb of Flash, but I probably can't stand not giving it a try :)
User avatar
Z-Man
God & Project Admin
Posts: 11717
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

Progress report, mostly for myself for future reference. I found a German article series about how to upload custom software to my particular hardware that was helpful:
http://www.tecchannel.de/index.cfm?pid= ... 438995&p=1

So I tried to compile the game for OpenWRT. They've got a neat SDK. First, I built libxlm2 with the attached build rules (to be copied into <SDKPATH>/packages, then copied libxml2.a from the libxml2 build directory to <SDKPATH>/staging_dir_mipsel/lib to make our configure script happy and copied the includes into
<SDKPATH>/staging_dir_mipsel/include/libxml. xml2-config needed to be copied into
<SDKPATH>/staging_dir_mipsel/bin and adapted to the true installation paths, it told the caller to look in /usr/include.

Then, I used the attached configure script wrapper (or the attached configuration for <SDK>/packages, but it requires a special unofficial tarball) to build arma. A correction to a system header was required, <SDK>/staging_dir_mipsel/include/c++/3.4.4/mipsel-linux-uclibc/bits/ctype_base.h was missing
#include <bits/uClibc_touplow.h>
And our detection of the sinf/cosf etc functions in our configure script fails because they're inline in this architecture. The required adaptions are in branches/0.2.8.

Right now, I'm trying to prevent headers from my real system from getting included. They lead to cryptic error messages.

A couple of other fixes, rebuilds, and curses later, the build runs through and I end up with this:

Code: Select all

manuel@gonzo ~/Tron/workspaces/liquid/wrt/src $ ls -l armagetronad_main*
-rwxr-xr-x  1 manuel users 4302204 Aug  6 16:14 armagetronad_main
-rwxr-xr-x  1 manuel users  962353 Aug  6 16:14 armagetronad_main_master
Looks like I can rule running a real server out :( Unless the filesystem compression is really good, after bzipping:

Code: Select all

-rwxr-xr-x  1 manuel users 1181853 Aug  6 16:14 armagetronad_main.bz2
-rwxr-xr-x  1 manuel users  234461 Aug  6 16:14 armagetronad_main_master.bz2
So there is a bit of hope left. Maybe if we add the option to throw out libxml2, things look better. But I don't know yet how much RAM my box has, so it's too early for even the master server victory dance.

I'll take a break from that now; It's taken too much time this weekend already.
Attachments
configure.not.zip
Configure call wrapper, adapt path to SDK and armagetron. Call from an empty directory.
(1.27 KiB) Downloaded 224 times
libxml2-wrt.tar.bz2
Crude libxml build stuff, download probably will fail, you have to add the archive manually to /dl
(1.26 KiB) Downloaded 242 times
armagetronad-wrt.tar.bz2
Crude armagetronad build stuff
(1.27 KiB) Downloaded 215 times
User avatar
Z-Man
God & Project Admin
Posts: 11717
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

Progress :) OpenWRT seems to be too cumbersome to install on my particular hardware, so I'm moving to other approaches. There is the danisahne-mod that takes the original Fritz! firmware and modifies it. I got it installed no problem, a telnet daemon is running. After a bit of tweaking, I got the master server I previously compiled with OpenWRT to load and run without missing library complaints. It segfaults. I don't know yet whether that's because of the tight memory. The box has only 16 MB total (it seems), the system reports 14 MB total, I assume 2 MB go away to some ramdisk of sorts, and of that 14 MB, less than two are free in the default configuration. Killing the web interface and some other stuff I don't know the use of (must not be essential, otherwise I couldn't post this :) ) frees some more. It may become neccesary to strip the executable down a bit by removing configuration options and looking for stuff that gets linked in, but is in fact unused. The network object handling code is a prime candidate, the master only uses messages.
User avatar
Z-Man
God & Project Admin
Posts: 11717
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

Seems to work :) Some adaptions to the peculiarities seem to be needed still, and startup could be accelerated (most is parsing the configuration and spitting out error messages):

Code: Select all

[2002/09/08 14:01:49] [0] Command MAX_SIMULATE_AHEAD unknown.
[2002/09/08 14:01:49] [0]
[2002/09/08 14:01:49] [0] Command PREDICT_WALLS unknown.
[2002/09/08 14:01:49] [0]
[2002/09/08 14:01:49] [0] Bound socket to *.*.*.*:2051.
[2002/09/08 14:01:49] [0] Bound socket to *.*.*.*:4533.
[2002/09/08 14:01:49] [0] Warning in tString tPath::GetWritePath(const char*) const in ../../../armagetronad/src/tools/tDirectories.cpp:752 :
        [2002/09/08 14:01:49] [0] Could not create path to //.armagetronad-dedicated/var/master_list.srv. Check your user's rights.
[2002/09/08 14:01:49] [0] Warning in tString tPath::GetWritePath(const char*) const in ../../../armagetronad/src/tools/tDirectories.cpp:752 :
        [2002/09/08 14:01:50] [0] Could not create path to //.armagetronad-dedicated/var/master_list.srv. Check your user's rights.
[2002/09/08 14:01:59] [0] Warning in tString tPath::GetWritePath(const char*) const in ../../../armagetronad/src/tools/tDirectories.cpp:752 :
        [2002/09/08 14:01:59] [0] Could not create path to //.armagetronad-dedicated/var/master_list.srv. Check your user's rights.
[2002/09/08 14:04:25] [1] Received login from 192.168.0.3:1437 via socket *.*.*.*:4533.
[2002/09/08 14:04:25] [1] New user: 1
[2002/09/08 14:04:25] [1] Giving server info to user 1
[2002/09/08 14:04:25] [1] Killing user 1, ping .
Plenty of memory is left, even with the master running:

Code: Select all

/ # free
              total         used         free       shared      buffers
  Mem:        14592        14040          552            0         1300
/me puts on a geek crown and performs a silly walk victory dance.
User avatar
Tank Program
Forum & Project Admin, PhD
Posts: 6712
Joined: Thu Dec 18, 2003 7:03 pm

Post by Tank Program »

Cool.
Image
F3ar0n
Posts: 9
Joined: Sat Apr 19, 2008 3:04 am

Post by F3ar0n »

Z-Man wrote:Seems to work :) Some adaptions to the peculiarities seem to be needed still, and startup could be accelerated (most is parsing the configuration and spitting out error messages):

Code: Select all

[2002/09/08 14:01:49] [0] Command MAX_SIMULATE_AHEAD unknown.
[2002/09/08 14:01:49] [0]
[2002/09/08 14:01:49] [0] Command PREDICT_WALLS unknown.
[2002/09/08 14:01:49] [0]
[2002/09/08 14:01:49] [0] Bound socket to *.*.*.*:2051.
[2002/09/08 14:01:49] [0] Bound socket to *.*.*.*:4533.
[2002/09/08 14:01:49] [0] Warning in tString tPath::GetWritePath(const char*) const in ../../../armagetronad/src/tools/tDirectories.cpp:752 :
        [2002/09/08 14:01:49] [0] Could not create path to //.armagetronad-dedicated/var/master_list.srv. Check your user's rights.
[2002/09/08 14:01:49] [0] Warning in tString tPath::GetWritePath(const char*) const in ../../../armagetronad/src/tools/tDirectories.cpp:752 :
        [2002/09/08 14:01:50] [0] Could not create path to //.armagetronad-dedicated/var/master_list.srv. Check your user's rights.
[2002/09/08 14:01:59] [0] Warning in tString tPath::GetWritePath(const char*) const in ../../../armagetronad/src/tools/tDirectories.cpp:752 :
        [2002/09/08 14:01:59] [0] Could not create path to //.armagetronad-dedicated/var/master_list.srv. Check your user's rights.
[2002/09/08 14:04:25] [1] Received login from 192.168.0.3:1437 via socket *.*.*.*:4533.
[2002/09/08 14:04:25] [1] New user: 1
[2002/09/08 14:04:25] [1] Giving server info to user 1
[2002/09/08 14:04:25] [1] Killing user 1, ping .
Plenty of memory is left, even with the master running:

Code: Select all

/ # free
              total         used         free       shared      buffers
  Mem:        14592        14040          552            0         1300
/me puts on a geek crown and performs a silly walk victory dance.

Any chance u could make a brief guide on what u did. I'm really interested in possibly trying to get something like this to run on my ddwrt linksys setup.
User avatar
Z-Man
God & Project Admin
Posts: 11717
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

You'll notice that was two years ago. IIRC, I did no code changes in arma itself, I just compiled it with the Danisahne mod after installing a C++ compiler there. After setting everything up, I just used the usual ./configure method of compilation.

The Danisahne mod is a special thing for Fritz! boxes, though. And I stopped because the whole thing is a bit futile, we won't get a more reliable master server that way: most network problems here are indeed caused by the Fritz! box itself and not the home server running my master server.
Post Reply