Zandronum 3.0 on Raspberry PI
Zandronum 3.0 on Raspberry PI
Here are steps that I've compiled Zandronum 3.0 on Raspberry PI 3 successfully with.
The main difference against Wiki steps for 2.0 is to NOT apply raspberry patch and change of attributes of one variable from static char to signed static char in order to prevent compiler error.
Install packages necessary to perform build:
sudo apt-get install build-essential zlib1g-dev libsdl1.2-dev libjpeg-dev \
nasm tar libbz2-dev libgtk2.0-dev cmake mercurial libfluidsynth-dev libgl1-mesa-dev \
libssl-dev
Create and cd to your working directory:
$ mkdir $HOME/zandronum-build && cd $HOME/zandronum-build
Clone the Zandronum repository:
$ hg clone https://bitbucket.org/Torr_Samaho/zandronum .
Create and cd to the directory where build files will be outputted:
$ mkdir buildserver && cd buildserver
Change variable type from char to signed char in file p_spec.cpp line 1578:
Original declaration:
static const char hexenScrollies[24][2] =
{
{ 0, 1 }, { 0, 2 }, { 0, 4 },
{ -1, 0 }, { -2, 0 }, { -4, 0 },
{ 0, -1 }, { 0, -2 }, { 0, -4 },
{ 1, 0 }, { 2, 0 }, { 4, 0 },
{ 1, 1 }, { 2, 2 }, { 4, 4 },
{ -1, 1 }, { -2, 2 }, { -4, 4 },
{ -1, -1 }, { -2, -2 }, { -4, -4 },
{ 1, -1 }, { 2, -2 }, { 4, -4 }
};
modified declaration with added signed:
signed static const char hexenScrollies[24][2] =
{
{ 0, 1 }, { 0, 2 }, { 0, 4 },
{ -1, 0 }, { -2, 0 }, { -4, 0 },
{ 0, -1 }, { 0, -2 }, { 0, -4 },
{ 1, 0 }, { 2, 0 }, { 4, 0 },
{ 1, 1 }, { 2, 2 }, { 4, 4 },
{ -1, 1 }, { -2, 2 }, { -4, 4 },
{ -1, -1 }, { -2, -2 }, { -4, -4 },
{ 1, -1 }, { 2, -2 }, { 4, -4 }
};
Generate Makefiles
Run cmake, this generates the Makefiles.
$ make clean; \
cmake -DCMAKE_BUILD_TYPE=Release -DSERVERONLY=ON -DNO_ASM=1 ..
The -DNO_ASM=1 argument is important as it doesn't compile the architecture-dependent assembly code.
The main difference against Wiki steps for 2.0 is to NOT apply raspberry patch and change of attributes of one variable from static char to signed static char in order to prevent compiler error.
Install packages necessary to perform build:
sudo apt-get install build-essential zlib1g-dev libsdl1.2-dev libjpeg-dev \
nasm tar libbz2-dev libgtk2.0-dev cmake mercurial libfluidsynth-dev libgl1-mesa-dev \
libssl-dev
Create and cd to your working directory:
$ mkdir $HOME/zandronum-build && cd $HOME/zandronum-build
Clone the Zandronum repository:
$ hg clone https://bitbucket.org/Torr_Samaho/zandronum .
Create and cd to the directory where build files will be outputted:
$ mkdir buildserver && cd buildserver
Change variable type from char to signed char in file p_spec.cpp line 1578:
Original declaration:
static const char hexenScrollies[24][2] =
{
{ 0, 1 }, { 0, 2 }, { 0, 4 },
{ -1, 0 }, { -2, 0 }, { -4, 0 },
{ 0, -1 }, { 0, -2 }, { 0, -4 },
{ 1, 0 }, { 2, 0 }, { 4, 0 },
{ 1, 1 }, { 2, 2 }, { 4, 4 },
{ -1, 1 }, { -2, 2 }, { -4, 4 },
{ -1, -1 }, { -2, -2 }, { -4, -4 },
{ 1, -1 }, { 2, -2 }, { 4, -4 }
};
modified declaration with added signed:
signed static const char hexenScrollies[24][2] =
{
{ 0, 1 }, { 0, 2 }, { 0, 4 },
{ -1, 0 }, { -2, 0 }, { -4, 0 },
{ 0, -1 }, { 0, -2 }, { 0, -4 },
{ 1, 0 }, { 2, 0 }, { 4, 0 },
{ 1, 1 }, { 2, 2 }, { 4, 4 },
{ -1, 1 }, { -2, 2 }, { -4, 4 },
{ -1, -1 }, { -2, -2 }, { -4, -4 },
{ 1, -1 }, { 2, -2 }, { 4, -4 }
};
Generate Makefiles
Run cmake, this generates the Makefiles.
$ make clean; \
cmake -DCMAKE_BUILD_TYPE=Release -DSERVERONLY=ON -DNO_ASM=1 ..
The -DNO_ASM=1 argument is important as it doesn't compile the architecture-dependent assembly code.
Re: Zandronum 3.0 on Raspberry PI
What OS are you using? I am using ArchLinux. (4.9.60-1-ARCH - armv7l - Raspberry Pi 2 B)
I attempted to do the build with these changes and received the following errors.
I attempted to do the build with these changes and received the following errors.
Code: Select all
Determining if the function strnicmp exists failed with the following output:
Change Dir: /home/alarm/zandronum-build/zandronum/buildserver/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTC_4f72d/fast"
/usr/bin/make -f CMakeFiles/cmTC_4f72d.dir/build.make CMakeFiles/cmTC_4f72d.dir/build
make[1]: Entering directory '/home/alarm/zandronum-build/zandronum/buildserver/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_4f72d.dir/CheckFunctionExists.c.o
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=strnicmp -o CMakeFiles/cmTC_4f72d.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.9/Modules/CheckFunctionExists.c
Linking C executable cmTC_4f72d
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_4f72d.dir/link.txt --verbose=1
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=strnicmp -rdynamic CMakeFiles/cmTC_4f72d.dir/CheckFunctionExists.c.o -o cmTC_4f72d
CMakeFiles/cmTC_4f72d.dir/CheckFunctionExists.c.o: In function `main':
CheckFunctionExists.c:(.text+0x14): undefined reference to `strnicmp'
collect2: error: ld returned 1 exit status
make[1]: *** [CMakeFiles/cmTC_4f72d.dir/build.make:98: cmTC_4f72d] Error 1
make[1]: Leaving directory '/home/alarm/zandronum-build/zandronum/buildserver/CMakeFiles/CMakeTmp'
make: *** [Makefile:126: cmTC_4f72d/fast] Error 2
Determining if the function itoa exists failed with the following output:
Change Dir: /home/alarm/zandronum-build/zandronum/buildserver/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTC_9cd41/fast"
/usr/bin/make -f CMakeFiles/cmTC_9cd41.dir/build.make CMakeFiles/cmTC_9cd41.dir/build
make[1]: Entering directory '/home/alarm/zandronum-build/zandronum/buildserver/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_9cd41.dir/CheckFunctionExists.c.o
/usr/bin/cc -Wall -Wno-pointer-sign -Wno-uninitialized -DCHECK_FUNCTION_EXISTS=itoa -o CMakeFiles/cmTC_9cd41.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.9/Modules/CheckFunctionExists.c
Linking C executable cmTC_9cd41
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9cd41.dir/link.txt --verbose=1
/usr/bin/cc -Wall -Wno-pointer-sign -Wno-uninitialized -DCHECK_FUNCTION_EXISTS=itoa -rdynamic CMakeFiles/cmTC_9cd41.dir/CheckFunctionExists.c.o -o cmTC_9cd41
CMakeFiles/cmTC_9cd41.dir/CheckFunctionExists.c.o: In function `main':
CheckFunctionExists.c:(.text+0x14): undefined reference to `itoa'
collect2: error: ld returned 1 exit status
make[1]: *** [CMakeFiles/cmTC_9cd41.dir/build.make:98: cmTC_9cd41] Error 1
make[1]: Leaving directory '/home/alarm/zandronum-build/zandronum/buildserver/CMakeFiles/CMakeTmp'
make: *** [Makefile:126: cmTC_9cd41/fast] Error 2
Performing C++ SOURCE FILE Test DUMB_CAN_USE_SSE failed with the following output:
Change Dir: /home/alarm/zandronum-build/zandronum/buildserver/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTC_3d0d9/fast"
/usr/bin/make -f CMakeFiles/cmTC_3d0d9.dir/build.make CMakeFiles/cmTC_3d0d9.dir/build
make[1]: Entering directory '/home/alarm/zandronum-build/zandronum/buildserver/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_3d0d9.dir/src.cxx.o
/usr/bin/c++ -DDUMB_CAN_USE_SSE -msse -o CMakeFiles/cmTC_3d0d9.dir/src.cxx.o -c /home/alarm/zandronum-build/zandronum/buildserver/CMakeFiles/CMakeTmp/src.cxx
c++: error: unrecognized command line option '-msse'; did you mean '-fdse'?
make[1]: *** [CMakeFiles/cmTC_3d0d9.dir/build.make:66: CMakeFiles/cmTC_3d0d9.dir/src.cxx.o] Error 1
make[1]: Leaving directory '/home/alarm/zandronum-build/zandronum/buildserver/CMakeFiles/CMakeTmp'
make: *** [Makefile:126: cmTC_3d0d9/fast] Error 2
Source file was:
int main() { return 0; }
Re: Zandronum 3.0 on Raspberry PI
Update.
Switched OS to Raspbian Stretch Lite. Great Success!
Confirmed Raspberry Pi 2 B is running a server on the latest alpha build.
Switched OS to Raspbian Stretch Lite. Great Success!
Confirmed Raspberry Pi 2 B is running a server on the latest alpha build.
Re: Zandronum 3.0 on Raspberry PI
Hi,
If you want to compile the Zandronum client, I suggest you to use this repo: https://bitbucket.org/ptitSeb/zandronum
With my diff file: https://github.com/Nekrofage/zandronum3
If you want to compile the Zandronum client, I suggest you to use this repo: https://bitbucket.org/ptitSeb/zandronum
With my diff file: https://github.com/Nekrofage/zandronum3
Re: Zandronum 3.0 on Raspberry PI
My question is to the author that if i manage to create the server... where and how can i set the playmode and the maps and music and stuff
I know it might sound like a stupid question but i would like to know before i set it up.
Also if i use custom pk3 files where people can get it from? Will it be an automatic download for them trought the doomseeker or should i upload it somewhere and link it to the srv deacription in doomseeker?
Again
Please forgive me if this is a dumb question. Aimoly i do not kbow this and want to get informed.
Thanks for the answers!
I know it might sound like a stupid question but i would like to know before i set it up.
Also if i use custom pk3 files where people can get it from? Will it be an automatic download for them trought the doomseeker or should i upload it somewhere and link it to the srv deacription in doomseeker?
Again
Please forgive me if this is a dumb question. Aimoly i do not kbow this and want to get informed.
Thanks for the answers!
- Torr Samaho
- Lead Developer
- Posts: 1543
- Joined: Fri May 25, 2012 6:03 pm
- Location: Germany
Re: Zandronum 3.0 on Raspberry PI
The Raspi server behaves like a Linux server, i.e. you have to configure it either via the command line call you use to start the server or with its text console. You can find some more information on the Wiki: https://wiki.zandronum.com/Creating_a_Game_Server
Re: Zandronum 3.0 on Raspberry PI
I've tried to compile it for OrangePI ZERO now but my problem is that client of Zandronum 3.0 (official Windows build) claims that version of server's protocol is different. Where can I get correct version of source files compatible with official Zandronum build version 3.0?
It appears that there is some development version now but cannot find version used for official builds (to have server compatible).
It appears that there is some development version now but cannot find version used for official builds (to have server compatible).
Re: Zandronum 3.0 on Raspberry PI
I've revisited this and added specific version (3.0) in order not to mirror head version (which is not compatible with official clients).
I was able to compile/run this on different hardware based on armv7l (other than Raspberry PI).
Install packages necessary to perform build:
sudo apt-get install build-essential zlib1g-dev libsdl1.2-dev libjpeg-dev \
nasm tar libbz2-dev libgtk2.0-dev cmake mercurial libfluidsynth-dev libgl1-mesa-dev \
libssl-dev
Create and cd to your working directory:
$ mkdir $HOME/zandronum-build && cd $HOME/zandronum-build
Clone the Zandronum ZA_3.0 repository:
$ hg clone -r ZA_3.0 https://bitbucket.org/Torr_Samaho/zandronum .
Create and cd to the directory where build files will be outputted:
$ mkdir buildserver && cd buildserver
Change variable type from char to signed char in file p_spec.cpp line 1578:
Original declaration:
static const char hexenScrollies[24][2] =
{
{ 0, 1 }, { 0, 2 }, { 0, 4 },
{ -1, 0 }, { -2, 0 }, { -4, 0 },
{ 0, -1 }, { 0, -2 }, { 0, -4 },
{ 1, 0 }, { 2, 0 }, { 4, 0 },
{ 1, 1 }, { 2, 2 }, { 4, 4 },
{ -1, 1 }, { -2, 2 }, { -4, 4 },
{ -1, -1 }, { -2, -2 }, { -4, -4 },
{ 1, -1 }, { 2, -2 }, { 4, -4 }
};
modified declaration with added signed:
signed static const char hexenScrollies[24][2] =
{
{ 0, 1 }, { 0, 2 }, { 0, 4 },
{ -1, 0 }, { -2, 0 }, { -4, 0 },
{ 0, -1 }, { 0, -2 }, { 0, -4 },
{ 1, 0 }, { 2, 0 }, { 4, 0 },
{ 1, 1 }, { 2, 2 }, { 4, 4 },
{ -1, 1 }, { -2, 2 }, { -4, 4 },
{ -1, -1 }, { -2, -2 }, { -4, -4 },
{ 1, -1 }, { 2, -2 }, { 4, -4 }
};
Generate Makefiles:
$ make clean; \
cmake -DCMAKE_BUILD_TYPE=Release -DSERVERONLY=ON -DNO_ASM=1 ..
The -DNO_ASM=1 argument is important as it doesn't compile the architecture-dependent assembly code.
Build Zandronum:
make
I was able to compile/run this on different hardware based on armv7l (other than Raspberry PI).
Install packages necessary to perform build:
sudo apt-get install build-essential zlib1g-dev libsdl1.2-dev libjpeg-dev \
nasm tar libbz2-dev libgtk2.0-dev cmake mercurial libfluidsynth-dev libgl1-mesa-dev \
libssl-dev
Create and cd to your working directory:
$ mkdir $HOME/zandronum-build && cd $HOME/zandronum-build
Clone the Zandronum ZA_3.0 repository:
$ hg clone -r ZA_3.0 https://bitbucket.org/Torr_Samaho/zandronum .
Create and cd to the directory where build files will be outputted:
$ mkdir buildserver && cd buildserver
Change variable type from char to signed char in file p_spec.cpp line 1578:
Original declaration:
static const char hexenScrollies[24][2] =
{
{ 0, 1 }, { 0, 2 }, { 0, 4 },
{ -1, 0 }, { -2, 0 }, { -4, 0 },
{ 0, -1 }, { 0, -2 }, { 0, -4 },
{ 1, 0 }, { 2, 0 }, { 4, 0 },
{ 1, 1 }, { 2, 2 }, { 4, 4 },
{ -1, 1 }, { -2, 2 }, { -4, 4 },
{ -1, -1 }, { -2, -2 }, { -4, -4 },
{ 1, -1 }, { 2, -2 }, { 4, -4 }
};
modified declaration with added signed:
signed static const char hexenScrollies[24][2] =
{
{ 0, 1 }, { 0, 2 }, { 0, 4 },
{ -1, 0 }, { -2, 0 }, { -4, 0 },
{ 0, -1 }, { 0, -2 }, { 0, -4 },
{ 1, 0 }, { 2, 0 }, { 4, 0 },
{ 1, 1 }, { 2, 2 }, { 4, 4 },
{ -1, 1 }, { -2, 2 }, { -4, 4 },
{ -1, -1 }, { -2, -2 }, { -4, -4 },
{ 1, -1 }, { 2, -2 }, { 4, -4 }
};
Generate Makefiles:
$ make clean; \
cmake -DCMAKE_BUILD_TYPE=Release -DSERVERONLY=ON -DNO_ASM=1 ..
The -DNO_ASM=1 argument is important as it doesn't compile the architecture-dependent assembly code.
Build Zandronum:
make
Re: Zandronum 3.0 on Raspberry PI
Sorry if this is a bit off topic, but how does it perform in the different Raspberry Pis? I assume RP1 is basically unplayable on anything else that isn't a vanilla-compatible map but what about the others?
One thing I have asked from the Lord, that I shall seek: That I may dwell in the house of the Lord all the days of my life, to behold the beauty of the Lord and to meditate in His temple. (Psalm 27:4, NASB)
My Discord tag is @tdrr, and it's my preferred contact method. I also check PMs here from time to time.
My Discord tag is @tdrr, and it's my preferred contact method. I also check PMs here from time to time.
-
- New User
- Posts: 4
- Joined: Thu Nov 29, 2018 1:20 pm
Re: Zandronum 3.0 on Raspberry PI
Another compatibility-related question: would it run on DietPi, and what changes do I have to do for it to work?
Re: Zandronum 3.0 on Raspberry PI
Hi
I've followed your instructions to compile Zandro 3.0 on my RPi 3 with Raspbian, and it works but after running the server appears the following error: "Can't find masterhostname master.zandronum.com! Either correct masterhostname or set sv_updatemaster to false". The server only shows on Doomsekeer on LAN but doesn't appear outside the network, i've opened the ports 10666 - 10700 on my router and i've made the IP address of the RPi static
I've followed your instructions to compile Zandro 3.0 on my RPi 3 with Raspbian, and it works but after running the server appears the following error: "Can't find masterhostname master.zandronum.com! Either correct masterhostname or set sv_updatemaster to false". The server only shows on Doomsekeer on LAN but doesn't appear outside the network, i've opened the ports 10666 - 10700 on my router and i've made the IP address of the RPi static
Re: Zandronum 3.0 on Raspberry PI
Those intructions are suitable for DebianOS and since DietPi is based on Debian so yes, it should it work (in mi case i've compiled Zandronum on Raspbian which is also based on Debian)Tracker303 wrote: ↑Tue Jan 22, 2019 3:08 pmAnother compatibility-related question: would it run on DietPi, and what changes do I have to do for it to work?
- Torr Samaho
- Lead Developer
- Posts: 1543
- Joined: Fri May 25, 2012 6:03 pm
- Location: Germany
Re: Zandronum 3.0 on Raspberry PI
See my reply in your other thread. Sounds like the DNS lookup for "master.zandronum.com" doesn't work.PPablo wrote: ↑Fri Jan 25, 2019 5:22 pmI've followed your instructions to compile Zandro 3.0 on my RPi 3 with Raspbian, and it works but after running the server appears the following error: "Can't find masterhostname master.zandronum.com! Either correct masterhostname or set sv_updatemaster to false". The server only shows on Doomsekeer on LAN but doesn't appear outside the network, i've opened the ports 10666 - 10700 on my router and i've made the IP address of the RPi static
-
- New User
- Posts: 4
- Joined: Thu Nov 29, 2018 1:20 pm
Re: Zandronum 3.0 on Raspberry PI
Great, I tried it and it does work, thanks!
Sorry for not answering earlier.
Re: Zandronum 3.0 on Raspberry PI
Sorry for the bump. Just wondering, did anyone ever find a fix for the DNS issue? Trying to create a small duel server with my pi.
I noticed there seemed to be a lot of warnings for network.cpp during compilation. So maybe that has something to do with this?Torr Samaho wrote: ↑Sun Jan 27, 2019 7:05 pmSounds like the DNS lookup for "master.zandronum.com" doesn't work.
-
- New User
- Posts: 4
- Joined: Wed Jul 17, 2019 6:27 pm
- Clan: MentaLabs Inc.
Re: Zandronum 3.0 on Raspberry PI
For some reason it doesn't compile on my Pi2 with Raspbian 10 buster.
-
- New User
- Posts: 4
- Joined: Wed Jul 17, 2019 6:27 pm
- Clan: MentaLabs Inc.
Re: Zandronum 3.0 on Raspberry PI
I tried it without the hexenScrollies type modification and it went up to 97%, but now this is the error:
Here is the whole part where that error is https://pastebin.com/XAyFqurj
Here is the whole part where that error is https://pastebin.com/XAyFqurj
-
- New User
- Posts: 4
- Joined: Wed Jul 17, 2019 6:27 pm
- Clan: MentaLabs Inc.
Re: Zandronum 3.0 on Raspberry PI
I tried actually doing 3.0 (was on latest repo tag oops) and now I have another error, which is quite close to this one.
Here is the full output from make from start to finish: https://pastebin.com/mU5CTbvC
Here is the full output from make from start to finish: https://pastebin.com/mU5CTbvC
Re: Zandronum 3.0 on Raspberry PI
Did you manage to get the compile working?
I am running into the same problem
I am running into the same problem
Re: Zandronum 3.0 on Raspberry PI
I case anyone else has the same problem in future -
For me, the only way to make it work was to flash my SD card with 2017 raspian stretch image (2017-09-07-raspbian-stretch.zip) and used an original Pi B.
Then, using the above method, it would compile.
Trying before on raspbian buster on a pi3 just failed at about 98% every time