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.

10
  • 2
    If you have to emulate x86 then I doubt you will get the performance you desire.
    – Jivings
    Commented Jan 5, 2013 at 20:17
  • 2
    Let alone the fact real time sound processing in an emulated environment. I think you can better ask the developers of TeamSpeak if (if possible) they can port it to ARM. I did however read a story that some Russian created a x86 emulator on ARM, but I think it is not available yet.
    – ikku
    Commented Jan 6, 2013 at 12:23
  • 1
    re your edit: Well, if you have to host the server, then you decide which client the others should use. If they oppose, they have to host it themselves - Teamspeak simply won't work at the Raspberry Pi at the moment. There is no sensible reason against mumble - it's free, open source, portable, great quality, low resource usage etc Commented Jan 8, 2013 at 15:33
  • anyway, maybe wiki.winehq.org/ARM is an interesting read for you... Commented Jan 8, 2013 at 16:27
  • 1
    @TobiasKienzler I don't have to host the server. I volunteer to host the server. Everyone I know of in the German World of Warcraft community uses Teamspeak. Even when you get your guild members to use mumble, you often have visitors, which also only know Teamspeak.
    – keiki
    Commented Jan 9, 2013 at 8:16

4 Answers 4

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.

8
  • 2
    Neat indeed! I guess I was underestimating the Pi's "300 MHz Pentium equivalence"... Commented Jan 14, 2013 at 13:08
  • I still have to look out for the performance. How many teamspeak slots it can handle that way.
    – keiki
    Commented Jan 14, 2013 at 13:29
  • Dietmar already has succeded to get user mode running in current qemu version with a big performance boost for wine.
    – keiki
    Commented Jan 15, 2013 at 14:35
  • Do you have more recent information about that? Commented Apr 13, 2014 at 13:22
  • @TheWavelength Not really. For me it was an experiment to get it to work. But I wouldn't recommend to use it, because on one side it's a lot of work and on the other side it's a very unstable thing with bad performance. I have rented myself a cheap vserver for that purpose and I'm fine with it. I just needed more server power anyway :)
    – keiki
    Commented Apr 13, 2014 at 14:41
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, ...

1
  • 1
    There's also uMurmur which is more resource friendly for a Rpi (although i had a bad time compiling it). Commented May 1, 2016 at 12:07
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

1
  • 1
    I don't want to make your answer bad. But to me it seems that you are working for ExaGear. And so this answer would be advertisement. If that's the case then please state it in the answer at the beginning. Thank you.
    – keiki
    Commented Jun 7, 2016 at 7:31
-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)

Not the answer you're looking for? Browse other questions tagged or ask your own question.