[Esbox-commits] r2301 - in www/2nd_edition: . images/vm
eswartz at garage.maemo.org
eswartz at garage.maemo.org
Wed Oct 14 19:34:05 EEST 2009
Author: eswartz
Date: 2009-10-14 19:34:04 +0300 (Wed, 14 Oct 2009)
New Revision: 2301
Added:
www/2nd_edition/images/vm/esbox-new-project-vm-bad.png
www/2nd_edition/images/vm/esbox-new-project-vm.png
www/2nd_edition/images/vm/esbox-project-indexer-settings.png
www/2nd_edition/images/vm/gnome-share-dialog.png
www/2nd_edition/images/vm/gnome-share-menu.png
www/2nd_edition/images/vm/osx-share-prefs.png
www/2nd_edition/images/vm/osx-share-smb-enable.png
www/2nd_edition/images/vm/vista-menu-share.png
www/2nd_edition/images/vm/vista-share-config.png
www/2nd_edition/images/vm/vista-share-permissions.png
www/2nd_edition/images/vm/xp-share-dialog.png
www/2nd_edition/images/vm/xp-share-menu.png
www/2nd_edition/images/vm/xp-share-permissions.png
www/2nd_edition/shared_folders.html
Modified:
www/2nd_edition/documentation.html
www/2nd_edition/virtual_machines.html
Log:
Add new shared folders documentation
Modified: www/2nd_edition/documentation.html
===================================================================
--- www/2nd_edition/documentation.html 2009-10-13 22:42:26 UTC (rev 2300)
+++ www/2nd_edition/documentation.html 2009-10-14 16:34:04 UTC (rev 2301)
@@ -1,25 +1,50 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=utf-8" />
- <title>Documentation</title>
- <meta name="description" content="" />
- <meta name="keywords" content="" />
- <link href="css/main.css" rel="stylesheet" type="text/css" />
- <link rel="shortcut icon" href="images/favicon.ico" />
-</head>
-<body>
- <script type="text/javascript">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <script></script>
+
+
+
+
+ <meta http-equiv="content-type" content="text/html; charset=utf-8">
+ <title>Documentation</title>
+
+
+
+
+
+
+ <meta name="description" content="">
+
+
+
+
+ <meta name="keywords" content="">
+
+
+
+
+ <link href="css/main.css" rel="stylesheet" type="text/css">
+
+
+
+
+ <link rel="shortcut icon" href="images/favicon.ico">
+
+</head><body>
+
+<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
- <script type="text/javascript">
+
+<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-2565700-2");
pageTracker._initData();
pageTracker._trackPageview();
</script>
- <div id="header">
- <span id="img"><a href="index.html"><img src="images/marca.jpg" alt="logo" border="0" /></a></span>
+
+<div id="header">
+ <span id="img"><a href="index.html"><img src="images/marca.jpg" alt="logo" border="0"></a></span>
<ul id="menu">
<li><a href="index.html">home</a></li>
<li><a href="features.html">features</a></li>
@@ -30,21 +55,30 @@
</ul>
</div>
- <div id="banner">
+
+
+
+<div id="banner">
<div class="wrap">
<div id="box">
</div>
</div>
</div>
- <div class="wrap">
+
+
+<div class="wrap">
+
<div id="container">
<div id="content">
- <br /> There are lots of resources to learn how to start Maemo development with ESbox.<br /><br />
+ <br> There are lots of resources to learn how to start Maemo development with ESbox.<br><br>
<h3><a href="faq.html" target="_blank">ESbox FAQ</a></h3>
- <h3><a href="virtual_machines.html" target="_blank">Virtual Machine Guide</a></h3>
- <h3><a href="https://garage.maemo.org/svn/esbox/tags/2.0.0-M6/org.maemo.esbox.help/html/toc.html" target="_blank">ESbox User Help</a></h3>
+
+<h3><a href="virtual_machines.html" target="_blank">Virtual Machine Guide</a></h3>
+
+<h3><a href="shared_folders.html" target="_blank">Setting Up Shared Folders</a></h3>
+ <h3><a href="https://garage.maemo.org/svn/esbox/trunk/org.maemo.esbox.help/html/toc.html" target="_blank">ESbox User Help</a></h3>
<h3><a href="http://help.eclipse.org/ganymede/topic/org.eclipse.cdt.doc.user/concepts/cdt_o_home.htm" target="_blank">CDT User Help</a></h3>
<h3><a href="http://www.youtube.com/user/esboxteam" target="_blank">ESbox Screencasts on Youtube</a></h3>
<h3><a href="http://pc-connectivity.garage.maemo.org/" target="_blank">PC Connectivity project page</a></h3>
@@ -52,28 +86,32 @@
<h3><a href="http://maemo.org/development/documentation/programming_languages/" target="_blank">Maemo Programming Languages documentation</a></h3>
<h3><a target="_blank" href="http://www.maemo.org">maemo platform official site</a></h3>
<h3><a target="_blank" href="http://www.eclipse.org">Eclipse project official site</a></h3>
- <p style="text-align:right"><a href="index.html" target="_parent"><img src="images/li_back.jpg" alt="back" title="back" border="0" /></a></p>
+ <p style="text-align: right;"><a href="index.html" target="_parent"><img src="images/li_back.jpg" alt="back" title="back" border="0"></a></p>
</div>
</div>
</div>
- <div id="footer">
+
+
+
+<div id="footer">
<div class="part">
- <table width="100%" cellspacing="5px" style="bgcolor:#000">
- <tr class="white">
- <td><a href="http://esbox.garage.maemo.org" target="_blank"><img src="images/ma_es.jpg" alt="esbox" title="esbox" /></a></td>
+ <table style="" cellspacing="5" width="100%">
+ <tbody><tr class="white">
+ <td><a href="http://esbox.garage.maemo.org" target="_blank"><img src="images/ma_es.jpg" alt="esbox" title="esbox"></a></td>
<td valign="middle">is a part of</td>
- <td><a href="http://wiki.percomp.org" target="_blank"><img src="images/ma_pe.jpg" alt="percomp" title="percomp" /></a></td>
+ <td><a href="http://wiki.percomp.org" target="_blank"><img src="images/ma_pe.jpg" alt="percomp" title="percomp"></a></td>
<td valign="middle">developed by</td>
- <td><a href="http://embedded.ufcg.edu.br" target="_blank"><img src="images/ma_emb.jpg" alt="embedded" title="embedded" /></a></td>
+ <td><a href="http://embedded.ufcg.edu.br" target="_blank"><img src="images/ma_emb.jpg" alt="embedded" title="embedded"></a></td>
<td valign="middle">in cooperation with</td>
- <td><a href="http://www.indt.org.br/" target="_blank"><img src="images/ma_indt.jpg" alt="indt" title="indt" /></a></td>
+ <td><a href="http://www.indt.org.br/" target="_blank"><img src="images/ma_indt.jpg" alt="indt" title="indt"></a></td>
<td valign="middle">and</td>
- <td><a href="http://maemo.org/" target="_blank"><img src="images/ma_ma.jpg" alt="maemo.org" title="maemo.org" /></a></td>
+ <td><a href="http://maemo.org/" target="_blank"><img src="images/ma_ma.jpg" alt="maemo.org" title="maemo.org"></a></td>
</tr>
- </table>
+ </tbody></table>
</div>
<p class="right">© Copyright 2007 - 2009, INdT, 2008 - 2009 Nokia</p>
</div>
-</body>
-</html>
\ No newline at end of file
+
+
+</body></html>
\ No newline at end of file
Added: www/2nd_edition/images/vm/esbox-new-project-vm-bad.png
===================================================================
(Binary files differ)
Property changes on: www/2nd_edition/images/vm/esbox-new-project-vm-bad.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: www/2nd_edition/images/vm/esbox-new-project-vm.png
===================================================================
(Binary files differ)
Property changes on: www/2nd_edition/images/vm/esbox-new-project-vm.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: www/2nd_edition/images/vm/esbox-project-indexer-settings.png
===================================================================
(Binary files differ)
Property changes on: www/2nd_edition/images/vm/esbox-project-indexer-settings.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: www/2nd_edition/images/vm/gnome-share-dialog.png
===================================================================
(Binary files differ)
Property changes on: www/2nd_edition/images/vm/gnome-share-dialog.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: www/2nd_edition/images/vm/gnome-share-menu.png
===================================================================
(Binary files differ)
Property changes on: www/2nd_edition/images/vm/gnome-share-menu.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: www/2nd_edition/images/vm/osx-share-prefs.png
===================================================================
(Binary files differ)
Property changes on: www/2nd_edition/images/vm/osx-share-prefs.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: www/2nd_edition/images/vm/osx-share-smb-enable.png
===================================================================
(Binary files differ)
Property changes on: www/2nd_edition/images/vm/osx-share-smb-enable.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: www/2nd_edition/images/vm/vista-menu-share.png
===================================================================
(Binary files differ)
Property changes on: www/2nd_edition/images/vm/vista-menu-share.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: www/2nd_edition/images/vm/vista-share-config.png
===================================================================
(Binary files differ)
Property changes on: www/2nd_edition/images/vm/vista-share-config.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: www/2nd_edition/images/vm/vista-share-permissions.png
===================================================================
(Binary files differ)
Property changes on: www/2nd_edition/images/vm/vista-share-permissions.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: www/2nd_edition/images/vm/xp-share-dialog.png
===================================================================
(Binary files differ)
Property changes on: www/2nd_edition/images/vm/xp-share-dialog.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: www/2nd_edition/images/vm/xp-share-menu.png
===================================================================
(Binary files differ)
Property changes on: www/2nd_edition/images/vm/xp-share-menu.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: www/2nd_edition/images/vm/xp-share-permissions.png
===================================================================
(Binary files differ)
Property changes on: www/2nd_edition/images/vm/xp-share-permissions.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: www/2nd_edition/shared_folders.html
===================================================================
--- www/2nd_edition/shared_folders.html (rev 0)
+++ www/2nd_edition/shared_folders.html 2009-10-14 16:34:04 UTC (rev 2301)
@@ -0,0 +1,785 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+ <script><head>
+ <script></script>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta http-equiv="content-type" content="text/html; charset=utf-8">
+ <title>Setting Up Shared Folders</title>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta name="description" content="">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta name="keywords" content="">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <link href="css/main.css" rel="stylesheet" type="text/css">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <link rel="shortcut icon" href="images/favicon.ico">
+
+
+
+
+
+
+
+
+
+
+
+
+
+</head><body>
+<script type="text/javascript">
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+ </script>
+<script type="text/javascript">
+ var pageTracker = _gat._getTracker("UA-2565700-2");
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ </script>
+<div id="header"><span id="img"><a href="index.html"><img src="images/marca.jpg" alt="logo" border="0"></a></span>
+<ul id="menu">
+ <li><a href="index.html">home</a></li>
+ <li><a href="features.html">features</a></li>
+ <li><a href="releases.html">releases</a></li>
+ <li class="active"><a href="documentation.html">documentation</a></li>
+ <li><a href="installation.html">installation</a></li>
+ <li><a href="contributing.html">contributing</a></li>
+</ul>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div id="banner">
+<div class="wrap">
+<div id="box">
+</div>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="wrap">
+
+<div id="container">
+<div id="content">
+
+<br>
+<h2>Setting Up Shared Folders<br>
+</h2><ul>
+<li><a href="#overview">Overview</a>
+<ul>
+ <li><a href="#sharing_eclipse">Sharing Eclipse Projects</a><br>
+</li>
+ <li><a href="#sharing_maemo">Sharing Maemo SDK</a><br>
+</li>
+</ul>
+</li>
+ <li><a href="#sharing_xp">How to Make Shares in Windows XP</a></li>
+ <li><a href="#sharing_vista">How to Make Shares in Windows Vista</a><br>
+</li>
+ <li><a href="#sharing_osx">How to Make Shares in MacOS X</a></li>
+ <li><a href="#sharing_linux">How to Make Shares in Linux</a><br>
+ </li>
+
+
+ <li><a href="#defaults">Default Shared Folders Configuration</a><br>
+ </li></ul><ul><li><a href="#troubleshooting">Troubleshooting</a></li>
+</ul>
+
+
+
+<p id="overview">
+</p>
+<h3 id="heading">Overview</h3>
+
+<p>Shared folders are needed when you run ESbox with a virtual machine outside the Debian Linux/x86 host. (See <a href="virtual_machines.html">Using Virtual Machines</a> for the primary documentation on virtual machines.) </p>
+<p>In this configuration, the Maemo SDK (build tools, rootstrap, etc)
+is contained inside the filesystem of a virtual machine, and is not
+directly accessible to the host. Conversely, the projects that
+you create and edit in Eclipse are created in the host filesystem, and are not directly accessible to the VM. <br>
+</p>
+<p>In order for most ESbox features to work, you must set up and configure shared folders to connect these filesystems
+together.<br>
+</p>
+
+<ul>
+ <li>Set up: you must manually set up file sharing in your host and in your VM (if you are using a custom image not provided by the <a href="http://maemovmware.garage.maemo.org">Maemo SDK VM project</a>). See the "How to Make Shares..." sections below.<br>
+
+ </li>
+</ul>
+
+<ul>
+
+ <li>Configure: you must tell ESbox what shares you have configured on the ESbox > Build Machines preference page under the <a href="virtual_machines.html#shared_folders">Shared Folders</a> pane. See the "Default Shared Folders Configuration" section below.<br>
+ </li>
+
+</ul>
+<p><a href="images/vm/shared_folders.png">See a diagram explaining how this works in an example Win32 configuration here.</a>
+</p><br>
+<p id="sharing_eclipse">
+
+</p>
+
+<h3>Sharing Eclipse Projects<br>
+
+</h3>
+
+
+<p>In Eclipse, projects are traditionally created in the host filesystem<sup><a href="shared_folders.html#note_host_projects">*</a></sup>.
+The Maemo SDK needs to be able to "see" the project location in order
+to build your project, so the project location should be inside a
+directory which is <span style="font-style: italic;">shared to the virtual machine</span>.</p>
+<p>For example, in Windows, you may have a shared folder
+"c:\maemo\shared". You create projects somewhere inside this
+tree. The share should have read-write permissions so the build
+can generate object files and executables.<br>
+</p>
+<p>(The Eclipse workspace itself does not have to live inside the shared folder, but it may be simpler to understand.)<br>
+</p>
+<p><span style="font-weight: bold;">At the same time</span>, the shared folder from the host must be mounted in the VM in a location <span style="font-style: italic;">visible to the rootstrap</span>, so that the SDK build tools can locate your C/C++ sources and headers or Python scripts. <br>
+</p>
+<p>Scratchbox 1 uses a sandbox model, whch means only files inside
+certain directories of /scratchbox are visible. It's best to
+select a directory which does not change locations for different
+rootstraps, such as the user's home directory inside SB1. A
+suitable location is <em>/scratchbox/users/<user>/home/<user>/shared</em>.<br>
+</p>
+<p>For Scratchbox 2, a similar kind of sandboxing occurs, but it is
+slightly less restrictive. We recommend mounting any shares
+inside the user's home directory. A suitable location is <em>/home/<user>/shared</em>.<br>
+</p>
+<br>
+<hr style="width: 100%; height: 2px;">
+<p><a name="note_host_projects"></a>[*] Projects are created in the
+host filesystem by convention. CDT has some support for creating
+projects on a network using EFS, but EFS-based projects are not properly
+supported by all the 3rd party plugins ESbox uses. <br>
+</p>
+
+<p>Note: this choice exposes occasional problems when Unix filesystem
+semantics are not fully emulated over Samba shares, such as when
+softlinks are created by build scripts, and building is a little slower
+than with a native filesystem. But we chose to optimize for ease
+of Eclipse integration and speed of IDE/editor/debugger-time activity
+over build-time performance.</p>
+
+<p id="sharing_maemo">
+
+</p><h3>Sharing Maemo SDK</h3>
+
+<p>CDT's C/C++ indexer parses the sources and headers of C/C++
+projects, so you can look up #includes and use code completion, symbol
+lookup, cross-referencing, type/call hierarchies, etc. The
+indexer data is also used to resolve symbols for use by Maemo C++ hover
+help.<br>
+</p>
+<p>For this parsing to be complete and cover most of the identifiers
+defined or referenced in your project, the Maemo SDK headers need to be
+visible to the indexer. The easiest way to do this with the stock
+"C/C++ Includes and Symbols" UI is to have the Maemo SDK visible to the
+host filesystem <sup><a href="#note_host_indexing">*</a></sup>.</p>
+<p>This kind of sharing is <span style="font-style: italic;">not required</span> for normal build, launch, or debug operations.<br>
+</p>
+<p><span style="font-weight: bold;">WARNING:</span> for sharing from the VM to the host, the network adapter setup in the VM should be <span style="font-weight: bold;">Bridged Networking</span>. NAT networking requires port forwarding
+over the CIFS port
+445 to avoid conflicting with the host's SMB/CIFS server, but Windows
+at
+least does not easily allow you to specify an alternate CIFS port with
+programs
+like "net use". Also, in MacOS X, VMware Fusion does not appear to support user-configured port forwarding.<br>
+</p>
+<p>The virtual machine must export shares so the Maemo rootstraps can
+be mounted in the host. You want to capture the "compilers" and
+"users/.../targets" directories for Scratchbox 1 -- <em>/scratchbox</em> captures both -- and the "/home/.../.maemo-sdk" directory for Scratchbox 2 -- the <em>/home/<user></em> directory is good enough. <br>
+</p>
+
+
+<p>The <a href="http://maemovmware.garage.maemo.org/">Maemo SDK VM images</a> export these shares by default.<br>
+</p>
+<hr style="width: 100%; height: 2px;">
+<p><a name="note_host_indexing"></a>[*] CDT supports offline or
+precompiled indexes, which would obviate the need to directly expose
+the SDK to the host. This feature was not implemented in ESbox
+due to time constraints and limitations in CDT 5. In any case,
+it's worthwhile to expose the SDK contents to the host so you can
+browse Maemo headers in the editor.</p>
+<p id="sharing_xp">
+
+</p>
+<h3 id="heading">How to Make Shares in Windows XP<br>
+
+</h3>
+
+<p>Take these steps to share a folder like "c:\maemo\shared" (or whatever you prefer).<br>
+</p>
+<h4>Enable sharing services</h4>
+<p>Be sure to enable Windows File & Print Sharing. (I don't
+have a screenshot for this, but you will see it on a fresh system when
+you first select "Sharing & Security..." from a folder's context
+menu in Windows Explorer.) <br>
+</p>
+<p>Alternately, visit <strong>Control Panel > Administrative Tools > Services </strong>and enable the <strong>Server </strong>service.<br>
+</p><h4>Exporting shares</h4>
+<p>Under Windows Explorer, right click on a folder and select "<em>Sharing and Security...</em>":</p>
+<p><img style="width: 272px; height: 182px;" alt="Folder > Sharing and Security..." src="images/vm/xp-share-menu.png"><br>
+</p>
+
+<p>You will see a dialog for configuring a share:</p>
+<p><img style="width: 367px; height: 481px;" alt="Configured share dialog" src="images/vm/xp-share-dialog.png"><br>
+</p>
+<p>Check "<em>Share this folder</em>".</p>
+
+<p>Edit the "<em>Share name</em>" if needed. You need to enter
+the same value in the Shared Folders page. Usually this is the
+same as the last segment of the shared folder.<br>
+</p>
+<p>For "<em>User limit</em>", you may choose to limit the number of users.
+(ESbox will attempt to share a folder into a VM only once, even if you
+have multiple mappings established, by using bind mounts to mirror the
+original mount.)</p>
+<p>Edit the "<em>Permissions</em>" and ensure that your local user account (who runs Eclipse) has
+<em>Full Control</em> (change and read). The build process needs to write
+object files, dependencies, and executables:</p>
+<p><img style="width: 367px; height: 450px;" alt="Permissions settings" src="images/vm/xp-share-permissions.png"><br>
+</p>
+
+<p><span style="font-weight: bold;">Note</span>: export a single folder
+rather than a drive. It is inherently unsafe to export entire
+drives, and ESbox will not propose adding mappings for exported drives.<br>
+</p>
+<p id="sharing_vista">
+
+</p><h3 id="heading">How to Make Shares in Windows Vista<br>
+
+</h3>
+
+
+<p>Take these steps to share a folder like "c:\maemo\shared" (or whatever you prefer).<br>
+</p>
+
+<h4>Enable file sharing services</h4>
+
+
+<p>Under <em>Control Panel > Network and Internet > Network and Sharing Center</em>, the entry "<em>Sharing and Discovery > File sharing</em>" should be On. <br>
+</p>
+<p><img style="width: 655px; height: 440px;" alt="Vista Network and Sharing Center" src="images/vm/vista-share-config.png"><br>
+</p>
+<h4>Exporting shares</h4>
+
+<p>Under Windows Explorer, right click on a folder and select "Share...":</p>
+<p><img style="width: 381px; height: 253px;" alt="Folder > Share..." src="images/vm/vista-menu-share.png"><br>
+</p>
+
+<p>Ensure that your local user account (who runs Eclipse) is in the share list, and has <em>Permission Level</em> = <em>Owner</em> (read and write). The build process needs to write
+and delete object files, dependencies, and executables.</p>
+<p><img style="width: 629px; height: 457px;" alt="Setting user permissions" src="images/vm/vista-share-permissions.png"><br>
+</p>
+<p>
+<span style="font-weight: bold;">Note</span>: export a single folder
+rather than a drive. It is inherently unsafe to export entire
+drives, and ESbox will not propose adding mappings for exported drives.
+</p>
+
+<p id="sharing_osx">
+
+</p><h3 id="heading">How to Make Shares in MacOS X<br>
+
+</h3>
+
+<h4>Enabling Windows/SMB File Sharing</h4>
+<p>Open <em>System Preferences > Sharing</em>.</p>
+<p>Click the lock and enter an administrator's credentials to make changes.<br>
+</p>
+<p>Enable <em>File Sharing</em>.</p>
+<p>Click <em>Options...</em>.</p>
+<p>Check the option "<em>Share files and folders using SMB</em>". This is the protocol used for Windows-style file sharing.</p>
+<p><img style="width: 423px; height: 431px;" alt="Enabling SMB sharing" src="images/vm/osx-share-smb-enable.png"><br>
+</p>
+<h4>Exporting Shares</h4>
+<p>Use the default shares for your account ("Public", which is under "/home/<user>/Public"), or create new ones. <br>
+</p>
+<p>Ensure your user account (who runs Eclipse) has <em>Read and Write</em> permissions.</p>
+<p><img style="width: 670px; height: 549px;" alt="Share preferences" src="images/vm/osx-share-prefs.png"><br>
+</p>
+<p>The "<em>Share name</em>" used in ESbox comes from the label under "<em>Shared Folders</em>".<br>
+</p>
+<p id="sharing_linux">
+
+</p>
+<h3 id="heading">How to Make Shares in Linux<br>
+
+</h3>
+
+
+<h4>Enabling File Sharing</h4>
+
+<p>This also uses "Windows-style" file sharing. But when the host
+and VM both run Linux, and you're using a modern version of Samba
+(3.x), POSIX file semantics are supported, so there is no loss of
+functionality (permissions, softlinks, etc. are preserved).<br>
+</p>
+
+<p>Ensure that the "samba" package is installed from your distribution's package repository and that /etc/samba/smb.conf exists.
+</p>
+<h4>Exporting Shares (Manual)<br>
+</h4>
+
+<ul>
+ <li>Method 1: If you are in the 'sambashare" group, you may define a user share directly.</li>
+</ul>
+<p>This is done by adding an entry to <em>/var/lib/samba/usershares</em> (or, to the path defined by the "<em>usershare path</em>" option in <em>/etc/samba/smb.conf</em>. Try "<em>testparm -s --parameter-name='usershare path' </em>" to see the setting).</p>
+<p>Add a text file to this directory whose name is the Share name (e.g. "public"). Specify its contents like this:</p>
+<pre class="cmdbox">#VERSION 3<br>path=/home/localuser/Public<br>comment=<br>usershare_acl=S-1-1-0:F<br>guest_ok=yes<br>directory mask=755<br>create mask=644<br></pre>
+<p>The share will immediately become available.</p>
+<p>(Note: I don't know what is the format of "usershare_acl", but this particular string seems to be used widely.)</p>
+<p>If your Samba server is older, you may need to use this format:</p>
+<pre class="cmdbox">#VERSION 2<br>path=/home/localuser/Public<br>comment=<br>usershare_acl=S-1-1-0:F<br>guest_ok=y<br></pre>
+
+<ul>
+ <li>Method 2: Alternately, you may add the share directly to the Samba configuration.</li>
+</ul>
+<p>Edit the <em>/etc/samba/smb.conf</em> file as root.</p>
+
+<p>Add an entry like the following to the end of the file:</p>
+<pre class="cmdbox">[Public]<br> writable = yes<br> public = yes<br> browseable = yes<br> path = /home/localuser/Public<br></pre><p>(substituting appropriate values for "path" and selecting a custom share name instead of "Public" in brackets.)</p>
+<p>The bracketed section name is the "<em>Share name</em>" used in ESbox.</p>
+
+<p>Then restart samba with:</p>
+<p><tt>$ sudo killall -HUP smbd</tt></p>
+<h4>Exporting Shares (GNOME)</h4>
+<p>Alternately, under GNOME and Nautilus, you may export shares through the UI, by using the "<em>Sharing Options</em>" item on a folder's context menu:<br>
+</p>
+<br>
+<p><img style="width: 491px; height: 292px;" alt="Folder > Sharing Options" src="images/vm/gnome-share-menu.png"></p>
+<p>Check "<em>Share this folder</em>".</p>
+<p> Type in the <em>Share name</em> to use (which will serve the same role in the ESbox Shared Folders configuration).</p>
+<p>If you're using this folder for hosting projects, enable "<em>Allow other people to write in this folder</em>".</p>
+<p>You may also need to enable "<em>Guest access</em>" if you do not have the same user accounts in the host and VM.<br>
+</p>
+<br>
+<p><img style="width: 371px; height: 344px;" alt="GNOME Sharing Dialog" src="images/vm/gnome-share-dialog.png"></p>
+<p>Such shares are created as user shares, as described above.<br>
+</p>
+
+<p id="defaults">
+</p><h3 id="heading">Default Shared Folders Configuration<br>
+</h3>
+
+
+<p>ESbox publishes default shares when you configure a new build machine.</p>
+
+<p>For <span style="font-weight: bold;">Eclipse project sharing</span>, ESbox provides these shares:</p>
+
+
+<ul>
+<li>Local share? = Yes</li><li>Share path = c:\maemo\shared or /home/<user>/Public<br>
+</li><li>Mount path = /scratchbox/users/maemo/home/maemo/shared</li>
+</ul>
+
+
+<p>and</p>
+
+
+<ul>
+<li>Local share? = Yes</li><li>Share path = c:\maemo\shared or /home/<user>/Public<br>
+</li><li>Mount path = /home/maemo/shared<br>
+ </li>
+</ul>
+
+
+
+
+<p>Feel free to change the Share Path to whatever you have on your system. The Mount Paths, though, have
+been selected specially. They point into the user's home on
+the VM so that
+Scratchbox 1 and Scratchbox 2 can see the projects in the same
+Scratchbox-relative directory at build time. Additionally, they point
+to a location that will map the same no matter which target you're
+building. </p>
+<p>Once your build machine
+and shared folder mappings are configured, ESbox will automatically
+select a project location inside a shared folder for you, when you
+create or import a project:</p>
+
+
+<p><img style="width: 467px; height: 528px;" alt="Default location for new project is inside shared folder" src="images/vm/esbox-new-project-vm.png"></p>
+
+<p>In fact, if the dialog presents an error about the project
+location not being visible, this means your shared folder mappings are
+insufficient, because no valid mapping satisfies the goal. This
+mapping depends on the mapping constraints for the union of the
+selected targets.<br>
+</p>
+
+<p><img style="width: 459px; height: 525px;" alt="Error when attempting to select a location not visible in a share" src="images/vm/esbox-new-project-vm-bad.png"><br>
+</p>
+
+
+<p>For <span style="font-weight: bold;">Maemo SDK sharing</span>, ESbox provides these shares:</p>
+
+
+
+<ul>
+<li>Local share? = No<br>
+</li><li>Share path = /scratchbox</li><li>Mount path = S: or /Volumes/scratchbox<br>
+</li>
+</ul>
+
+
+
+<p>and</p>
+
+
+
+<ul>
+<li>Local share? = No</li><li>Share path = /home/maemo</li><li>Mount path = T: or /Volumes/maemo<br>
+ </li>
+</ul>
+
+<p>Again, change the Mount Path according to your preferences. <br>
+</p>
+<p>These shares will allow access to enough of the SDK to allow full C/C++ indexing. The
+home directory is exposed mainly because Scratchbox 2 places SDKs under
+~/.maemo-sdk. But we suggest the whole home directory, which may
+be useful, if you want to move files back and forth between the host
+and VM.<br>
+</p>
+<p>Once you have set up and configured such shares, ESbox will use
+these mappings to populate the C/C++ indexer settings when you create,
+import, or convert a project:</p>
+
+
+
+<p><img style="width: 879px; height: 597px;" alt="C/C++ Include Paths and Symbols populated with directories from shared folder mappings" src="images/vm/esbox-project-indexer-settings.png"><br>
+</p>
+
+
+<p>(If you need to change your shared folder setup, or change other things that invalidate these settings, you can use <em><strong>Project > Index > Reset Paths and Symbols</strong></em> or <em><strong>Project > Index > </strong></em><em>Add Missing Paths and Symbols</em> to regenerate them from the current mappings.)</p>
+
+
+<p id="troubleshooting">
+</p><h3 id="heading">Troubleshooting</h3>
+
+
+<ul>
+<li><span style="font-weight: bold;">Shared folder configuration problems</span>
+ <ul><li>If you cannot mount to shared folders published from Windows, and
+ you get the error <tt>"mount error 12 = cannot allocate memory"</tt>,
+ then this is a host issue. Certain virus scanners may reset a
+registry setting to an inappropriately low value, making it impossible
+to export shares. You can fix this in your Windows registry. <br>
+</li>
+ <li>Edit the key
+ <pre> <big>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\IRPStackSize</big><br> </pre>
+ <p>
+ Define it as a DWORD value (if missing). Set it to a value in
+ the decimal range 15 to 18. (The documentation is unclear what this
+ value indicates, but it's probably a power-of-two. It may require some experimentation.)
+ </p>
+ <p>The new setting will only be read when the sharing service
+ is restarted. You may do this via
+ <strong>Control Panel > Administrative Tools > Services >
+ Server</strong> and restart, or if you've got more time to kill,
+ reboot your system.
+ </p>
+ <p>
+ Also see <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;177078">the Microsoft Knowledge Base article</a>
+ for more information.</p></li>
+</ul>
+</li><li>Time synchronzation problems
+
+
+
+ <ul>
+ <li>Be careful about the time synchronization configuration in the VM or the timezone
+ used in the VM image.</li>
+ </ul>
+ <p>
+If you see warnings like:
+ </p>
+
+
+ <ul>
+
+ <tt class="cmdbox">make: Warning: File `Makefile' has modification time 1.1e+07 s in the future<br><br>
+rm -f *.o helloworld<br>make: warning: Clock skew detected. Your build may be incomplete. </tt>
+ <p>
+ then install the appropriate virtualization tools to ensure the time is synchronized.
+ </p>
+
+ <p>When using VirtualBox, please install Guest Additions to fix
+the time synchronization. In VMware, install VMware Tools.
+Alternately, log into to VM and change the timezone. (Frankly,
+there is not consistent behavior between VM engines, so some tweaking
+may be required.)<br>
+ </p>
+</ul>
+</li><li>
+ You may need to be connected to a LAN for the PC <-> VM communication to
+ work properly. Otherwise shared folders will not be mountable and you may get mysterious
+ timeouts instead.
+ </li><li>
+ If you use Windows and your VM uses NAT, it's unlikely you'll be able to mount folders from the VM
+ without significant advanced networking setup effort. (You would need to use port forwarding to see ports 139 and 445 from
+ the VM without conflicting with the host's own sharing protocol -- but Windows doesn't provide
+ an obvious way to use SMB with different ports. From what I know, you'd need to set up some sort
+ of virtual host over SSH to forward SMB traffic. Any tips are welcome :) )
+ </li>
+ </ul>
+
+
+<li><span style="font-weight: bold;">Autotools projects fail to build Makefile?</span>
+<ul><li>If you have created or imported an autotools-based project, and autoconf and configure run, but make fails with:<br>
+
+ <p><tt>make: *** No rule to make target `all'. Stop.</tt></p>
+
+<p>This may be due to a known file truncation issue that occurs
+when using <tt>autoconf</tt> 2.62 or older over Samba shares. Due to trying to rename files before closing them, the
+ <tt>configure</tt> files will be truncated, preventing Makefiles from
+being generated.
+Current Maemo SDKs ship these old versions of autoconf.
+</p>
+</li><li>ESbox can repair the <tt>autoconf</tt>
+installation in Scratchbox for you if you install it using the Scratchbox 1 installer <strong><span style="font-weight: normal;"></span></strong>wizard.
+<p>Or, if you have an old image or have manually installed Scratchbox 1, you can
+right-click the Scratchbox node (for example, in
+<em>Window > Preferences > Maemo > Installed Targets</em>)
+and select <em>Patch autoconf...</em>. A wizard will guide you through
+the process of repairing the installation.
+</p>
+</li></ul>
+
+ </li>
+
+<p>
+</p>
+
+
+</div>
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div id="footer">
+<div class="part">
+<table style="" cellspacing="5" width="100%">
+ <tbody><tr class="white">
+ <td><a href="http://esbox.garage.maemo.org" target="_blank"><img src="images/ma_es.jpg" alt="esbox" title="esbox"></a></td>
+ <td valign="middle">is a part of</td>
+ <td><a href="http://wiki.percomp.org" target="_blank"><img src="images/ma_pe.jpg" alt="percomp" title="percomp"></a></td>
+ <td valign="middle">developed by</td>
+ <td><a href="http://embedded.ufcg.edu.br" target="_blank"><img src="images/ma_emb.jpg" alt="embedded" title="embedded"></a></td>
+ <td valign="middle">in cooperation with</td>
+ <td><a href="http://www.indt.org.br/" target="_blank"><img src="images/ma_indt.jpg" alt="indt" title="indt"></a></td>
+ <td valign="middle">and</td>
+ <td><a href="http://maemo.org/" target="_blank"><img src="images/ma_ma.jpg" alt="maemo.org" title="maemo.org"></a></td>
+ </tr>
+</tbody></table>
+</div>
+<p class="right">© Copyright 2007 - 2009, INdT, 2008 - 2009 Nokia</p>
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</body></html>
\ No newline at end of file
Modified: www/2nd_edition/virtual_machines.html
===================================================================
--- www/2nd_edition/virtual_machines.html 2009-10-13 22:42:26 UTC (rev 2300)
+++ www/2nd_edition/virtual_machines.html 2009-10-14 16:34:04 UTC (rev 2301)
@@ -1,24 +1,58 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <script></script>
+
+
+
+
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>ESbox Virtual Machines</title>
+
+
+
+
+
+
+
+
+
<meta name="description" content="">
+
+
+
+
+
+
<meta name="keywords" content="">
+
+
+
+
+
+
<link href="css/main.css" rel="stylesheet" type="text/css">
+
+
+
+
+
+
<link rel="shortcut icon" href="images/favicon.ico">
+
+
</head><body>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
@@ -40,6 +74,9 @@
</ul>
</div>
+
+
+
<div id="banner">
<div class="wrap">
<div id="box">
@@ -48,6 +85,9 @@
</div>
+
+
+
<div class="wrap">
<div id="container">
@@ -71,13 +111,17 @@
</a></li><li><a href="#config">ESbox Build Machine Configuration</a></li></ul>
<div style="margin-left: 40px;">
<ul>
+ <li><a href="#vmware">VMware</a></li>
+ <li><a href="#virtualbox">VirtualBox</a></li>
+ <li><a href="#qemu">QEMU</a></li>
<li><a href="#machine_access">Machine Access</a></li>
- <li><a href="#shared_folders">Shared Folders (IMPORTANT!)<br>
+
+ <li><a href="#shared_folders">Shared Folders<br>
</a></li>
</ul>
</div>
<ul>
-<li><a href="#behavior">ESbox Virtual Machine Behavior</a></li><li><a href="#indexing">Configuring for C/C++ Indexing</a></li><li><a href="#pcconn">PC-Connectivity Interaction</a></li><li><a href="#troubleshoot">Troubleshooting</a></li>
+<li><a href="#behavior">ESbox Virtual Machine Behavior</a></li><li><a href="#pcconn">PC-Connectivity Interaction</a></li><li><a href="#troubleshoot">Troubleshooting</a></li>
</ul>
@@ -100,22 +144,15 @@
rootstraps, and a Samba connection to share project files between the machines.<br>
</p>
-<p>In order to use project features in Eclipse, projects must be
+
+
+<p>An essential aspect of using ESbox with a VM is setting up <em><strong>shared folders</strong></em>. In order to use all the features in Eclipse, projects and the SDK rootstrap must be
visible both to the host and
-the VM. ESbox
-projects must live on a local host filesystem which is visible to the
-VM over a shared
-folder. (This choice exposes occasional problems when Unix filesystem
-semantics are not fully emulated over shares, and is a little slower
-than native filesystem builds. But we chose to optimize for ease
-of Eclipse integration and speed of IDE/editor/debugger-time activity
-over build-time activity.) <br>
+the VM. <a href="shared_folders.html">See this document</a> for an overview and setup instructions.<br>
</p>
-<p>Shared folders on the SDK environment, exposed from the VM to the host, may be used for <a href="#indexing">C/C++ indexing</a>.</p>
-
<p id="engines">
</p>
@@ -186,15 +223,39 @@
</p></li><li>
You need to select a virtual machine engine (or "Manual
configuration") and
- adjust the settings on all the pages accordingly.
+ adjust the settings on all the pages accordingly. Each engine has product-specific configuration.</li>
+ <li id="vmware">VMWare:
<p>
<img style="width: 666px; height: 564px;" src="images/vm/prefs-esbox-build-machines-vmware.png" alt="vmware">
- </p><p>
+ </p></li>
+ <ul>
+ <li id="vmware">The <em>Product type</em> field lets you select
+along multiple available VMware engines if you have more than one
+installed. This is mostly useful if you have installed VMware
+Workstation or Server, but want to use VMware Player (since they exist
+in the same directory).</li>
+ <li id="vmware">The <em>Installation directory</em> field should point to either the directory containing <em>vmrun </em>or <em>vmware </em>(in any host) or the "<em>VMware Fusion[.app]</em>"
+application or library support directory (in Mac OS X). ESbox prefers
+to use "vmrun[.exe]" for all operations. ESbox is flexible and it
+will look
+up the provided tree to locate the expected executable. If
+you only have VMware Player, point to the directory where
+"vmplayer[.exe]" exists.</li>
+ <li id="vmware">The VMX path<br>
+ </li>
+ </ul>
+
+<li id="virtualbox">VirtualBox:
+<p>
<img style="width: 666px; height: 564px;" src="images/vm/prefs-esbox-build-machines-virtualbox.png" alt="virtualbox">
- </p><p>
+ </p>
+</li>
+<li id="qemu">QEMU:
+<p>
<img style="width: 666px; height: 564px;" src="images/vm/prefs-esbox-build-machines-qemu.png" alt="qemu">
- </p></li><li>
+ </p></li>
+<li>
Any selected build machine has a unique configuration in <em>Machine Access</em> (the user name,
password, target/host addresses and ports) and <em>Shared Folders</em> (the shares providing
a mapping between the host and target filesystems) tabs. All machines except for <em>Manually
@@ -317,84 +378,40 @@
<h3 id="heading"><a name="shared_folders"></a>Shared Folders</h3>
+
<p>
On the <em>Shared Folders</em> tab, specify the shared folders that ESbox uses
-to map filesystem paths between the host and VM filesystem. <br>
+to map filesystem paths between the host and VM filesystem. <br>
</p>
-<h4>Background<br>
-</h4>
-<p>The mappings on this tab are essential for allowing ESbox to
-create and access projects, launch builds, perform debugger source lookups, autoconfigure SBRSH,
-etc. so that the host Eclipse and the target Maemo SDK can work on the same files and directories.<br>
-</p>
+<p>You specify here
+mappings for the <span style="font-weight: bold;">existing and configured </span>shared
+folders in the host and VM. You must manually configure
+file sharing yourself. <a href="shared_folders.html">See this document</a> for an overview and setup instructions.</p>
-<p>Optional mappings may be added to expose rootstraps from the virtual
-machine for the purpose of indexing C/C++ code (also see the <a href="#indexing">Setting up for C/C++ Indexing</a> below later on).<br>
+<p><span style="font-weight: bold;">NOTE</span>: ESbox only supports Samba (Windows/CIFS) shared folders currently. <br>
</p>
-<p>We require Eclipse projects to be visible to <span style="font-weight: bold;">both the
-host and target</span>, so all projects need to live on a path <i>shared from the host</i> and
-<i>mapped to the VM</i>. Such projects must be visible to Scratchbox (usually under <tt>/scratchbox</tt>).</p>
-
-
-
-
-
-<p>(Most Eclipse code assumes that all project files are visible
-on the host. We don't support the notion of a project fully hosted
-on the VM, since this has an unacceptable performance cost
-for the majority of IDE operations.)</p>
-<p>Further, in order to index C/C++ code and use hover help in C++, the SDK (usually /scratchbox) must be <span style="font-style: italic;">shared from the VM </span>and<span style="font-style: italic;"> mapped to the host.</span> <br>
+<p><span style="font-weight: bold;">NOTE #2</span>: To expose shares from the VM to the host, you should use <span style="font-weight: bold;">Bridged networking</span> in
+the VM. Otherwise you need to understand a lot more about port forwarding than I do. :)<br>
</p>
-<p>
-<a href="images/vm/shared_folders.png">See a diagram explaining how this works in an example Win32 configuration here.</a>
-</p>
-
-<p><span style="font-weight: bold;">NOTE: </span>this preference page
-does not configure shares on the host or the VM -- it only reflects the
-mappings that you want ESbox to use. You must manually configure
-file sharing yourself.</p>
-<p><span style="font-weight: bold;">NOTE #2</span>: ESbox only supports Samba (Windows/CIFS) shared folders at the moment. <br>
-</p>
-
-
-
-<p><span style="font-weight: bold;">NOTE #3</span>: To expose shares from the VM to the host, you should use <span style="font-weight: bold;">Bridged networking</span>in
-the VM for best results. (NAT networking requires port forwarding
-over the CIFS port
-445 to avoid conflicting with the host's SMB/CIFS server, but Windows
-at
-least does not easily allow you to specify an alternate CIFS port with
-programs
-like "net use".) ESbox will not attempt to mount in NAT mode, but
-free to manually mount if you know how to make this work.<a href="images/vm/shared_folders.png"></a><br>
-</p>
<h4>Configuration<br>
</h4>
<p><img alt="qemu" src="images/vm/prefs-esbox-build-machines-shared-folders.png" style="width: 682px; height: 754px;"><br>
</p>
<ul>
-<li>The default configuration recommends two shared folders that map a <tt>.../maemo/shared</tt>
-folder from the host to two locations on the target. There is
-nothing special about the host path; use whatever suits you. <br>
- </li><li>These
-target locations have been selected to point into the user's home on
-the VM to allow ESbox to create projects under the host so that
-Scratchbox 1 and Scratchbox 2 can see the projects in the same
-Scratchbox-relative directory at build time. (You may edit these if
-needed but it's up to you to ensure the necessary mappings are defined
-so all targets can see the same path, so you can switch between targets without reconverting the project.) </li>
- <li>If <em>Local share?</em> is yes, you need to configure file
+<li>The default shares are suggestions for the most common setup, so
+that projects can be built for multiple Scratchbox targets, and so
+indexing can work. See <a href="shared_folders.html#defaults">this document for details</a>.</li><li>If <em>Local share?</em> is yes, you need to configure file
sharing on your host and expose a share which can be mounted by the VM.
There should be at least This typically should be <em>yes</em>
for normal usage (since the
Eclipse workspace must be on the local machine). If the setting is no,
then in the Maemo SDK VM images, the mount is exposed in <tt>/etc/samba/smb.conf</tt>.</li>
- <li>"Add Host Share..." lets you add an entry from the shared folders exposed on the host. These must be manually configured.</li>
- <li>"Add VM Share..." lets you add an entry from the shared folders
+ <li>"<em>Add Host Share...</em>" lets you add an entry from the shared folders exposed on the host. These must be manually configured.</li>
+ <li>"<em>Add VM Share...</em>" lets you add an entry from the shared folders
exposed from the virtual machine. This requires that the VM be
launched and validated before the button is enabled. <br>
</li>
@@ -426,28 +443,13 @@
</p>
<p>To use this:</p>
<ul>
- <li>Be sure the Machine Access > Target Address and Host Address fields are valid</li>
- <li>Be sure the VM has been launched (using "Launch Machine" or a previous "Validate Machine" invocation)</li>
+ <li>Be sure the <em>Machine Access > Target Address</em> and <em>Host Address</em> fields are valid</li>
+ <li>Be sure the VM has been launched (using "<em>Launch Machine</em>" or a previous "<em>Validate Machine</em>" invocation)</li>
<li>Enable the checkbox.</li>
<li>Then, edit the entries in the table. The status will be updated as you change the fields.</li>
</ul>
-<p><img style="width: 682px; height: 758px;" alt="Successful shared folder status" src="images/vm/prefs-esbox-build-machines-shared-folders-2.png"><br>
-</p>
-<h4>More details</h4>
-
-
-
-<p>If <em>Local share?</em> is yes, you need to configure file
-sharing on your host and expose a share which can be mounted by the VM.
-This typically should be <em>yes</em>
-for normal usage (since the
-Eclipse workspace must be on the local machine). If the setting
-is no, then in the Maemo SDK VM images, the mount is exposed in <tt>/etc/samba/smb.conf</tt>.<br>
-</p>
-<p>Be sure to validate the <em>Share name</em>. In Windows this
-is the base name of the directory by default. On Mac OS X, the name is chosen by OS X (e.g. "<user>'s Public Folder").</p>
-
-
+<p><img style="width: 682px; height: 754px;" alt="Successful shared folder status" src="images/vm/prefs-esbox-build-machines-shared-folders-2.png"><br>
+</p><br>
</div>
@@ -457,14 +459,11 @@
<h3 id="heading">ESbox Virtual Machine Behavior</h3>
-<p>ESbox will connect to any running virtual machine that responds to
-the configured target address and SSH port in the Machine Access
-settings (it
-doesn't have to be the specific engine you have selected). <br>
+<p>ESbox will connect to a running virtual machine that responds to
+the configured machine engine, target address, and SSH port in the Machine Access
+settings. <br>
</p>
-<p>If no machine
-responds to the target address and port, and ESbox detects the virtual
-machine is not running, then it will prompt you to launch the
+<p>If the specified engine is not running, then ESbox will prompt you to launch the
configured machine:</p>
<p><img src="images/vm/esbox-launch-vm.png" alt="">
@@ -493,89 +492,9 @@
<p><img src="images/vm/esbox-launching-vm-expanded.png" alt=""></p>
<p>Closing this dialog will not cancel any operation. It is only
informative, to help you look for common problems and solutions while
-configuring the machine.<br>
+configuring the machine.</p><p id="indexing">
+</p><p id="pcconn">
</p>
-
-
-
-<p id="indexing">
-</p>
-
-
-<h3 id="heading">Configuring for C/C++ Indexing</h3>
-
-
-<p>
-To configure projects for C/C++ indexing, the system includes from Scratchbox need to
-be visible in the local filesystem. Since the Maemo SDK is inside a virtual machine,
-you can expose the directories using Samba shares <em>from the VM</em>.
-You need to add entries for those shares, e.g., using "Add VM Share"; they aren't
-set up by default.
-</p>
-
-
-<h4>Shared folder mapping</h4>
-<p>
-Set up two shared folder entries, with <em>Local Share?</em> set to <em>No</em>,
-and <em>Mount automatically?</em> set to <em>No</em>:
-</p>
-
-
-<ul>
-<li>One from <tt>/scratchbox</tt> (share name: <tt>scratchbox</tt>) (for Scratchbox 1)
-</li><li>One from <tt>/home/maemo</tt> (share name: <tt>maemo</tt>) (or whatever your user name is under the VM) (for Scratchbox 2)
-</li>
-</ul>
-
-<p>
-The Maemo SDK virtual images expose these shares already. In a custom image, add
-entries like this to <tt>/etc/samba/smb.conf</tt>:
-</p>
-
-<tt class="cmdbox"><br>[scratchbox]<br>writable = yes<br>public = yes<br>browseable = yes<br>path = /scratchbox<br><br><br>
-[maemo]<br>writable = yes<br>public = yes<br>browseable = yes<br>path = /home/maemo</tt>
-<p>and then restart Samba with, e.g., <tt>sudo /etc/init.d/samba restart</tt>. or <tt>sudo killall -HUP smbd</tt> .<br>
-
- </p>
-
-<h4>Mounting shares<br>
-</h4>
-<p>If you do not select to automatically mount the shares (<strong>Auto mount?</strong> = yes), you can manually mount these shares on your host. You must be using Bridged networking for this to succeed.
-</p>
-
-
-<p>
-In Windows, you can mount shares like this:
-<br>
-<tt>net use s: \\<em>target.address</em>\scratchbox</tt>
-</p>
-
-<p>In Mac OS X, you can mount shares with <strong>Finder > Go > Connect to Server...</strong> or:</p>
-<p><tt>mount_smbfs //maemo:maemo@<em>target.address</em>/scratchbox /your/path/to/scratchbox</tt>
-</p>
-<p>
-When you create a new project, these share mappings should be automatically integrated
-into the project preferences (<em>C/C++ Indexer</em>) to allow
-indexing. The indexing operation and source lookup will be slower, though, due to the access over a network.</p>
-<h4>Updating project settings<br>
-</h4>
-<p>Currently, ESbox only fully establishes the C/C++ indexer settings (<em>Project > Properties > C/C++ Include Paths and Symbols</em>) when creating new projects from templates, since at this time it knows what software will be used.<br>
- </p>
-<p>If you make any changes to the shared folders as described above,
-they will not be reflected in your projects unless you re-convert them (<em>File > New > Convert to ESbox C/C++ Projects</em>).
-Also, the conversion will only add basic mappings for /usr/include and
-libstdc for C++ projects. You will need to add other paths if
-needed.<br>
-</p>
-<br>
-
-
-
-
-
-
-<p id="pcconn">
-</p>
<h3 id="heading">PC-Connectivity Interaction</h3>
Here are some tips and tricks for using <a href="http://pc-connectivity.garage.maemo.org">PC Connectivity</a>
@@ -594,7 +513,7 @@
Eclipse manages most of the SSH traffic with the device, so the host needs to be able to see the device at its static address.
The host cannot see network traffic inside the VM.
</p>
- <p>Conversely, from the device point of view, it can only see the machine it is connected to. For
+ <p>Conversely, from the device point of view, the device can only see the machine it is connected to. For
cases where the device needs to open a socket from the host, the device must be able to see the
host at the host address (192.168.*.14). This includes Python debugging and SBRSH.
</p>
@@ -603,8 +522,11 @@
device at the static address. This is the best of both worlds.
</p>
<div id="warning">
- <i>When using SBRSH,</i> you must ensure the device is visible on the network inside the virtual machine <span style="font-weight: bold;">and </span>the host machine, since
- SBRSH runs on under Scratchbox, and the device needs to mount filesystems from the VM and host.
+ <i>When using SBRSH,</i>
+you most likely need to use WLAN instead of a static IP
+configuration. The device must be visible on the network inside
+the virtual machine <span style="font-weight: bold;">and </span>the host machine, since
+ SBRSH runs on under Scratchbox, and the device needs to mount filesystems from the VM and host.
</div>
<p>
</p>
@@ -619,7 +541,7 @@
device are all peers on the LAN. Thus, the device will be visible to the host and the VM, and the
device can see the host and the VM.
</p>
- <p>Unfortunately, of course, WLAN is very slow and prone to packet loss. It is nearly unusable for
+ <p>Unfortunately, of course, WLAN is very slow and prone to packet loss. It can be more difficult to use when
debugging, for example.
</p>
</li>
@@ -655,78 +577,19 @@
detect Scratchbox and targets. Go to <em>Window > Preferences > Maemo > Installed Targets</em> and hit <em>Refresh</em>.</li>
</ul>
</li>
-<li><span style="font-weight: bold;">Shared folder configuration problems</span>
- <ul><li>If you cannot mount to shared folders published from Windows, and
- you get the error <tt>"mount error 12 = cannot allocate memory"</tt>,
- then this is a host issue. You can fix this in your Windows registry.
- <p>Edit the key
- </p><pre> <big>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\IRPStackSize</big><br> </pre>
- <p>
- Define it as a DWORD value (if missing). Set it to a value in
- the decimal range 15 to 18. (The documentation is unclear what this
- value indicates, so it may require some experimentation.)
- </p>
- <p>The new setting will only be read when the sharing service
- is restarted. You may do this via
- <strong>Control Panel > Administrative Tools > Services >
- Server</strong> and restart, or if you've got more time to kill,
- reboot your system.
- </p>
- <p>
- Also see <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;177078">the Microsoft Knowledge Base article</a>
- for more information.
-
- </p></li><li>Be careful about the time synchronization configuration in the VM or the timezone
- used in the VM image.
- <p>
- If you see warnings like:
- </p>
- <tt class="cmdbox">make: Warning: File `Makefile' has modification time 1.1e+07 s in the future<br>rm -f *.o helloworld<br>make: warning: Clock skew detected. Your build may be incomplete. </tt>
- <p>
- then investigate the Linux configuration inside the virtual machine.
- </p>
- <p>When using VirtualBox, please install Guest Additions to fix the time synchronization. In VMware, install VMware Tools.<br>
-</p></li><li>
- You may need to be connected to a LAN for the PC <-> VM communication to
- work properly. Otherwise shared folders will not be mountable and you may get mysterious
- timeouts instead.
- </li><li>
- If you use Windows and your VM uses NAT, it's unlikely you'll be able to mount folders from the VM
- without significant advanced networking setup effort. (You would need to use port forwarding to see ports 139 and 445 from
- the VM without conflicting with the host's own sharing protocol -- but Windows doesn't provide
- an obvious way to use SMB with different ports. From what I know, you'd need to set up some sort
- of virtual host over SSH to forward SMB traffic. Any tips are welcome :) )
- </li></ul>
- </li><li><span style="font-weight: bold;">Autotools projects fail to build Makefile?</span>
-<ul>
-<li><tt>make: *** No rule to make target `all'. Stop.</tt><br>
-</li>
- <li>In any modern version of Linux, there is a known file truncation issue that occurs
-when using <tt>autoconf</tt> 2.62 or older over Samba shares.</li>
- <li>Due to trying to rename files before closing them, the
- <tt>configure</tt> files will be truncated, preventing Makefiles from
-being generated.
-Current Maemo SDKs ship these old versions of autoconf.
-</li>
-<li>ESbox can repair the <tt>autoconf</tt>
-installation in Scratchbox for you if you install it using the Scratchbox 1 installer <strong><span style="font-weight: normal;"></span></strong>wizard.
-</li>
-<li>Or, if you have an old image or have manually installed Scratchbox 1, you can
-right-click the Scratchbox node (for example, in
-<em>Window > Preferences > Maemo > Installed Targets</em>)
-and select <em>Patch autoconf...</em>. A wizard will guide you through
-the process of repairing the installation.
-</li>
+ <li><span style="font-weight: bold;">Shared folder issues</span>
+ <ul><li>See <a href="shared_folders.html#troubleshooting">this document</a>.</li>
+ </ul></li>
-</ul>
-
- </li>
<li><span style="font-weight: bold;">Device access issues<br>
- </span><ul><li>
- Watch out for firewall software thwarting you. It may block all access to your device. Allow traffic to
+ </span><ul><li>The device should be connected to the host (not the VM) for most cases, except for SBRSH (which must use WLAN in most cases).<br>
+
+ </li>
+ <li>Watch out for firewall software thwarting you. It may block all access to your device. Allow traffic to
the 192.168.* IP range.
- </li><li>
+ </li>
+<li>
If your LAN uses 192.168.{2,3,4}.* for its own DHCP server, and you want to use the static USB, Bluetooth,
or WLAN ad-hoc connections, you need to have separate subnets. Reconfigure these static addresses
in the PC-Connectivity Manager and in your host configuration.
@@ -741,6 +604,7 @@
USB or bluetooth or the ad-hoc WLAN connection.<br>
</li></ul></li>
+
<li style="font-weight: bold;">Virtual machines launching when not using ESbox?
<ul style="font-weight: normal;">
<li>Eclipse sometimes triggers builds for all projects in the
@@ -773,6 +637,9 @@
</div>
+
+
+
<div id="footer">
<div class="part">
<table style="" cellspacing="5" width="100%">
@@ -792,4 +659,7 @@
<p class="right">© Copyright 2007 - 2009, INdT, 2008 - 2009 Nokia</p>
</div>
+
+
+
</body></html>
\ No newline at end of file
More information about the Esbox-commits
mailing list