16

Reading different posts and Can I emulate x86 to run Windows 95? it seems to be possible to some extent to simulate x86 CPU.

In my special case I want to run a Teamspeak server, which isn't provided for ARM at the moment. Is it possible to emulate Teamspeak server?

I know there exists the native alternative mumble. But that is no alternative for me, because in the game community I'm in Teamspeak 3 is the only one used.

keiki
  • 1,638
  • 1
  • 17
  • 18

4 Answers4

25

I got Teamspeak 3 running using qemu running a x86 Debian squeeze. There is some room for improvement for sure, but for now that's what worked for me. I hope I didn't forget something.

First of all thanks to Dietmar and meigrafd of the raspberry pi forum. Without their work I wouldn't have succeeded.

How to

Installing qemu

  1. We need some software apt-get install git zlib1g-dev libsdl1.2-dev
  2. Download the source of qemu (wget 198.154.101.186/RaspberryPI/qemudidi2.rar) already patched by Dietmar for Raspberry pi. It is qemu 0.15.50 from Thoronir, because the support for ARM host seems to be even worse with the current version.
  3. Unrar it unrar x qemuADLI.part1.rar. You have to use the unrar non-free version (Link to howto)
  4. Configure what to compile (takes about a minute) ./configure --target-list="i386-softmmu" --enable-sdl --extra-cflags="-O3 -mfloat-abi=hard -mfpu=vfp -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -march=armv6zk" --audio-drv-list="alsa oss sdl pa" --audio-card-list="ac97 es1370 sb16 cs4231a adlib gus hda"
  5. Now compile make (takes half an hour at least)
  6. Now install make install
  7. Now qemu is installed successfully.

Preparing Debian Image (using Windows as host)

  1. Download and install qemu for Windows (Link)

  2. Download Debian netinstall image (squeeze). I used squeeze, but wheezy might be also good.

  3. Create image using qemu-img.exe create -f qcow2 G:\debian.img 1500M(smaller size should be suffient too)

  4. Install debian x86. I recommend to choose no meta package. qemu -cpu 486 -hda G:\debian.img -cdrom G:\debian-6.0.4-i386-netinst.iso -boot d -m 512 -smp 1

  5. After installation run the qemu command again, but with some changes qemu -cpu 486 -hda G:\debian.img -boot d -m 512 -smp 1 -redir tcp:9022::22 -redir udp:1234::9987. -redir is used to redirect the network from the guest to the hosts ports.

  6. Now install less and your favorite editor (like nano, vim,etc.) you like to use apt-get install less vim

  7. Install OpenSSH Server apt-get install openssh-server

  8. Install Teamspeak like you usually would do.

  9. Connect to teamspeak from you windows host using localhost:1234 (remember above we redirected the port)

  10. Test to connect to it via ssh/putty using localhost:9022

  11. Shutdown shutdown -hP now the image and copy it via scp(winscp) to your pi.

Run it on the Pi (Use a SSH for the following commands)

  1. Get the missing qemu Bios wget -O /usr/share/qemu/sgabios.bin http://qemu.weilnetz.de/w32/2012-06-28/sgabios.bin

  2. Start it! qemu -cpu 486 -hda debian.img -m 150m -smp 1 -redir tcp:9022::22 -redir udp:9055::9987 --nographic

  3. If you get a memory error then try it a few times.

  4. If it says starting Grub then wait some minutes (it's booting in the background, but you will never get a prompt here!). Now login with a other SSH terminal to login 'ssh root@localhost -p 9022'

  5. Now start Teamspeak and try to log in on port 9055 of the Pi.

  6. Shutdown again the qemu guest.

  7. Start it again but add -daemonize, so it runs even when you log off. I also made a script to help me.

Performance

My Pi is the 256 MB version overclocked to 1000 Mhz using raspi-config.

The Pi runs constantly at 70% CPU load average. It varies between 50% (using 700 MHz) and nearly 100% using 1000 MHz. But the load shows "0.77, 0.83, 0.80", which is okay.

In the future I hope to either use a native Teamspeak version (my hope is still up) or to use qemu in user mode and better performance with more current version. Time will tell :)

I have yet to test the performance of teamspeak itself, if it is usable for gaming situations. I noticed some milliseconds latence overhead, but not too much to worry yet.

keiki
  • 1,638
  • 1
  • 17
  • 18
4

Consider using Murmur (the server for Mumble) instead, which can be run natively, as has been done on the Pi already, while there are also x86 versions for Linux, Mac, Windows, iOS, ...

Tobias Kienzler
  • 720
  • 1
  • 7
  • 23
2

Beside QEMU, you can use ExaGear Desktop for emulation x86 on Raspberry Pi and running Teamspeak 3 Server on RPi. ExaGear Desktop is much more faster than QEMU and allow ts3 server to manage around 50-100 clients on RPi3. Also installation is simpler.

  1. Install ExaGear Desktop, which allow to run x86 software on Raspberry (note that ExaGear isn't free and you have to obtain the license)

    tar -xvzpf exagear-desktop-rpi2.tar.gz
    sudo ./install-exagear.sh
    
  2. Run ExaGear

    exagear
    

    Now you entered in x86 world.

  3. I recommend don't run Teamspeak 3 Server under root. So create special user

    sudo adduser teamspeak
    sudo passwd teamspeak
    
  4. Create installation directory and make teamspeak user the owner of this directory:

    sudo mkdir /usr/local/teamspeak
    sudo chown teamspeak /usr/local/teamspeak
    
  5. Login as teamspeak user, download ts3 server and unpack archive:

    su teamspeak
    cd /usr/local/teamspeak
    wget http://dl.4players.de/ts/releases/3.0.11.4/teamspeak3-server_linux-x86-3.0.11.4.tar.gz
    tar -xzvf teamspeak3-server_linux-x86-3.0.11.4.tar.gz
    rm teamspeak3-server_linux-x86-3.0.11.4.tar.gz
    
  6. Start ts3 server

     /usr/local/teamspeak/teamspeak3-server_linux-x86/ts3server_minimal_runscript.sh
    

    enter image description here Your ts3 server is running. You should copy credentials which will be required for connecting with teamspeak 3 client.

  7. Press CTRL+C and then start the Server in the background

    /usr/local/teamspeak/teamspeak3-server_linux-x86/ts3server_startscript.sh start
    

Instruction is based on this post

vadik_lyutiy
  • 147
  • 4
-1

with the RPI 2 that recently was released it is possible to install a working teamspeak server by using linaro ubuntu and exagear desktop (the last one you can buy for 30 dollars).

its a straight forward installation:

  1. install linaro ubuntu

  2. buy and install exagear (which i had to do manually, but you will be able to do it also easily)

  3. download and unpack teamspeak3-server_linux-x86-3.0.11.2.tar in your /home/linaro/downloads map 4: start exagear 5: start teamspeak

and your up and running :) (oh, and don't forget to do a port forwarding if you are behind a firewall)

Bex
  • 2,929
  • 3
  • 26
  • 34