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
- We need some software
apt-get install git zlib1g-dev libsdl1.2-dev
- 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.
- Unrar it
unrar x qemuADLI.part1.rar
. You have to use the unrar non-free version (Link to howto)
- 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"
- Now compile
make
(takes half an hour at least)
- Now install
make install
- Now qemu is installed successfully.
Preparing Debian Image (using Windows as host)
Download and install qemu for Windows (Link)
Download Debian netinstall image (squeeze). I used squeeze, but wheezy might be also good.
Create image using qemu-img.exe create -f qcow2 G:\debian.img 1500M
(smaller size should be suffient too)
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
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.
Now install less and your favorite editor (like nano, vim,etc.) you like to use apt-get install less vim
Install OpenSSH Server apt-get install openssh-server
Install Teamspeak like you usually would do.
Connect to teamspeak from you windows host using localhost:1234 (remember above we redirected the port)
Test to connect to it via ssh/putty using localhost:9022
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)
Get the missing qemu Bios wget -O /usr/share/qemu/sgabios.bin http://qemu.weilnetz.de/w32/2012-06-28/sgabios.bin
Start it! qemu -cpu 486 -hda debian.img -m 150m -smp 1 -redir tcp:9022::22 -redir udp:9055::9987 --nographic
If you get a memory error then try it a few times.
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'
Now start Teamspeak and try to log in on port 9055 of the Pi.
Shutdown again the qemu guest.
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.