EQEmulator : DebianLinuxOnVMware

HomePage :: Categories :: Index :: RecentChanges :: Login/Register :: Search
Most recent edit on 2012-07-22 00:15:54 by BrainDisconnect

Additions:
For connecting to a Linux OS remotely from a Windows machine via SSH use Putty, SecureCRT, etc. For transferring files via SFTP or SCP, use WinSCP, PuttySCP or PuttySFTP, SecureCRT, SecureFX, etc.

Deletions:
For connecting to a Linux OS remotely from a Windows machine via SSH and SFTP, use Putty, SecureCRT, etc. For transferring files, use WinSCP, PuttySCP or PuttySFTP, SecureCRT, SecureFX, etc..



Edited on 2012-07-21 23:52:04 by BrainDisconnect

Additions:
For connecting to a Linux OS remotely from a Windows machine via SSH and SFTP, use Putty, SecureCRT, etc. For transferring files, use WinSCP, PuttySCP or PuttySFTP, SecureCRT, SecureFX, etc..



Edited on 2012-02-06 04:46:25 by BrainDisconnect

Additions:
You can create this on a bare metal machine by skipping "Creating the VM" and "VMware Tools Install" steps.
This will take about 1.5-3 hours depending on your skill level with Linux and the power of the host machine.


Deletions:
You can also create this on a bare metal machine by skipping "Creating the VM" and "VMware Tools Install" steps.
This will take about 2-4 hours depending on your skill level with Linux and the power of the host machine.




Edited on 2012-02-06 04:42:08 by BrainDisconnect

Additions:
1) Run this command and change 2083 to whatever version your database rev number. My version was 2083.
ls -la [0-9]* | tr -s " " | cut -d " " -f9 | sort -n | awk -F'_' '$1 >= 2083' | sed  's/^/source /' >> sourcesql


