11

NOTE: I am aware that this question has been asked before HERE, but after having followed that question step by step, troubleshooted on my own and having done plenty of research on the internet to try and find a solution, I have been unable to run an Ubuntu emulation on a raspberry pi.


The Problem(s):

  1. In step 2 of the tutorial, the link to the "patched qemu package" is no longer available. Don't know if this is an issue, but thought it was worth mentioning.
  2. After installing qemu via sudo apt-get install qemu, installing qemu for windows, installing ubuntu for i386 in the qemu image, moving that image to the raspberry pi, and running it on the pi....nothing...I ran qemu via the command line qemu-system-i386 -cpu 486 -hda debian.img -m 150M -smp 1 -redir tcp:9022::22 -redir udp:9055::9987 --nographic, waited a minute or two just to make sure it was all booted up and running, then i tried ssh-ing into the emulated Ubuntu environment (port 9022) from the raspberry pi itself ssh [user]@localhost -p 9022...and the connection was refused.

Other Important Tidbits:

  • I am able to ssh into the Debian environment when i run qemu ON WINDOWS. As soon as I move the image to the pi via winscp and run it with qemu there, it doesn't want to accept connections.

  • I know it would be SOO much easier just to run a Murmur (for Mumble) host on it, but I am only looking to run a teamspeak server on it.

  • PLEASE let me know if I was stupid or careless and left out any important information. This is my first post and I'm still not exactly sure what I need to and don't need to provide.

9
  • Are you able to view the console of the VM? Commented Aug 23, 2016 at 18:07
  • 1
    Try adding -spice port=5900,addr=0.0.0.0,disable-ticketing to your qemu command line which will tell qemu to open a spice listener on port 5900 on your raspberry pi. Then from another machine on your local network use a spice client (remote-viewer from virt-viewer package) to connect to the IP Address of the Pi using port 5900. You should then see the console of the virtual machine which will give you more information about what is going on in your virtual machine. Commented Aug 24, 2016 at 15:20
  • 1
    Let's try using vnc instead. Use the option -vnc :5 which tells qemu to start a vnc listen on TCP port 5905. Then from another machine you can use vinagre to connect using the command vinagre <pi IP addr>:5905 to view the console. Commented Aug 24, 2016 at 23:20
  • 1
    Ok so, good news...adding that to the end works and I'm able to see what is happening in the debian vm. I've run into a new problem (the source of all my problems), when the debian vm boots, it shows the grub selection page, then it reboots again in an infinite loop, never actually loading the OS. I've tried booting into recovery mode as well, but that caused the loop to reoccur as well.
    – HyperCell
    Commented Aug 24, 2016 at 23:28
  • 1
    Does this answer your question? Can I emulate x86 CPU to run Teamspeak 3 server?
    – Dougie
    Commented Jun 2, 2020 at 6:35

1 Answer 1

3

You are trying to boot Debian with -cpu 486. That CPU is no longer supported in Debian and the kernel will crash hard at boot and cause a reboot.

The reason why it works under windows might be that it used the hardware virtual machine and doesn't actually emulate a 486 CPU. You then get all the features of your host CPU and the kernel can boot.

So to fix your problem you need to either change -cpu 486 to something more modern or add some CPUID flags. At a minimum you will need cmov support. But I don't know by hard what else you need.

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