0

I have an image called raspipass. What it does is, it simulates a Nintendo hotspot to gain ingame benefits. It does so by opening a open WiFi so consoles can connect but the Internet connection is severely restricted for anything other than what it was intended to do for security reasons.

This is obviously pretty inconvenient. So would it be possible to run that image on a VM so I can switch it on and off. Or dual/multiboot so I can use the raspi for other things without having to switch the SD card every time?

0

Running any kind of hardware emulator on the Pi is a bad idea. Note that things like LXC and docker are distinct from this and not really "virtual machines".

Hardware emulation on contemporary desktops and laptops is feasible for a couple of reasons:

  • VM's which run x86(-64) operating system images on an x86(-64) machine take advantage of hardware features which have evolved to facilitate this. Those machines are intended for this task and they are good at it, so VMs like this generally run quite smoothly now, at nearly the same level of performance as the host for many tasks.

  • Very fast CPUs. When emulating something other than x86, there are no hardware features to take advantage of, and the entire platform must be emulated in software. This is expensive, performance wise, but because x86-64 processors are the top end of the spectrum in the consumer world, they can often do a reasonable job of, e.g., simulating much slower ARM based systems (such as the Pi). Keep in mind that a 3.6 Ghz quad core i5 or i7 processor is not just three times faster than the 1.2 Ghz quad core SoC in the Pi 3. I think if you start doing some benchmarks it could easily be 10 times faster, and for certain relatively common tasks which again exploit hardware optimization available on x86 but not ARM (such as various forms of encryption), it could be several orders of magnitude faster.

If you want to run a Pi instance on a Pi, you sort of want to do what's explained in the first point, except there's a difference -- ARM does not have the features x86 has to help facilitate this, so it must all be done with software, meaning the result is going to be more like the second case. On a processor that is respectable, but still nothing like the things used in a run-of-the-mill x86-64 laptop (who's processor alone may cost 3-5 times as much as a Pi 3).

In short, it will not be impossible, but it will not be worthwhile. In your case although it is not doing much, I think you may find the problem applies to everything including wifi throughput -- but perhaps less so, i.e., possibly this is a use case where it might be feasible. The larger issue then is because it is generally not worthwhile, there isn't much software around to do this.

However, QEMU is at least available (look at apt search qemu). If you want to attempt this, you want to follow the same methodology used on PCs to emulate a Pi. I can't promise you it will work at all (I can't remember one way or another anyone here talking about it), and my recommendation is don't try: It will be more, and not less, fuss and bother if you just burn the image to a separate card and use it that way.

  • Ok would it be possible to dualboot 2 instances of raspian, like I would on a normal computer? – Strangeluv Dec 17 '16 at 14:17
  • It's not impossible but it's a bit more awkward than with a normal bootloader; Iook into NOOBs or berryboot. Someone may come along with an answer about this (I haven't used them) but I recommend you simply ask, (How) Can I add any OS image to NOOBs? (there may be duplicate for this, which you can search for yourself first). If the answer is yes, that's what I would recommend. Berryboot is I believe harder to use and may not be as actively maintained. – goldilocks Dec 17 '16 at 14:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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