Deletions:
1) If you compiled bots run these commands in order: This step is no longer needed with or without bots.
ls -la bot*.sql | tr -s " " | cut -d " " -f9 | sort -n | sed  's/^/source /' | sort -r >> sourcesql++
    ++ls -la [0-9]*bot*.sql | tr -s " " | cut -d " " -f9 | sort -n | sed  's/^/source /' >> sourcesql

  • Run this command and change 2082 to whatever version your database rev number is minus 1. My version was 2083.
    ls -la [0-9]* | tr -s " " | cut -d " " -f9 | sort -n | awk -F'_' '$1 > 2082' | sed  's/^/source /' >> sourcesql




    Edited on 2012-02-06 04:34:05 by BrainDisconnect

    Additions:
    1) If you compiled bots run these commands in order: This step is no longer needed with or without bots.
    ls -la bot*.sql | tr -s " " | cut -d " " -f9 | sort -n | sed  's/^/source /' | sort -r >> sourcesql++
        ++ls -la [0-9]*bot*.sql | tr -s " " | cut -d " " -f9 | sort -n | sed  's/^/source /' >> sourcesql


    Deletions:
    1) If you compiled bots run these commands in order: This part is no longer needed with or without bots.
  • ls -la bot*.sql | tr -s " " | cut -d " " -f9 | sort -n | sed  's/^/source /' | sort -r >> sourcesql++
    ++ls -la [0-9]*bot*.sql | tr -s " " | cut -d " " -f9 | sort -n | sed  's/^/source /' >> sourcesql




    Edited on 2012-02-06 04:32:04 by BrainDisconnect

    Additions:
    1) If you compiled bots run these commands in order: This part is no longer needed with or without bots.
    ls -la bot*.sql | tr -s " " | cut -d " " -f9 | sort -n | sed  's/^/source /' | sort -r >> sourcesql++
    ++ls -la [0-9]*bot*.sql | tr -s " " | cut -d " " -f9 | sort -n | sed  's/^/source /' >> sourcesql


    Deletions:
    1) If you compiled bots run these commands in order:
    ls -la bot*.sql | tr -s " " | cut -d " " -f9 | sort -n | sed  's/^/source /' | sort -r >> sourcesql
    ls -la [0-9]*bot*.sql | tr -s " " | cut -d " " -f9 | sort -n | sed  's/^/source /' >> sourcesql




    Edited on 2012-02-06 02:09:22 by BrainDisconnect

    Additions:

    Copy Spell Files



    Deletions:

    Copy Spell Files





    Edited on 2012-02-06 02:07:55 by BrainDisconnect

    Additions:

    Copy Spell Files

    Copy your spells files from your EverQuest game folder to your eqemu folder.
    spells_en.txt
    spells_us.txt




    Edited on 2012-01-02 17:01:44 by BrainDisconnect

    Additions:
    1) Create your start by copying and pasting into your terminal:
    1. Create your stop by copying and pasting into your terminal:
    2. Create your persist_world by copying and pasting into your terminal:

      Deletions:
      1) Create your start, copy and paste into your terminal:
    3. Create your stop file, copy and paste the following into your terminal:
    4. Create the persist_world file, copy and paste the following into your terminal:



      Edited on 2012-01-02 08:53:33 by BrainDisconnect

      Additions:
      You can also create this on a bare metal machine by skipping "Creating the VM" and "VMware Tools Install" steps.

      Deletions:
      You can also create this on a bare metal machine by skipping "Creating the VM" and "VMware Tools" Install steps.



      Edited on 2012-01-02 08:52:24 by BrainDisconnect

      Additions:


      Deletions:




      Edited on 2012-01-02 08:52:01 by BrainDisconnect

      Additions:
    You can use either vSphere 4.x or 5.x.
    You can also create this on a bare metal machine by skipping "Creating the VM" and "VMware Tools" Install steps.


    Deletions:

    You can skip the VMware vSphere steps (Creating the VM and VMware Tools Install) to create this on a bare metal machine.




    Edited on 2012-01-02 08:47:23 by BrainDisconnect

    Additions:

    Starting and Stopping Your New Server

    Thats it, startup your server and login with your player account. It is best to use the eqemu account to start the server.

    Starting

    su - eqemu
    /home/eqemu/server/start

    Stopping

    su - eqemu
    /home/eqemu/server/stop


    Deletions:
    Thats it, startup your server and login with your player account.



    Edited on 2012-01-02 08:39:39 by BrainDisconnect

    Additions:

    Setting Up Your Accounts

    This assumes that you do not already have both Client and World Server accounts setup, you can skip this section if you do.

    Getting your Client Login Account

    Getting your Server Login Account

    Create a static DNS entry ahead of time for your new EQEmu VM. If you do not have a DNS server of your own you can edit the host files as needed.


    Deletions:

    Setting Up Your Accounts

    This assumes that you do not already have accounts setup, you can skip this section if you do.
    Getting your Client Login Account
    Getting your Server Login Account
    Create a static DNS entry ahead of time for your new EQEmu VM.




    Edited on 2012-01-02 08:36:10 by BrainDisconnect

    Additions:

    Setting Up Your Accounts

    This assumes that you do not already have accounts setup, you can skip this section if you do.
    Getting your Client Login Account
    1. Go to the Main Page of EqEmu http://www.eqemulator.org
    2. Click on Create New LS Account
    3. Create your Client account. The username and password is needed for logging into the server.
    Getting your Server Login Account
    1. Go to the Main Page of EqEmu http://www.eqemulator.org

      Deletions:

      Getting your Login Server Account

    2. Go to the Main Page of EqEmu http://www.eqemulator.org/



      Edited on 2012-01-02 08:24:20 by BrainDisconnect

      Additions:
      Thanks to all the posters of linux and windows guides where a lot of this info came from.
    I made some custom one line scripts as well as modified some of the steps to make the process a little easier.
    You can skip the VMware vSphere steps (Creating the VM and VMware Tools Install) to create this on a bare metal machine.
    This will take about 2-4 hours depending on your skill level with Linux and the power of the host machine.
    1. Login as root through the console

      Deletions:
      Thanks to all the posters of linux and windows guide where a lot of this info came from.
    I made some custom one line scripts to make the process a little easier.
    You can skip the VMware vSphere steps and create this on a bare metal machine.
    1. Login as root through VM console



      Edited on 2012-01-02 08:19:07 by BrainDisconnect

      Additions:
      This guide's forum post is here:
    http://www.eqemulator.org/forums/showthread.php?t=34631


    Deletions:
    This guide's forum post is here: http://www.eqemulator.org/forums/showthread.php?t=34631



    Edited on 2012-01-02 08:18:49 by BrainDisconnect

    Additions:
    This guide's forum post is here: http://www.eqemulator.org/forums/showthread.php?t=34631



    Edited on 2012-01-02 08:17:29 by BrainDisconnect

    Additions:
     




    Oldest known version of this page was edited on 2012-01-02 08:16:32 by BrainDisconnect [1/2/2012]
    Page view:

    Thanks to all the posters of linux and windows guide where a lot of this info came from.
    Much came from Sikkun's guide "Debian Linux Install Guide 5/28/2011"
    I made some custom one line scripts to make the process a little easier.

    You can skip the VMware vSphere steps and create this on a bare metal machine.

    Preparing to Build a New Server


    Getting your Login Server Account

    1. Go to the Main Page of EqEmu http://www.eqemulator.org/
    2. Click on the Loginserver Accounts link.
    3. Click on Create New Worldserver Account
    4. Create your Server account. The username and password is needed for your config file.

    Get the Debian 6 ISO

    The revision at the time of this guide was 6.0.3
    1. Download the Debian 6 i386 netinst CD image from http://www.debian.org/releases/stable/debian-installer/
    2. Upload the ISO to your ESX host.

    Static DNS Entry

    Create a static DNS entry ahead of time for your new EQEmu VM.

    Router Setup

    Setup your router to forward the following protocols and ports to your server:

    Creating the VM

    1. Right click your ESX host and create a new VM
    2. Use the Typical option
    3. enter the host name
    4. Select desired datastore
    5. Choose Linux and select Debian 6 (32-bit)
    6. You need one NIC with E1000 (Debian won't recognize the VMXNET3 adapter)
    7. Change storage to 100GB with Thin Provision
    8. Select Edit the virtual machine settings before creating option
    9. Change memory to at least 6GB
    10. Change CPU to at least 2 virtual sockets and 2 cores per socket
    11. Point then DVD to your Debian 6 32 bit ISO and select connect at power on
    12. Remove the floppy drive
    13. Click finish and power on VM when the process completes.

    OS Installation


    Installing the OS

    Right click your VM and open a console or click on the console tab
    1. Choose Install
    2. Choose your language
    3. Choose your country
    4. Choose your keyboard layout
    5. Enter host name
    6. Enter domain
    7. Enter root password
    8. Enter full name for user; EQEmu
    9. Enter username; eqemu
    10. password for eqemu
    11. Choose your timezone
    12. hit return on partioning
    13. hit return on disk to partition
    14. hit return on finish partitioning
    15. Write changes to disk? tab to yes and hit return (this took a few minutes)
    16. Wait for it to install the base system...
    17. Select your country
    18. Select the default which should be ftp.<country code>.debian.org
    19. Configure your proxy if you need to
    20. Select no on the package survey
    21. Package Install
      • De-select the Graphical Desktop Environment
      • Select SSH Server
      • Select Standard system utilities
    22. Hit enter on grub loader; yes
    23. Hit enter on fishing the installation; Continue

    Post Install

    1. Login as root through VM console
    2. Verify that your interface is static
      more /etc/networks/interfaces

    3. If the iface eth0 says iface eth0 init dhcp, configure it for static
      • edit /etc/networks/interfaces with your favorite editor
      • change iface eth0 init dhcp to (change the information for your network)
        iface eth0 inet static
                       address 192.168.1.10
                       netmask 255.255.255.0
                       network 192.168.1.0
                       broadcast 192.168.1.255
                       gateway 192.168.1.1

      • Exit and save
    4. Update apt DB
      apt-get update

    5. Install packages for Higher Memory Support, VMware Tools, and EQEmu
      apt-get -y install linux-image-2.6.32-5-686-bigmem linux-headers-2.6.32-5-686-bigmem make

    6. reboot once its done

    VMware Tools Install

    1. Right click your VM, select Guest, and then Install/Upgrade VMware Tools
    2. Login as root to your VM via SSH
    3. Mount your cdrom:
      mount /dev/cdrom /mnt

    4. Copy the tools to root's home directory, extract, and run (change the version to match):
      cp /mnt/VMwareTools-<version>.tar.gz ./
      tar -zxvf VMwareTools-<version>.tar.gz
      ./vmware-tools-distrib/vmware-install.pl -d

    5. Once it has completed, remove the archive and directory:
      rm VMwareTools-<version>.tar.gz
      rm -rf vmware-tools-distrib

    6. reboot

    EQEmu Installation


    Packages for EQEmu

    1. Login as root to your VM via SSH, from now on everything is done via SSH.
    2. Install the needed packages.
      apt-get -y install gcc g++ make libio-stringy-perl libperl-dev unzip mysql-server subversion libmysqlclient-dev

    3. Enter a password for MySQL root

    Getting the Sources

    1. Su to eqemu
      su - eqemu

    2. Create the needed directories:
      mkdir eqemu source peq server maps quests

    3. Grab the SVN's:
      svn co http://projecteqemu.googlecode.com/svn/ eqemu
      svn co http://projecteqdb.googlecode.com/svn/trunk/peqdatabase peq
      svn co http://projecteqquests.googlecode.com/svn/trunk/quests quests
      svn co http://eqemu-maps.googlecode.com/svn/trunk/ maps

    Compile EQEmu

    Still as eqemu
    1. Change to the source dir and copy the EQEmuServer to your source dir
      cd source
      cp -r ../eqemu/trunk/EQEmuServer/* ./

    2. If you want Bots, now is the time:
      • Edit zone/makefile and add -DBOTS to DFLAGS.
      • Edit zone/makefile.common and add both bot.o and botspellsai.o
      • Edit world/makefile and add -DBOTS to DFLAGS.
    3. Compile the code
      make
    You will see many warnings... don't panic...
    If make stops with an error, then you can panic. Trace the steps and correct what you missed.

    Copying and Linking Files to the server Directory

    1. Go back to root:
      exit

    2. Copy libEMuShareMem to lib dir:
      cp /home/eqemu/source/EMuShareMem/libEMuShareMem.so /usr/lib/

    3. edit /etc/sysctl.conf and add a new line with your favorite editor:
      kernel.shmmax = 134217728

    4. Save, exit, and chmod
      chmod 444 /etc/sysctl.conf

    5. Execute sysctl to effect the changes
      /sbin/sysctl -p

    6. Su back to eqemu
      su - eqemu

    7. Change to server dir, copy and create links
      cd server
      cp -r ../source/utils/defaults/* ./
      cp ../source/utils/patch_* ./
      cp ../source/utils/opcodes.conf ./
      cp ../source/utils/cleanipc ./
      cp ../source/world/world ./
      cp ../source/zone/zone ./
      cp ../source/eqlaunch/eqlaunch ./
      rm -rf Maps plugins quests
      ln -s ../maps Maps
      ln -s ../quests/plugins plugins
      ln -s ../quests quests

    Database


    Database Setup

    Still as eqemu
    1. Unzip the database changing the rev number to yours:
      cd /home/eqemu/peq
      gunzip peqdb_rev<rev number>.sql.gz

      Remember the rev number... You are going to need it.
    2. Create a file called sourceme putting the following lines in changing the rev number to match your file remove the bots line if you did not compile bots:
      create database peq;
      use peq
      source peqdb_rev<rev number>.sql
      source load_player.sql
      source load_bots.sql
      exit

    3. Then run:
      mysql -u root -p < sourceme
    Take a break. This is going to take a few minutes... This is why the few commands were scripted

    Database Patching

    Ok.. time for the last part of the database...
    Still as eqemu
    1. Change to the source sql directory:
      cd /home/eqemu/source/utils/sql/svn

    2. Create a new filed called sourcesql and add use peq to it:
      echo "use peq" > sourcesql

    3. If you compiled bots run these commands in order:
      ls -la bot*.sql | tr -s " " | cut -d " " -f9 | sort -n | sed  's/^/source /' | sort -r >> sourcesql
      ls -la [0-9]*bot*.sql | tr -s " " | cut -d " " -f9 | sort -n | sed  's/^/source /' >> sourcesql

    4. Run this command and change 2082 to whatever version your database rev number is minus 1. My version was 2083.
      ls -la [0-9]* | tr -s " " | cut -d " " -f9 | sort -n | awk -F'_' '$1 > 2082' | sed  's/^/source /' >> sourcesql

    5. Remove the duplicates and create the sourceme file:
      cat sourcesql | uniq > sourceme

    6. Source it in with mysql:
      mysql -u root -p < sourceme
    If you get errors, search the forums to see if you need to correct them or not.

    EQEmu Setup


    Edit Your Config file

    Still as eqemu
    1. Change to the server directory, rename to default config, and copy the full config
      cd /home/eqemu/server
      mv eqemu_config.xml.bak
      cp eqemu_config.xml.full eqemu_config.xml

    2. Edit eqemu_config.xml with your favorite editor
      1. In the world section change the longname and short name to your EQ world name.
      2. In the world, loginserver section put your loginserver username and password.
      3. In the world section change the key to a string for your launcher.
      4. In the zones section change the defaultstatus to 0
      5. In the database section, change username and password to your mysql credentials.
      6. In the database section, change db to peq.
    3. Save and exit

    Create your Server start and stop files

    Still as eqemu
    1. Change to your server directory
      cd /home/eqemu/server

    2. Create your start, copy and paste into your terminal:
      cat > start << EOD6
      #!/bin/bash
      # Auto generated by EQEmu Installer v$EQEMU_INSTALLER_VER on $EQEMU_INSTALL_DATE

      # Include our configuration.
      #source eqemu.conf

      #ulimit -c 99999999

      # Start the login server.
      if [ \$USE_LOGIN_SERVER ]; then
        ./EQEmuLoginServer 2>&1 > logs/loginserver &
      fi

      # Remove any shutdown files.
      rm -f .zone_shutdown
      rm -f .world_shutdown

      # Print commands and their arguments as they are executed.
      set -x

      # Launcher name.
      LNAME="zone"
      if [ "\$1" = "test" ]; then
        LNAME="test"
      fi

      # Set our library path.
      P=`pwd`
      export LD_LIBRARY_PATH="\$LD_LIBRARY_PATH:\$P"

      # Make sure we have a place to log.
      mkdir -p logs 2>&1 > /dev/null

      # Clear out old logs, if both are stopped.
      if [ ! -e .lock-zones -a ! -e .lock-world ] ; then
        for f in logs/eqemu_*.log
        do
          # Keep the commands_zone log.
          if [ "\$f" = "logs/eqemu_commands_zone.log" ]; then
            continue;
          fi
          rm -f \$f
        done
      fi

      # Boot up world.
      if [ ! -e .lock-world ] ; then
        # Create our lock file.
        touch .lock-world
       
        # Determine how to run the world server.
        if [ \$USE_PERSIST_WORLD ]; then
          ./persist_world 2>&1 > logs/world &
        else
          ./world 2>&1 > logs/world &
        fi
       
        # wait for shared memory to load
        sleep 15
      fi

      # Start up the official launcher.
      if [ ! -e .lock-launcher ]; then
        # Create our lock file.
        touch .lock-launcher
       
        # Launch!
        ./eqlaunch \$LNAME 2>&1 > logs/launcher &
      fi

      # Determine if we should start the chat server.
      if [ \$USE_CHAT_SERVER ]; then
        ./chatserver 2>&1 > logs/chatserver &
      fi

      # Determine if we should start the mail server.
      if [ \$USE_MAIL_SERVER ]; then
        ./mailserver 2>&1 > logs/mailserver &
      fi
      EOD6

    3. Create your stop file, copy and paste the following into your terminal:
      cat > stop << EOD7
      #!/bin/bash
      # Auto generated by EQEmu Installer v$EQEMU_INSTALLER_VER on $EQEMU_INSTALL_DATE

      # Include our configuration.
      #source eqemu.conf

      # Create our shutdown files.
      touch .zone_shutdown
      touch .world_shutdown

      targets="world eqlaunch zone"

      # Login Server Check
      if [ \$USE_LOGIN_SERVER ]; then
        targets="\$targets EQEmuLoginServer"
      fi

      # Chat Server Check
      if [ \$USE_CHAT_SERVER ]; then
        targets="\$targets chatserver"
      fi

      # Mail Server Check
      if [ \$USE_MAIL_SERVER ]; then
        targets="\$targets mailserver"
      fi

      killall \$targets

      # Small pause here.
      sleep 3

      # If world/zone/eqlaunch is stuck we'll 'kill -9' them here.
      if ps ax | grep -e 'w[o]rld' -e 'z[o]ne' -e 'eq[l]aunch' > /dev/null; then
        killall -9 world zone eqlaunch
        sleep 2
      fi

      # Run our IPC cleaning.
      ./cleanipc

      # Remove any lock files.
      rm -f .lock-zones .lock-world .lock-login .lock-launcher
      EOD7

    4. Create the persist_world file, copy and paste the following into your terminal:
      cat > persist_world << EOD8
      #!/bin/bash

      #ulimit -c 99999999

      while true
      do
        ./world "\$@"
        if [ -r ".world_shutdown" ]; then
          exit 0
        fi

        echo `date` " - World crashed." >> crashlog
        sleep 2
      done
      EOD8

    5. Make start, persist_world, and stop executable:
      chmod 750 start
      chmod 750 persist_world
      chmod 750 stop

    Thats it, startup your server and login with your player account.

    If you get errors, then you missed something, trace your steps through the guide and fix anything you missed. Otherwise search the forums.

    Additional

    You can edit your database after you logged in to set your account to server admin, by changing the status to 200 on your account.
    mysql -u root -p
    use peq
    UPDATE account SET status=200 WHERE name='youraccountname';
    exit


    You can increase the number of zones that can be active at a time, the default is 5;
    mysql -u root -p
    use peq
    UPDATE launcher SET dynamics=5 where name='zone';
    exit


    It is highly recommended that you harden your Linux VM using iptables and such.

    CategoryServer
    Page was generated in 0.5790 seconds