Take the 2-minute tour ×
Raspberry Pi Stack Exchange is a question and answer site for users and developers of hardware and software for Raspberry Pi. It's 100% free, no registration required.

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.

share|improve this question
1  
If you have to emulate x86 then I doubt you will get the performance you desire. –  Jivings Jan 5 '13 at 20:17
1  
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 Jan 6 '13 at 12:23
    
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 –  Tobias Kienzler Jan 8 '13 at 15:33
    
anyway, maybe wiki.winehq.org/ARM is an interesting read for you... –  Tobias Kienzler Jan 8 '13 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. –  otakun85 Jan 9 '13 at 8:16
show 5 more comments

2 Answers

up vote 15 down vote accepted

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.

share|improve this answer
    
+1 Nice work :) –  Jivings Jan 13 '13 at 17:49
2  
Neat indeed! I guess I was underestimating the Pi's "300 MHz Pentium equivalence"... –  Tobias Kienzler Jan 14 '13 at 13:08
    
I still have to look out for the performance. How many teamspeak slots it can handle that way. –  otakun85 Jan 14 '13 at 13:29
    
Dietmar already has succeded to get user mode running in current qemu version with a big performance boost for wine. –  otakun85 Jan 15 '13 at 14:35
    
Do you have more recent information about that? –  The Wavelength Apr 13 at 13:22
show 2 more comments

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, ...

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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