[IAEP] Collaboration using qemu emulation

Morgan Collett morgan.collett at gmail.com
Fri Dec 12 02:52:45 EST 2008


I'm copying the iaep mailing list with my reply, in the hope that the
information helps others, and reaches those who can pass it on and
document it further.

On Fri, Dec 12, 2008 at 01:15, Stanley Sokolow <overbyte at earthlink.net> wrote:
> Wade,
>
> As I recall, I did see a message when QEMU was booting up the emulation,
> saying something about acceleration failing.   I'll try what you suggested,
> tonight.   I've got to run some errands now.
>
> Regarding the networking, can QEMU be configured to do a normal DHCP between
> it and the DHCP host on my router?   It seems to me that the XO and the
> emulators that worked had IP addresses of the form 192.168.0.x, which were
> assigned by DHCP.   They can detect each other.  The Windows/QEMU/Sugar
> emulator at times had an IP address beginning 169... and other times
> 10.0.2.15 and it couldn't see or be seen by the others.  So maybe having the
> same IP address prefix (subnet) is crucial to presence detection on Sugar
> when the computers reach each other through a common access point.
>
> Do you know if that's true, Morgan?

The most common configuration with emulation, with qemu or virtualbox
or VMWare or any of the other options is called NAT and is similar to
what the typical DSL router does: to allocate a private IP address
that can't be seen from the outside. There are different ranges of
private IP addresses, and the 192.168.0.x which your network uses are
one example. 10.x.x.x is another range which can be used.

This means that just like your PC on 192.168.0.x can see machines on
the Internet but those machines can't connect inbound to your PC, the
emulator when it has an IP address of 10.x.x.x can see the 192.168.0.x
machines but they can't in turn see the 10.x.x.x "machine".

The 169.x.x.x address is for when DHCP fails, and is usually used by
the XOs when they are on a mesh network with no other infrastructure
(no schoolserver or wireless access point). It would also not be able
to see or be seen by the 192.168.0.x machines. I'm not sure why that
is happening some of the time - I'm not familiar with the exact
configuration of the emulated version.

All of the above would definitely break presence (the ability to see
each other in Neighborhood View) and collaboration (being able to
exchange data) unless you use a Jabber server. The reason is because
the serverless mode of collaboration uses Avahi -
http://en.wikipedia.org/wiki/Avahi_(software) - which requires all the
participants to be on the same network - and the qemu emulated system
is on a different network (10.x.x.x).

Your options are therefore:
a) Try to configure qemu to use a bridged network, which would let the
emulated system get its own 192.168.0.x IP address - this seems to be
theoretically possible but I can't find any definitive instructions.
I've done it with VMWare before, but not qemu - and I don't know how
configurable qemu on Windows is.

b) Use a Jabber server that all the machines can access.

b.1) Community Jabber Servers - see
http://wiki.laptop.org/go/Community_Jabber_Servers. These are
maintained by volunteers, and unfortunately due to various scalability
issues in the current implementation these servers get easily
overloaded by too many users which brings them down until their
databases are cleared. Try a few - you might get lucky, which shows my
level of confidence in them...

(We are working on a major enhancement to the Jabber server setup we
use for Sugar, for the next release due in the first half of next
year, which should make the community servers much more scalable and
reliable.)

b.2) Run your own Jabber server. This requires ejabberd, with some
custom patches, which until recently meant compiling ejabberd from
source. Now however the required patches have been added to ejabberd
in debian and ubuntu, so you can just install a package and do the
configuration and run it, which is much simpler. See
http://wiki.laptop.org/go/Installing_ejabberd/deb for the
instructions, which are straightforward for Ubuntu 8.10 and need a
little extra to install on 8.04 as you need to get the package from
backports.

Let me know if you get stuck with Jabber server stuff and I'll try to help.

Regards
Morgan


More information about the IAEP mailing list