VMware: Difference between revisions

From OLPC
Jump to navigation Jump to search
No edit summary
No edit summary
 
(40 intermediate revisions by 17 users not shown)
Line 1: Line 1:
<big><b><font color=red>For current information on emulation of OLPC software images, see [[Emulating the XO]]</font></b></big>
{{merge|Emulating the XO/UsingVMware|Talk:VMware#Merger proposal|{{subst:DATE}}}}


{{Deprecated}}
= Emulation with VMWare =


{{emulation-nav}}
[http://www.vmware.com/ VMWare] (Workstation, Player) is an emulator released as commercial software. The player version is distributed free of charge (Gratis). It runs on either Win32 or Linux host machines, allowing you to run OLPC images within the virtual machine. A Mac version is also available, VMWare Fusion, however this is not provided free of charge (a free 30-day evaluation is available).


You can decide either to emulate an XO via downloaded images, or to build a [[#Developer's Desktop Emulation|developer's desktop image]] starting from a stock Fedora 7. Both approaches are discussed here.
= Quick Start =


See Also:
You'll probably want two different Virtual Machines. For serious development, a Fedora 7 with sugar-jhbuild. For play, you will likely want to just run the XO Emulator, see [[Emulating_the_XO/UsingVMware]]. You need the Fedora 7 system, so you can use GIT for creating patches. With F7, you're also unlikely to lose your work accidentally while you can still easily run the latest version. The XO image is nice, beacuse it is much more responsive than F7+Sugar-jhbuild. However, sound and networking may or may not work, depending on the image you are using.


* There is [http://www.moka5.com:80/products/getstarted.html apparently] a free wrapper that lets you use the VMWare player similarly to VMWare Workstation on MS Windows platforms.
The quickest way to get started:
* First get a preconverted XO image, see [[Emulating_the_XO/UsingVMware]] (don't worry about getting the latest). Be sure to change networking to 'bridged' if you want to access the virtual XO using ssh from another machine in your network. Now you have something to play with, while getting the ''real'' environment.


= Caveats =
* The next steps will take the better part of a day to complete, if not more on a slower machine. Don't even think about this on a G4 or even a G5. Use an Intel-Mac. You can try this with 1GB of RAM in your Mac, but 2GB is a more realistic minimum. 3GB is perfect.


On Linux, VMWare setup requires a package of kernel modules (as do all high-speed emulation options we are aware of).
* So: Join one of the [[IRC]] channels! This will kill time :) You will probably want to start either in #sugar for hacking on activities or #olpc for core hacking. #olpc-content is about creating/maintaining materials (you don't actually need an F7 vmware for that!). A lot of people just hang out in two or all three of those. Ask if someone knows about a little thing to hack on. There are always buttons to be added, simple things to be done. Those will get you to learn the environment, really quickly.


VMWare seems to have the highest performance of the emulation solutions available, but the difference between it and Qemu + KQemu is fairly minimal.
* Create a new virtual machine and do a base F7 install on it. Make sure you give the disk at least 15GB max size. If you have the disk space, preallocate it now. That will give you a twofold increase in performance. If you have plenty of RAM, set the virtual machine to 800MB. Give it access to all your CPUs too (default is one). '''Don't worry about packages yet. That will come scripted in the next step.''' ''note: There is a preinstalled 'virtual appliance' F7 available via vmware.com, but you'll need to increase its disk size first. It maxes out at 4.7GB. 2GB short of a working sugar-jhbuild environment.''
hl


= Setup =
* Next: follow the instructions on [[Sugar on Fedora 7]]. Skip the [[Sugar with sugar-jhbuild]] step on that page.


The VMWare/VirtualBox images are converted from the official images using a simple downloading script. You can either use a pre-converted image (recommended) or download and [[VMware/Convert|convert the official images yourself]].
* Now do everything on [[Sugar with sugar-jhbuild]]. Your home directory is a fine place. The ''update'' step will take long-ish, downloading 1.6GB of data (using compression so probably around 400MB in actual download). The ''build'' phase is correspondingly long, too: On a 2.4Ghz Core2 duo iMac with 3GB ram it took about two hours. YMMV.


Mac Users may want to check out [http://www.edgargonzalez.com/2006/11/21/emulating-the-olpc-xo-on-a-mac-osx/ this article] or use [[User:Probono|OLPC4Mac]], a script that creates an OLPC image for VMware Fusion on the Mac automatically.
* Additionally, you can (and should!) look at http://dev.laptop.org for things to do. There are two 'beginner' links there.


== Compatibility ==
== Pre-converted Images ==


Pre-converted images ''used to be'' generated from the latest release and made available at http://dev.laptop.org/pub/virtualbox/
* [[OS_images|Official OLPC build]] 557 is known to work under VMWare with networking (tested on Linux AMD64 host).
* A kernel driver (Ensoniq ES1371) has been added to allow sound support https://dev.laptop.org/ticket/3034.
* Fedora 7 (with some hiccups) and Ubuntu Feisty both run under VMWare, you can thus use VMWare to create a [[sugar-jhbuild]] developer's desktop environment (recommended only for those wishing to do work on the [[Sugar|core software]].


[[OS images]] explains the different kinds of builds.
=== Caveats ===


Choose a reasonably recent version (within the last few weeks) whenever possible. Keep in mind that Joyride builds may be broken! Discussions on the OLPC-devel mailing list will discuss broken builds when they happen.
* You will need to use ssh, rsync, or another standard Unix mechanism to share files with the image under the Player version of the software.
* On Linux, VMWare setup requires a package of kernel modules


Images created after 2007-12-22 should have a VMWare 6.0-format -6.vmx and -6.vmxf file in the downloadable zip file. These files are not yet tested, but VMWare 6.0 should allow you to use USB keys and the like more reliably within the emulated images.
== Setup ==


See: [[Developers/Setup# Configuration and Usage|Configuration and Usage]] -- describes how to set up the new image for development work
The VMWare/VirtualBox images are converted from the official images using a simple downloading script. You can either download and convert the official images yourself or use a pre-converted image.


= Tips =
=== Downloading a Pre-converted Image ===


To get access to the root console, that is, virtual console 1:
Pre-converted images [http://dev.laptop.org/pub/virtualbox/ are made available] periodically to support those who do not have Qemu's tools installed on their workstations. Choose the .zip file for the version you require.
* You can use CTRL-ALT + space then F1, that is, hold down CTRL-ALT while you press the spacebar and then the F1 key. You can do the same with F3 to get back to your normal X session.


Use full-screen mode:
Read bug [https://dev.laptop.org/ticket/3470 #3470] before choosing builds 578-581!
* ctrl-alt-enter to enter/exit full-screen mode

=== Building an Image from Scratch ===

* Download an official [[OS_images|devel-ext3]] image (<thefile>.img.bz2)
* bunzip2 <thefile>.img.bz2
* use the qemu-img function from [[Qemu|Qemu]] to convert the image into a vmdk file
** qemu-img convert <thefile>.img -O vmdk <thefile>.vmdk

Now create a new VMWare "Machine":

* "New Virtual Machine", "Typical", OS Type "Other Linux 2.6.x kernel"
* Network Address Translation (NAT) networking (recommended, try others if you like)
* Disk configuration (irrelevant, we're going to overwrite it)

Edit "Machine" Settings:

* Memory 512MB (recommended for development work, 256 more closely simulates an XO)
* Remove the auto-generated hard-disk
* Add a new hard disk, "Existing Disk Image", choose <thfile>.vmdk
* Ensure that audio is enabled

== Configure ==

Once you have booted the machine, you will need to specify a name for yourself and choose an XO colour. You will then need to configure the collaboration server. To do this, pull up the developer's console, and use the "vi" editor to change the configuration file ~/.sugar/default/config to change the "server=" line to "server=olpc.collabora.co.uk".

When this is done, reboot. The virtual XO should now have networking support and should show you a network view with other XOs logged on.


== OLPC Clones ==
== OLPC Clones ==
Line 75: Line 48:
VMware Workstation has a nifty feature called "Linked Clones." This enables users to deploy virtual machines based on the "template virtual machine" that take up very little space. For example, I can make a OLPC virtual machine, turn it into a template, make a clone, and the clone will take up ~6 megs of disk space when not running. When running, it will consume more diskspace as ram.
VMware Workstation has a nifty feature called "Linked Clones." This enables users to deploy virtual machines based on the "template virtual machine" that take up very little space. For example, I can make a OLPC virtual machine, turn it into a template, make a clone, and the clone will take up ~6 megs of disk space when not running. When running, it will consume more diskspace as ram.


=== Why Are OLPC Virtual Machine Clones Useful? ===
=== Why? ===


It is now extremely easy to test mesh networking and networking activities in general. The folks at OLPC Austria have done something similar with qemu, but that requires additional software to manage a virtual ethernet network. VMware workstation provides more networking support out the box.
It is now extremely easy to test mesh networking and networking activities in general. The folks at OLPC Austria have done something similar with qemu, but that requires additional software to manage a virtual ethernet network. VMware workstation provides more networking support out the box.
Line 83: Line 56:
=== Creating the Template OLPC Virtual Machine ===
=== Creating the Template OLPC Virtual Machine ===


* Follow the above steps for creating a OLPC virtual machine, but when done, do not boot it up. This is extremely important! Booting it up and making a clone of that will cause unpredictable behavior such as no setup username screen ever displaying.
* Follow the above steps for creating a OLPC virtual machine, but when done, '''do not boot it up'''. This is extremely important! Booting it up and making a clone of that will cause unpredictable behavior such as no setup username screen ever displaying.
* Now, edit the virtual machine's settings and go to the options tab. Choose "Advanced" and check the "Enable template mode" checkbox and hit OK.
* Now, edit the virtual machine's settings and go to the options tab. Choose "Advanced" and check the "Enable template mode" checkbox and hit OK.
* Go to the snapshot manager for this virtual machine and choose to take a snapshot in its powered off state. Give it a useful name like, "OLPC Base Template" with a description of perhaps "Not booted yet." Save this.
* Go to the snapshot manager for this virtual machine and choose to take a snapshot in its powered off state. Give it a useful name like, "OLPC Base Template" with a description of perhaps "Not booted yet." Save this.
Line 90: Line 63:
=== Deploying Clones From The Template OLPC Virtual Machine ===
=== Deploying Clones From The Template OLPC Virtual Machine ===


* Select the template OLPC VM and choose to clone it.
* With the OLPC VM still selected, Goto VM -> Clone.
* In the dialog box that pops up, select next.
* In the 'Clone Virtual Machine Wizard' that pops up, select next.
* Choose the existing snapshot (It will be called "OLPC Base Template" if you followed the above instructions exactly) and hit next.
* Choose the existing snapshot (It will be called "OLPC Base Template" if you followed the above instructions exactly) and hit next.
* Choose "Create a linked clone" - This will greatly save on disk space.
* Choose "Create a linked clone" - This will greatly save on disk space.
Line 97: Line 70:
* Now you can boot the clone!
* Now you can boot the clone!


== Tips ==
== VMWare Tools ==

* install the VMWare tools if you prefer
** Note, experiences of most developers seem to suggest this isn't '''necessary''', and it's a bit involved

Ed Borasky, 5 December 2007: I've downloaded ship2 build650 and built a virtual machine from it following the above instructions. Unfortunately:
<ol>
<li>The image of 1 GB is almost full. The VMware tools RPM won't install -- there isn't enough space.</li>
<li>I can build a new virtual disk (2 GB) and copy the original image to it, using a Fedora 8 rescue CD. After that, I can install the VMware tools RPM.</li>
<li>Once you have the RPM installed, you have to run a Perl configure script. Well, the XO doesn't have Perl. So you have to install Perl. After that, you discover that the script needs "gcc", "make" and kernel headers. I got "gcc" and "make" in there, but the repositories don't seem to have the right kernel headers.</li>
<li>I am about to try this with the latest Joyride build -- I think I can get all the dependencies installed, although I still will need a larger virtual disk than the stock 1 GB.</li>
<li>The good news is that even without VMware tools, the virtual machines come up in Workstation and the Player. I have not been able to connect to a host sound card yet, but that's probably a VMware configuration issue and not something in the emulated XO guest.</li>
</ol>

= Developer's Desktop Emulation =

For development on the core [[Sugar]] system (as distinct from activities), you likely need an emulated [[sugar-jhbuild]] system so that you can keep up to the most recent versions of all core packages.

System Requirements:

* Windows hosts: if your machine was considered 'fast' two years ago, you'll do fine
* Mac hosts: don't even think about this on a G4 or even a G5: use an Intel-Mac
* Memory: 2GB is a realistic minimum. 3GB is recommended.

The quickest way to get started creating a jhbuild (developer's desktop) is:

* The next steps will take the better part of a day to complete, if not more on a slower machine (You'll be running an emulator ''within'' an emulator!)

* Create a new virtual machine and do a base Fedora (or Ubuntu) install on it
** Do not install any extra packages (will be done later)
** Make sure you give the disk at least 15GB max size. If you have the disk space, preallocate it now. That will give you a twofold increase in performance
** If you have more than 1GB of RAM, set the virtual machine to 800MB, if not give it 400MB.
** Give the image access to all your CPUs too, if you have them (default is one).
** There is a preinstalled 'virtual appliance' F7 available via vmware.com, but you'll need to increase its disk size first. It maxes out at 4.7GB. 2GB short of a working sugar-jhbuild environment.

Once you have your working Fedora 7 or Ubuntu image under emulation, see the instructions for setting up [[Sugar with sugar-jhbuild]] for your new (emulated) platform:

* [[Sugar on Fedora]]
* [[Sugar on Ubuntu Linux]]


The <code>update</code> step will download approximately 1.6GB of data (using compression so probably around 400MB in actual download). The build phase will also take a few hours. On a 2.4Ghz Core2 duo iMac with 3GB ram it took about two hours.
* To get access to the root console, that is, virtual console 1
** You can use CTRL-ALT + space then F1, that is, hold down CTRL-ALT while you press the spacebar and then the F1 key. You can do the same with F3 to get back to your normal X session.


== See Also ==
See:


* [[Developers/Setup|Developer's Handbook Setup]] -- describes the process of setting up a working environment
* [[VirtualBox]] is an emulation system with similar performance and usage
* [[Qemu]] is an Open Source emulation system


[[Category:OS]]
[[Category:OS]]

Latest revision as of 16:15, 8 February 2011

For current information on emulation of OLPC software images, see Emulating the XO

Stop hand.png WARNING:
The content of this section is considered
DEPRECATED and OBSOLETE
It is preserved for historical or documenting reasons.

modify 

You can decide either to emulate an XO via downloaded images, or to build a developer's desktop image starting from a stock Fedora 7. Both approaches are discussed here.

See Also:

  • There is apparently a free wrapper that lets you use the VMWare player similarly to VMWare Workstation on MS Windows platforms.

Caveats

On Linux, VMWare setup requires a package of kernel modules (as do all high-speed emulation options we are aware of).

VMWare seems to have the highest performance of the emulation solutions available, but the difference between it and Qemu + KQemu is fairly minimal. hl

Setup

The VMWare/VirtualBox images are converted from the official images using a simple downloading script. You can either use a pre-converted image (recommended) or download and convert the official images yourself.

Mac Users may want to check out this article or use OLPC4Mac, a script that creates an OLPC image for VMware Fusion on the Mac automatically.

Pre-converted Images

Pre-converted images used to be generated from the latest release and made available at http://dev.laptop.org/pub/virtualbox/

OS images explains the different kinds of builds.

Choose a reasonably recent version (within the last few weeks) whenever possible. Keep in mind that Joyride builds may be broken! Discussions on the OLPC-devel mailing list will discuss broken builds when they happen.

Images created after 2007-12-22 should have a VMWare 6.0-format -6.vmx and -6.vmxf file in the downloadable zip file. These files are not yet tested, but VMWare 6.0 should allow you to use USB keys and the like more reliably within the emulated images.

See: Configuration and Usage -- describes how to set up the new image for development work

Tips

To get access to the root console, that is, virtual console 1:

  • You can use CTRL-ALT + space then F1, that is, hold down CTRL-ALT while you press the spacebar and then the F1 key. You can do the same with F3 to get back to your normal X session.

Use full-screen mode:

  • ctrl-alt-enter to enter/exit full-screen mode

OLPC Clones

VMware Workstation has a nifty feature called "Linked Clones." This enables users to deploy virtual machines based on the "template virtual machine" that take up very little space. For example, I can make a OLPC virtual machine, turn it into a template, make a clone, and the clone will take up ~6 megs of disk space when not running. When running, it will consume more diskspace as ram.

Why?

It is now extremely easy to test mesh networking and networking activities in general. The folks at OLPC Austria have done something similar with qemu, but that requires additional software to manage a virtual ethernet network. VMware workstation provides more networking support out the box.

In addition, the clones would take less disk space than it would to run multiple instances of qemu images.

Creating the Template OLPC Virtual Machine

  • Follow the above steps for creating a OLPC virtual machine, but when done, do not boot it up. This is extremely important! Booting it up and making a clone of that will cause unpredictable behavior such as no setup username screen ever displaying.
  • Now, edit the virtual machine's settings and go to the options tab. Choose "Advanced" and check the "Enable template mode" checkbox and hit OK.
  • Go to the snapshot manager for this virtual machine and choose to take a snapshot in its powered off state. Give it a useful name like, "OLPC Base Template" with a description of perhaps "Not booted yet." Save this.
  • You now have a template VM for cloning!

Deploying Clones From The Template OLPC Virtual Machine

  • With the OLPC VM still selected, Goto VM -> Clone.
  • In the 'Clone Virtual Machine Wizard' that pops up, select next.
  • Choose the existing snapshot (It will be called "OLPC Base Template" if you followed the above instructions exactly) and hit next.
  • Choose "Create a linked clone" - This will greatly save on disk space.
  • Give the clone a name and a place to live in and click through.
  • Now you can boot the clone!

VMWare Tools

  • install the VMWare tools if you prefer
    • Note, experiences of most developers seem to suggest this isn't necessary, and it's a bit involved

Ed Borasky, 5 December 2007: I've downloaded ship2 build650 and built a virtual machine from it following the above instructions. Unfortunately:

  1. The image of 1 GB is almost full. The VMware tools RPM won't install -- there isn't enough space.
  2. I can build a new virtual disk (2 GB) and copy the original image to it, using a Fedora 8 rescue CD. After that, I can install the VMware tools RPM.
  3. Once you have the RPM installed, you have to run a Perl configure script. Well, the XO doesn't have Perl. So you have to install Perl. After that, you discover that the script needs "gcc", "make" and kernel headers. I got "gcc" and "make" in there, but the repositories don't seem to have the right kernel headers.
  4. I am about to try this with the latest Joyride build -- I think I can get all the dependencies installed, although I still will need a larger virtual disk than the stock 1 GB.
  5. The good news is that even without VMware tools, the virtual machines come up in Workstation and the Player. I have not been able to connect to a host sound card yet, but that's probably a VMware configuration issue and not something in the emulated XO guest.

Developer's Desktop Emulation

For development on the core Sugar system (as distinct from activities), you likely need an emulated sugar-jhbuild system so that you can keep up to the most recent versions of all core packages.

System Requirements:

  • Windows hosts: if your machine was considered 'fast' two years ago, you'll do fine
  • Mac hosts: don't even think about this on a G4 or even a G5: use an Intel-Mac
  • Memory: 2GB is a realistic minimum. 3GB is recommended.

The quickest way to get started creating a jhbuild (developer's desktop) is:

  • The next steps will take the better part of a day to complete, if not more on a slower machine (You'll be running an emulator within an emulator!)
  • Create a new virtual machine and do a base Fedora (or Ubuntu) install on it
    • Do not install any extra packages (will be done later)
    • Make sure you give the disk at least 15GB max size. If you have the disk space, preallocate it now. That will give you a twofold increase in performance
    • If you have more than 1GB of RAM, set the virtual machine to 800MB, if not give it 400MB.
    • Give the image access to all your CPUs too, if you have them (default is one).
    • There is a preinstalled 'virtual appliance' F7 available via vmware.com, but you'll need to increase its disk size first. It maxes out at 4.7GB. 2GB short of a working sugar-jhbuild environment.

Once you have your working Fedora 7 or Ubuntu image under emulation, see the instructions for setting up Sugar with sugar-jhbuild for your new (emulated) platform:

The update step will download approximately 1.6GB of data (using compression so probably around 400MB in actual download). The build phase will also take a few hours. On a 2.4Ghz Core2 duo iMac with 3GB ram it took about two hours.

See: