Server Ubuntu - Musta1337/TeknoMW3 GitHub Wiki

Requirements

  • Read before you do, so you don't make errors.
  • Follow the requirements and other instructions in the guide How to install TeknoMW3 Server (Windows).
    • Obviously, instead of editing/starting the .bat, you should use the Start-Dedicated-Server.sh.
  • Hex-Edit the iw5mp_server.exe to use the TeknoMW3S.dll instead of the steam_api.dll.
    • They almost always save it with the name iw5mp_server_wine.exe.
  • Get Ubuntu.
    • It should work on any Ubuntu version.
  • General knowledge about Linux.
  • An SSH client (like PuTTY).

Desktop and Xrdp Installation (User Based | Optional if already done)

Users can install their preferred Desktop and use their own connection protocol, or use the virtual xserver to run the TeknoMW3 servers on Ubuntu; but here is one of the ways users can use it themselves.

Execute the following commands on an SSH Client (PuTTY):

sudo apt-get update
sudo apt-get upgrade

# Create a user called teknouser and then give it a password.
#   * You shouldn't use "root" to run the TeknoMW3 server or any other command.
sudo adduser teknouser
sudo passwd teknouser

# Giving sudo power to the user
sudo usermod -aG sudo teknouser

# Change to teknouser user
su teknouser

# Install Ubuntu Desktop
sudo apt-get install -y ubuntu-desktop
sudo apt-get install xrdp
# Installing Xfce4 for a lighter desktop interface than GNOME
sudo apt-get install xfce4
sudo apt-get install xfce4-goodies
echo xfce4-session >~/.xsession

[OPTIONAL] It may be necessary to copy files to Linux servers

  • Install an FTP Server: sudo apt-get install vsftpd
  • Edit the vsftpd.conf file to allow writing: sudo nano /etc/vsftpd.conf
  • Find the line about writing files to the server.
  • Uncheck the line and remove the #.
  • Run this command to restart the FTP server: sudo service vsftpd restart

Editing Xrdp to use the same port all the time

  • Edit xrdp.ini by typing: sudo nano /etc/xrdp/xrdp.ini
  • In session1 change port=-1 to port=ask5910.
  • Save the xrdp.ini file
  • Run this command: sudo service xrdp restart

Connecting to Xrdp from Windows using Remote Desktop Connection

  • Start the Remote Desktop Connection.
  • Enter your server's IP and press Connect.
  • You'll have three options:
    • User
    • Password
    • Port
  • Enter the user you chose and created earlier (teknouser), and enter the password you selected.
    • The password will be filled in with the previous value 5910, if it's the first time you connect to Xrdp, use port -1 which will create a process on port 5910, and then if you connect to Xrdp, use port 5910 which is preloaded until you restart your Linux server or close the Xrdp process.
  • You will now be on the Ubuntu Desktop, close the remote desktop connection and proceed with the following steps.

Wine installation to be able to start the TeknoMW3 Server

  • You can install Wine by following the instructions they have on their website: Ubuntu - WineHQ Wiki
    • Make sure you install the repository corresponding to your Ubuntu version.

Installation for Ubuntu 14.04.6 LTS

# I haven't checked, anything will kill Musta.
sudo dpkg --add-architecture i386
wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo apt-key add winehq.key
sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ trusty main'
sudo apt-get update
sudo apt install --install-recommends winehq-devel

Installation for Ubuntu 18.04.4 LTS

# ------------------------ NOTICE ------------------------
# - I've only tried it on a VM, using Ubuntu Desktop (x64)
# - If you get "ntlm_auth was not found or is outdated" when you start the server, you can install it using: sudo apt-get install winbind
#   * But I haven't checked if it affects anything, having it or not.
# - Credits for https://tecadmin.net/install-wine-on-ubuntu/
#   * It also works for Ubuntu 19.10 and 16.04.6 LTS (you don't need to install PPA in either of them).
# --------------------------------------------------------

# If the system is x64, the x86 architecture must be enabled.
sudo dpkg --add-architecture i386

# Download and add the repository key.
wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo apt-key add winehq.key

# Add the repository for Ubuntu 18.04 / Linux Mint 19.x.
# Add the PPA.
sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main'
sudo add-apt-repository ppa:cybermax-dexter/sdl2-backport

# Update the packages.
sudo apt update

# Install the Stable Wine Branch.
sudo apt install --install-recommends winehq-stable

# If you get "unmet dependencies error" during installation, use the following commands to install Wine using aptitude:
sudo apt install aptitude
sudo aptitude install winehq-stable

# If everything went OK, you can check your Wine version using the following command.
wine --version

Starting the TeknoMW3 Server

  • Open a Terminal in the game folder or use the cd command to go to that directory.
  • Run this command and wait for Wine to install the necessary packages to open the process: wine iw5mp_server_wine.exe
    • Remember you can start it with the Start-Dedicated-Server.sh file.
    • Don't forget to have Xrdp running, iw5mp_server_wine.exe needs a Desktop to run.

Change the process affinity according to the user's preferences

By default, the TeknoMW3 Server will run on the first core. You can avoid this with the following command, changing the affinity to run on a specific core or on all cores.

  • taskset -cp CORENUMBER PROCESSID
    • You can view the Process ID from the Task Manager.

The Core Number is set as follows:

  • By default, the process will run on Core Number 0 (first core).
    • Core numbers start from 0 (if you have a 4-core server, you will have cores 0, 1, 2, and 3).
  • Setting 1 Core for the Process: Write any specific number of the core, such as 3 (if you write 3, Core 4 will be used).
  • Setting 2 or more Cores for the Process: Write two or more specific core numbers, such as 0.3 (if you write 0.3, Core 1 and 4 will be used).
  • Setting All Cores for the Process: Write the number of the first and last cores, such as 0-3 (if you write 0-3, the cores 1, 2, 3 and 4 will be used).