diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2014-03-26 19:21:20 +0000 |
---|---|---|
committer | <> | 2014-05-08 15:03:54 +0000 |
commit | fb123f93f9f5ce42c8e5785d2f8e0edaf951740e (patch) | |
tree | c2103d76aec5f1f10892cd1d3a38e24f665ae5db /doc/manual/en_US | |
parent | 58ed4748338f9466599adfc8a9171280ed99e23f (diff) | |
download | VirtualBox-master.tar.gz |
Imported from /home/lorry/working-area/delta_VirtualBox/VirtualBox-4.3.10.tar.bz2.HEADVirtualBox-4.3.10master
Diffstat (limited to 'doc/manual/en_US')
-rw-r--r-- | doc/manual/en_US/SDKRef.xml | 776 | ||||
-rw-r--r-- | doc/manual/en_US/images/vm-groups.png | bin | 0 -> 593012 bytes | |||
-rw-r--r-- | doc/manual/en_US/user_AdvancedTopics.xml | 1402 | ||||
-rw-r--r-- | doc/manual/en_US/user_BasicConcepts.xml | 103 | ||||
-rw-r--r-- | doc/manual/en_US/user_Frontends.xml | 103 | ||||
-rw-r--r-- | doc/manual/en_US/user_Glossary.xml | 2 | ||||
-rw-r--r-- | doc/manual/en_US/user_GuestAdditions.xml | 184 | ||||
-rw-r--r-- | doc/manual/en_US/user_Installation.xml | 39 | ||||
-rw-r--r-- | doc/manual/en_US/user_Introduction.xml | 200 | ||||
-rw-r--r-- | doc/manual/en_US/user_KnownIssues.xml | 15 | ||||
-rw-r--r-- | doc/manual/en_US/user_Networking.xml | 111 | ||||
-rw-r--r-- | doc/manual/en_US/user_PrivacyPolicy.xml | 29 | ||||
-rw-r--r-- | doc/manual/en_US/user_Security.xml | 2 | ||||
-rw-r--r-- | doc/manual/en_US/user_Storage.xml | 4 | ||||
-rw-r--r-- | doc/manual/en_US/user_Technical.xml | 19 | ||||
-rw-r--r-- | doc/manual/en_US/user_ThirdParty.xml | 712 | ||||
-rw-r--r-- | doc/manual/en_US/user_Troubleshooting.xml | 19 | ||||
-rw-r--r-- | doc/manual/en_US/user_VBoxManage.xml | 1047 |
18 files changed, 4016 insertions, 751 deletions
diff --git a/doc/manual/en_US/SDKRef.xml b/doc/manual/en_US/SDKRef.xml index 40e1559f..e8c63cc3 100644 --- a/doc/manual/en_US/SDKRef.xml +++ b/doc/manual/en_US/SDKRef.xml @@ -308,7 +308,7 @@ <computeroutput>user1</computeroutput>, it will see and manipulate the virtual machines and other data represented by the VirtualBox data of that user (for example, on a Linux machine, under - <computeroutput>/home/user1/.VirtualBox</computeroutput>; see the + <computeroutput>/home/user1/.config/VirtualBox</computeroutput>; see the VirtualBox User Manual for details on where this data is stored).</para> <sect2 id="vboxwebsrv-ref"> @@ -1542,7 +1542,7 @@ for m in mgr.getArray(vbox, 'machines'): print "Machine '%s' logs in '%s'" %(m.name, m.logFolder) </screen> - <para>Code above demonstartes cross-platform access to array properties + <para>Code above demonstrates cross-platform access to array properties (certain limitations prevent one from using <computeroutput>vbox.machines</computeroutput> to access a list of available virtual machines in case of XPCOM), and a mechanism of @@ -1718,157 +1718,210 @@ print "Machine '%s' logs in '%s'" %(m.name, m.logFolder) </sect2> <sect2 id="cbinding"> - <title>C binding to XPCOM API</title> + <title>C binding to VirtualBox API</title> - <note> - <para>This section currently applies to Linux hosts only.</para> - </note> + <para>The VirtualBox API originally is designed as object oriented, + using XPCOM or COM as the middleware, which translates natively to C++. + This means that in order to use it from C there needs to be some + helper code to bridge the language differences and reduce the + differences between platforms.</para> - <para>Starting with version 2.2, VirtualBox offers a C binding for the - XPCOM API.</para> + <sect3 id="capi_glue"> + <title>Cross-platform C binding to VirtualBox API</title> - <para>The C binding provides a layer enabling object creation, method - invocation and attribute access from C.</para> + <para>Starting with version 4.3, VirtualBox offers a C binding + which allows using the same C client sources for all platforms, + covering Windows, Linux, Mac OS X and Solaris. It is the + preferred way to write API clients, even though the old style + is still available.</para> + + </sect3> <sect3 id="c-gettingstarted"> <title>Getting started</title> - <para>The following sections describe how to use the C binding in a - C program.</para> - - <para>For Linux, a sample program is provided which demonstrates use - of the C binding to initialize XPCOM, get handles for VirtualBox and - Session objects, make calls to list and start virtual machines, and - uninitialize resources when done. The program uses the VBoxGlue - library to open the C binding layer during runtime.</para> - - <para>The sample program - <computeroutput>tstXPCOMCGlue</computeroutput> is located in the bin - directory and can be run without arguments. It lists registered - machines on the host along with some additional information and ask - for a machine to start. The source for this program is available in - <computeroutput>sdk/bindings/xpcom/cbinding/samples/</computeroutput> - directory. The source for the VBoxGlue library is available in the - <computeroutput>sdk/bindings/xpcom/cbinding/</computeroutput> - directory.</para> + <para>The following sections describe how to use the VirtualBox API + in a C program. The necessary files are included in the SDK, in the + directories <computeroutput>sdk/bindings/c/include</computeroutput> + and <computeroutput>sdk/bindings/c/glue</computeroutput>.</para> + + <para>As part of the SDK, a sample program + <computeroutput>tstCAPIGlue.c</computeroutput> is provided in the + directory <computeroutput>sdk/bindings/c/samples</computeroutput> + which demonstrates + using the C binding to initialize the API, get handles for + VirtualBox and Session objects, make calls to list and start virtual + machines, monitor events, and uninitialize resources when done. The + sample program is trying to illustrate all relevant concepts, so it + is a great source of detail information. Among many other generally + useful code sequences it contains a function which shows how to + retrieve error details in C code if they are available from the API + call.</para> + + <para>The sample program <computeroutput>tstCAPIGlue</computeroutput> + can be built using the provided <computeroutput>Makefile</computeroutput> + and can be run without arguments.</para> + + <para>It uses the VBoxCAPIGlue library (source code is in directory + <computeroutput>sdk/bindings/c/glue</computeroutput>, to be used in + your API client code) to open the C binding layer during runtime, + which is preferred to other means as it isolates the code which + locates the necessary dynamic library, using a known working way + which works on all platforms. If you encounter problems with this + glue code in <computeroutput>VBoxCAPIGlue.c</computeroutput>, let the + VirtualBox developers know, rather than inventing incompatible + solutions.</para> + + <para>The following sections document the important concepts needed + to correctly use the C binding, as it is vital for developing API + client code which manages memory correctly, updates the reference + counters correctly, avoiding crashes and memory leaks. Often API + clients need to handle events, so the C API specifics are also + described below.</para> </sect3> <sect3 id="c-initialization"> - <title>XPCOM initialization</title> - - <para>Just like in C++, XPCOM needs to be initialized before it can - be used. The <computeroutput>VBoxCAPI_v2_5.h</computeroutput> header - provides the interface to the C binding. Here's how to initialize - XPCOM:</para> - - <screen>#include "VBoxCAPI_v2_5.h" + <title>VirtualBox C API initialization</title> + + <para>Just like in C++, the API and the underlying middleware needs + to be initialized before it can be used. The + <computeroutput>VBoxCAPI_v4_3.h</computeroutput> header provides the + interface to the C binding, but you can alternatively and more + conveniently also include <computeroutput>VBoxCAPIGlue.h</computeroutput>, + as this avoids the VirtualBox version dependent header file name and + makes sure the global variable <code>g_pVBoxFuncs</code> contains a + pointer to the structure which contains the helper function pointers. + Here's how to initialize the C API:<screen>#include "VBoxCAPIGlue.h" ... -PCVBOXXPCOM g_pVBoxFuncs = NULL; -IVirtualBox *vbox = NULL; -ISession *session = NULL; +IVirtualBoxClient *vboxclient = NULL; +IVirtualBox *vbox = NULL; +ISession *session = NULL; +HRESULT rc; +ULONG revision; /* - * VBoxGetXPCOMCFunctions() is the only function exported by - * VBoxXPCOMC.so and the only one needed to make virtualbox - * work with C. This functions gives you the pointer to the - * function table (g_pVBoxFuncs). + * VBoxCGlueInit() loads the necessary dynamic library, handles errors + * (producing an error message hinting what went wrong) and gives you + * the pointer to the function table (g_pVBoxFuncs). * * Once you get the function table, then how and which functions * to use is explained below. * - * g_pVBoxFuncs->pfnComInitialize does all the necessary startup - * action and provides us with pointers to vbox and session handles. - * It should be matched by a call to g_pVBoxFuncs->pfnComUninitialize() + * g_pVBoxFuncs->pfnClientInitialize does all the necessary startup + * action and provides us with pointers to an IVirtualBoxClient instance. + * It should be matched by a call to g_pVBoxFuncs->pfnClientUninitialize() * when done. */ -g_pVBoxFuncs = VBoxGetXPCOMCFunctions(VBOX_XPCOMC_VERSION); -g_pVBoxFuncs->pfnComInitialize(&vbox, &session);</screen> - - <para>If either <computeroutput>vbox</computeroutput> or - <computeroutput>session</computeroutput> is still - <computeroutput>NULL</computeroutput>, initialization failed and the - XPCOM API cannot be used.</para> +if (VBoxCGlueInit()) +{ + fprintf(stderr, "s: FATAL: VBoxCGlueInit failed: %s\n", + argv[0], g_szVBoxErrMsg); + return EXIT_FAILURE; +} + +g_pVBoxFuncs->pfnClientInitialize(NULL, &vboxclient); +if (!vboxclient) +{ + fprintf(stderr, "%s: FATAL: could not get VirtualBoxClient reference\n", + argv[0]); + return EXIT_FAILURE; +}</screen></para> + + <para>If <computeroutput>vboxclient</computeroutput> is still + <computeroutput>NULL</computeroutput> this means the initializationi + failed and the VirtualBox C API cannot be used.</para> + + <para>It is possible to write C applications using multiple threads + which all use the VirtualBox API, as long as you're initializing + the C API in each thread which your application creates. This is done + with <code>g_pVBoxFuncs->pfnClientThreadInitialize()</code> and + likewise before the thread is terminated the API must be + uninitialized with + <code>g_pVBoxFuncs->pfnClientThreadUninitialize()</code>. You don't + have to use these functions in worker threads created by COM/XPCOM + (which you might observe if your code uses active event handling), + everything is initialized correctly already. On Windows the C + bindings create a marshaller which supports a wide range of COM + threading models, from STA to MTA, so you don't have to worry about + these details unless you plan to use active event handlers. See + the sample code how to get this to work reliably (in other words + think twice if passive event handling isn't the better solution after + you looked at the sample code).</para> </sect3> <sect3 id="c-invocation"> - <title>XPCOM method invocation</title> + <title>C API attribute and method invocation</title> <para>Method invocation is straightforward. It looks pretty much - like the C++ way, augmented with an extra indirection due to - accessing the vtable and passing a pointer to the object as the - first argument to serve as the <computeroutput>this</computeroutput> - pointer.</para> + like the C++ way, by using a macro which internally accesses the + vtable, and additionally needs to be passed a pointer to the objecti + as the first argument to serve as the + <computeroutput>this</computeroutput> pointer.</para> <para>Using the C binding, all method invocations return a numeric - result code.</para> + result code of type <code>HRESULT</code> (with a few exceptions + which normally are not relevant).</para> <para>If an interface is specified as returning an object, a pointer to a pointer to the appropriate object must be passed as the last argument. The method will then store an object pointer in that location.</para> - <para>In other words, to call an object's method what you need - is</para> + <para>Likewise, attributes (properties) can be queried or set using + method invocations, using specially named methods. For each + attribute there exists a getter method, the name of which is composed + of <computeroutput>get_</computeroutput> followed by the capitalized + attribute name. Unless the attribute is read-only, an analogous + <computeroutput>set_</computeroutput> method exists. Let's apply + these rules to get the <computeroutput>IVirtualBox</computeroutput> + reference, an <computeroutput>ISession</computeroutput> instance + reference and read the <xref linkend="IVirtualBox__revision" + xreflabel="IVirtualBox::revision" /> attribute:<screen>rc = IVirtualBoxClient_get_VirtualBox(vboxclient, &vbox); +if (FAILED(rc) || !vbox) +{ + PrintErrorInfo(argv[0], "FATAL: could not get VirtualBox reference", rc); + return EXIT_FAILURE; +} +rc = IVirtualBoxClient_get_Session(vboxclient, &session); +if (FAILED(rc) || !session) +{ + PrintErrorInfo(argv[0], "FATAL: could not get Session reference", rc); + return EXIT_FAILURE; +} - <screen>IObject *object; -nsresult rc; -... -/* - * Calling void IObject::method(arg, ...) - */ -rc = object->vtbl->Method(object, arg, ...); +rc = IVirtualBox_get_Revision(vbox, &revision); +if (SUCCEEDED(rc)) +{ + printf("Revision: %u\n", revision); +}</screen></para> + <para>The convenience macros for calling a method are named by + prepending the method name with the interface name (using + <code>_</code>as the separator).</para> + + <para>So far only attribute getters were illustrated, but generic + method calls are straightforward, too:<screen>IMachine *machine = NULL; +BSTR vmname = ...; ... -IFoo *foo; /* - * Calling IFoo IObject::method(arg, ...) + * Calling IMachine::findMachine(...) */ -rc = object->vtbl->Method(object, args, ..., &foo);</screen> +rc = IVirtualBox_FindMachine(vbox, vmname, &machine);</screen></para> - <para>As a real-world example of a method invocation, let's call - <xref linkend="IMachine__launchVMProcess" + <para>As a more complicated example of a method invocation, let's + call <xref linkend="IMachine__launchVMProcess" xreflabel="IMachine::launchVMProcess" /> which returns an IProgress object. Note again that the method name is - capitalized.</para> - - <screen>IProgress *progress; + capitalized:<screen>IProgress *progress; ... -rc = vbox->vtbl->LaunchVMProcess( +rc = IMachine_LaunchVMProcess( machine, /* this */ session, /* arg 1 */ sessionType, /* arg 2 */ env, /* arg 3 */ &progress /* Out */ -); -</screen> - </sect3> - - <sect3 id="c-attributes"> - <title>XPCOM attribute access</title> - - <para>A construct similar to calling non-void methods is used to - access object attributes. For each attribute there exists a getter - method, the name of which is composed of - <computeroutput>Get</computeroutput> followed by the capitalized - attribute name. Unless the attribute is read-only, an analogous - <computeroutput>Set</computeroutput> method exists. Let's apply - these rules to read the <xref linkend="IVirtualBox__revision" - xreflabel="IVirtualBox::revision" /> attribute.</para> - - <para>Using the <computeroutput>IVirtualBox</computeroutput> handle - <computeroutput>vbox</computeroutput> obtained above, calling its - <computeroutput>GetRevision</computeroutput> method looks like - this:</para> - - <screen>PRUint32 rev; - -rc = vbox->vtbl->GetRevision(vbox, &rev); -if (NS_SUCCEEDED(rc)) -{ - printf("Revision: %u\n", (unsigned)rev); -} -</screen> +);</screen></para> <para>All objects with their methods and attributes are documented in <xref linkend="sdkref_classes" />.</para> @@ -1880,65 +1933,173 @@ if (NS_SUCCEEDED(rc)) <para>When dealing with strings you have to be aware of a string's encoding and ownership.</para> - <para>Internally, XPCOM uses UTF-16 encoded strings. A set of + <para>Internally, the API uses UTF-16 encoded strings. A set of conversion functions is provided to convert other encodings to and from UTF-16. The type of a UTF-16 character is - <computeroutput>PRUnichar</computeroutput>. Strings of UTF-16 - characters are arrays of that type. Most string handling functions - take pointers to that type. Prototypes for the following conversion - functions are declared in - <computeroutput>VBoxCAPI_v2_5.h</computeroutput>.</para> - - <sect4> - <title>Conversion of UTF-16 to and from UTF-8</title> - - <screen>int (*pfnUtf16ToUtf8)(const PRUnichar *pwszString, char **ppszString); -int (*pfnUtf8ToUtf16)(const char *pszString, PRUnichar **ppwszString); -</screen> - </sect4> + <computeroutput>BSTR</computeroutput> (or its constant counterpart + <computeroutput>CBSTR</computeroutput>), which is an array type, + represented by a pointer to the start of the zero-terminated string. + There are functions for converting between UTF-8 and UTF-16 strings + available through <code>g_pVBoxFuncs</code>:<screen>int (*pfnUtf16ToUtf8)(CBSTR pwszString, char **ppszString); +int (*pfnUtf8ToUtf16)(const char *pszString, BSTR *ppwszString);</screen></para> + + <para>The ownership of a string determines who is responsible for + releasing resources associated with the string. Whenever the API + creates a string (essentially for output parameters), ownership is + transferred to the caller. To avoid resource leaks, the caller + should release resources once the string is no longer needed. + There are plenty of examples in the sample code.</para> + </sect3> + + <sect3 id="c-safearray"> + <title>Array handling</title> + + <para>Arrays are handled somewhat similarly to strings, with the + additional information of the number of elements in the array. The + exact details of string passing depends on the platform middleware + (COM/XPCOM), and therefore the C binding offers helper functions to + gloss over these differences.</para> + + <para>Passing arrays as input parameters to API methods is usually + done by the following sequence, calling a hypothetical + <code>IArrayDemo_PassArray</code> API method:<screen>static const ULONG aElements[] = { 1, 2, 3, 4 }; +ULONG cElements = sizeof(aElements) / sizeof(aElements[0]); +SAFEARRAY *psa = NULL; +psa = g_pVBoxFuncs->pfnSafeArrayCreateVector(VT_I4, 0, cElements); +g_pVBoxFuncs->pfnSafeArrayCopyInParamHelper(psa, aElements, sizeof(aElements)); +IArrayDemo_PassArray(pThis, ComSafeArrayAsInParam(psa)); +g_pVBoxFuncs->pfnSafeArrayDestroy(psa);</screen></para> + + <para>Likewise, getting arrays results from output parameters is done + using helper functions which manage memory allocations as part of + their other functionality:<screen>SAFEARRAY *psa = g_pVBoxFuncs->pfnSafeArrayOutParamAlloc(); +ULONG *pData; +ULONG cElements; +IArrayDemo_ReturnArray(pThis, ComSafeArrayAsOutParam(psa)); +g_pVBoxFuncs->pfnSafeArrayCopyOutParamHelper((void **)&pData, &cElements, VT_I4, psa); +g_pVBoxFuncs->pfnSafeArrayDestroy(psa);</screen></para> + + <para>This covers the necessary functionality for all array element + types except interface references. These need special helpers to + manage the reference counting correctly. The following code snippet + gets the list of VMs, and passes the first IMachine reference to + another API function (assuming that there is at least one element + in the array, to simplify the example):<screen>SAFEARRAY psa = g_pVBoxFuncs->pfnSafeArrayOutParamAlloc(); +IMachine **machines = NULL; +ULONG machineCnt = 0; +ULONG i; +IVirtualBox_get_Machines(virtualBox, ComSafeArrayAsOutIfaceParam(machinesSA, IMachine *)); +g_pVBoxFuncs->pfnSafeArrayCopyOutIfaceParamHelper((IUnknown ***)&machines, &machineCnt, machinesSA); +g_pVBoxFuncs->pfnSafeArrayDestroy(machinesSA); +/* Now "machines" contains the IMachine references, and machineCnt the + * number of elements in the array. */ +... +SAFEARRAY *psa = g_pVBoxFuncs->pfnSafeArrayCreateVector(VT_IUNKNOWN, 0, 1); +g_pVBoxFuncs->pfnSafeArrayCopyInParamHelper(psa, (void *)&machines[0], sizeof(machines[0])); +IVirtualBox_GetMachineStates(ComSafeArrayAsInParam(psa), ...); +... +g_pVBoxFuncs->pfnSafeArrayDestroy(psa); +for (i = 0; i < machineCnt; ++i) +{ + IMachine *machine = machines[i]; + IMachine_Release(machine); +} +free(machines);</screen></para> - <sect4> - <title>Ownership</title> + <para>Handling output parameters needs more special effort than + input parameters, thus only for the former there are special helpers, + and the latter is handled through the generic array support.</para> + </sect3> - <para>The ownership of a string determines who is responsible for - releasing resources associated with the string. Whenever XPCOM - creates a string, ownership is transferred to the caller. To avoid - resource leaks, the caller should release resources once the - string is no longer needed.</para> - </sect4> + <sect3 id="c-eventhandling"> + <title>Event handling</title> + + <para>The VirtualBox API offers two types of event handling, active + and passive, and consequently there is support for both with the + C API binding. Active event handling (based on asynchronous + callback invocation for event delivery) is more difficult, as it + requires the construction of valid C++ objects in C, which is + inherently platform and compiler dependent. Passive event handling + is much simpler, it relies on an event loop, fetching events and + triggering the necessary handlers explicitly in the API client code. + Both approaches depend on an event loop to make sure that events + get delivered in a timely manner, with differences what exactly needs + to be done.</para> + + <para>The C API sample contains code for both event handling styles, + and one has to modify the appropriate <code>#define</code> to select + which style is actually used by the compiled program. It allows a + good comparison between the two variants, and the code sequences are + probably worth reusing without much change in other API clients + with only minor adaptions.</para> + + <para>Active event handling needs to ensure that the following helper + function is called frequently enough in the primary thread: + <screen>g_pVBoxFuncs->pfnProcessEventQueue(cTimeoutMS);</screen></para> + + <para>The actual event handler implementation is quite tedious, as + it has to implement a complete API interface. Especially on Windows + it is a lot of work to implement the complicated <code>IDispatch</code> + interface, requiring to load COM type information and using it + in the <code>IDispatch</code> method implementation. Overall this is + quite tedious compared to passive event handling.</para> + + <para>Passive event handling uses a similar event loop structure, + which requires calling the following function in a loop, and + processing the returned event appropriately: + <screen>rc = IEventSource_GetEvent(pEventSource, pListener, cTimeoutMS, &pEvent);</screen></para> + + <para>After processing the event it needs to be marked as processed + with the following method call: + <screen>rc = IEventSource_EventProcessed(pEventSource, pListener, pEvent);</screen></para> + + <para>This is vital for vetoable events, as they would be stuck + otherwise, waiting whether the veto comes or not. It does not do any + harm for other event types, and in the end is cheaper than checking + if the event at hand is vetoable or not.</para> + + <para>The general event handling concepts are described in the API + specification (see <xref linkend="events" />), including how to + aggregate multiple event sources for processing in one event loop. + As mentioned, the sample illustrates the practical aspects of how to + use both types of event handling, active and passive, from a C + application. Additional hints are in the comments documenting + the helper methods in <computeroutput>VBoxCAPI_v4_3.h</computeroutput>. + The code complexity of active event handling (and its inherenly + platform/compiler specific aspects) should be motivation to use + passive event handling whereever possible.</para> </sect3> <sect3 id="c-uninitialization"> - <title>XPCOM uninitialization</title> + <title>C API uninitialization</title> <para>Uninitialization is performed by - <computeroutput>g_pVBoxFuncs->pfnComUninitialize().</computeroutput> + <computeroutput>g_pVBoxFuncs->pfnClientUninitialize().</computeroutput> If your program can exit from more than one place, it is a good idea to install this function as an exit handler with Standard C's <computeroutput>atexit()</computeroutput> just after calling - <computeroutput>g_pVBoxFuncs->pfnComInitialize()</computeroutput> + <computeroutput>g_pVBoxFuncs->pfnClientInitialize()</computeroutput> , e.g. <screen>#include <stdlib.h> #include <stdio.h> ... /* - * Make sure g_pVBoxFuncs->pfnComUninitialize() is called at exit, no + * Make sure g_pVBoxFuncs->pfnClientUninitialize() is called at exit, no * matter if we return from the initial call to main or call exit() * somewhere else. Note that atexit registered functions are not * called upon abnormal termination, i.e. when calling abort() or - * signal(). Separate provisions must be taken for these cases. + * signal(). */ -if (atexit(g_pVBoxFuncs->pfnComUninitialize()) != 0) { - fprintf(stderr, "failed to register g_pVBoxFuncs->pfnComUninitialize()\n"); +if (atexit(g_pVBoxFuncs->pfnClientUninitialize()) != 0) { + fprintf(stderr, "failed to register g_pVBoxFuncs->pfnClientUninitialize()\n"); exit(EXIT_FAILURE); -} -</screen></para> +}</screen></para> <para>Another idea would be to write your own <computeroutput>void myexit(int status)</computeroutput> function, calling - <computeroutput>g_pVBoxFuncs->pfnComUninitialize()</computeroutput> + <computeroutput>g_pVBoxFuncs->pfnClientUninitialize()</computeroutput> followed by the real <computeroutput>exit()</computeroutput>, and use it instead of <computeroutput>exit()</computeroutput> throughout your program and at the end of @@ -1948,15 +2109,14 @@ if (atexit(g_pVBoxFuncs->pfnComUninitialize()) != 0) { user types CTRL-C sending SIGINT) you might want to install a signal handler setting a flag noting that a signal was sent and then calling - <computeroutput>g_pVBoxFuncs->pfnComUninitialize()</computeroutput> - later on (usually <emphasis>not</emphasis> from the handler itself - .)</para> + <computeroutput>g_pVBoxFuncs->pfnClientUninitialize()</computeroutput> + later on, <emphasis>not</emphasis> from the handler itself.</para> <para>That said, if a client program forgets to call - <computeroutput>g_pVBoxFuncs->pfnComUninitialize()</computeroutput> + <computeroutput>g_pVBoxFuncs->pfnClientUninitialize()</computeroutput> before it terminates, there is a mechanism in place which will - eventually release references held by the client. You should not - rely on this, however.</para> + eventually release references held by the client. On Windows it can + take quite a while, in the order of 6-7 minutes.</para> </sect3> <sect3 id="c-linking"> @@ -1964,27 +2124,101 @@ if (atexit(g_pVBoxFuncs->pfnComUninitialize()) != 0) { <para>A program using the C binding has to open the library during runtime using the help of glue code provided and as shown in the - example <computeroutput>tstXPCOMCGlue.c</computeroutput>. - Compilation and linking can be achieved, e.g., with a makefile - fragment similar to</para> - - <screen># Where is the XPCOM include directory? -INCS_XPCOM = -I../../include -# Where is the glue code directory? -GLUE_DIR = .. -GLUE_INC = -I.. - -#Compile Glue Library -VBoxXPCOMCGlue.o: $(GLUE_DIR)/VBoxXPCOMCGlue.c - $(CC) $(CFLAGS) $(INCS_XPCOM) $(GLUE_INC) -o $@ -c $< - -# Compile. -program.o: program.c VBoxCAPI_v2_5.h - $(CC) $(CFLAGS) $(INCS_XPCOM) $(GLUE_INC) -o $@ -c $< - -# Link. -program: program.o VBoxXPCOMCGlue.o - $(CC) -o $@ $^ -ldl</screen> + example <computeroutput>tstCAPIGlue.c</computeroutput>. + Compilation and linking can be achieved with a makefile fragment + similar to:<screen># Where is the SDK directory? +PATH_SDK = ../../.. +CAPI_INC = -I$(PATH_SDK)/bindings/c/include +ifeq ($(BUILD_PLATFORM),win) +PLATFORM_INC = -I$(PATH_SDK)/bindings/mscom/include +PLATFORM_LIB = $(PATH_SDK)/bindings/mscom/lib +else +PLATFORM_INC = -I$(PATH_SDK)/bindings/xpcom/include +PLATFORM_LIB = $(PATH_SDK)/bindings/xpcom/lib +endif +GLUE_DIR = $(PATH_SDK)/bindings/c/glue +GLUE_INC = -I$(GLUE_DIR) + +# Compile Glue Library +VBoxCAPIGlue.o: $(GLUE_DIR)/VBoxCAPIGlue.c + $(CC) $(CFLAGS) $(CAPI_INC) $(PLATFORM_INC) $(GLUE_INC) -o $@ -c $< + +# Compile interface ID list +VirtualBox_i.o: $(PLATFORM_LIB)/VirtualBox_i.c + $(CC) $(CFLAGS) $(CAPI_INC) $(PLATFORM_INC) $(GLUE_INC) -o $@ -c $< + +# Compile program code +program.o: program.c + $(CC) $(CFLAGS) $(CAPI_INC) $(PLATFORM_INC) $(GLUE_INC) -o $@ -c $< + +# Link program. +program: program.o VBoxCAPICGlue.o VirtualBox_i.o + $(CC) -o $@ $^ -ldl -lpthread</screen></para> + </sect3> + + <sect3 id="capi_conversion"> + <title>Conversion of code using legacy C binding</title> + + <para>This section aims to make the task of converting code using + the legacy C binding to the new style a breeze, by pointing out some + key steps.</para> + + <para>One necessary change is adjusting your Makefile to reflect the + different include paths. See above. There are now 3 relevant include + directories, and most of it is pointing to the C binding directory. + The XPCOM include directory is still relevant for platforms where + the XPCOM middleware is used, but most of the include files live + elsewhere now, so it's good to have it last. Additionally the + <computeroutput>VirtualBox_i.c</computeroutput> file needs to be + compiled and linked to the program, it contains the IIDs relevant + for the VirtualBox API, making sure they are not replicated endlessly + if the code refers to them frequently.</para> + + <para>The C API client code should include <computeroutput>VBoxCAPIGlue.h</computeroutput> + instead of <computeroutput>VBoxXPCOMCGlue.h</computeroutput> or + <computeroutput>VBoxCAPI_v4_3.h</computeroutput>, as this makes sure + the correct macros and internal translations are selected.</para> + + <para>All API method calls (anything mentioning <code>vtbl</code>) + should be rewritten using the convenience macros for calling methods, + as these hide the internal details, are generally easier to use and + shorter to type. You should remove as many as possible + <code>(nsISupports **)</code> or similar typecasts, as the new style + should use the correct type in most places, increasing the type + safety in case of an error in the source code.</para> + + <para>To gloss over the platform differences, API client code should + no longer rely on XPCOM specific interface names such as + <code>nsISupports</code>, <code>nsIException</code> and + <code>nsIEventQueue</code>, and replace them by the platform + independent interface names <code>IUnknown</code> and + <code>IErrorInfo</code> for the first two respectively. Event queue + handling should be replaced by using the platform independent way + described in <xref linkend="c-eventhandling" />.</para> + + <para>Finally adjust the string and array handling to use the new + helpers, as these make sure the code works without changes with + both COM and XPCOM, which are significantly different in this area. + The code should be double checked if it uses the correct way to + manage memory, and is freeing it only after the last use.</para> + </sect3> + + <sect3 id="xpcom_cbinding"> + <title>Legacy C binding to VirtualBox API for XPCOM</title> + + <note> + <para>This section applies to Linux, Mac OS X and Solaris + hosts only and describes deprecated use of the API from C.</para> + </note> + + <para>Starting with version 2.2, VirtualBox offers a C binding for + its API which works only on platforms using XPCOM. Refer to the + old SDK documentation (included in the SDK packages for version 4.3.6 + or earlier), it still applies unchanged. The fundamental concepts are + similar (but the syntactical details are quite different) to the + newer cross-platform C binding which should be used for all new code, + as the support for the old C binding will go away in a major release + after version 4.3.</para> </sect3> </sect2> </sect1> @@ -2133,7 +2367,7 @@ if (prog.getResultCode() != 0) // check success stopped, snapshotted or other things.</para> </sect1> - <sect1> + <sect1 id="events"> <title>VirtualBox events</title> <para>In VirtualBox, "events" provide a uniform mechanism to register @@ -2216,8 +2450,8 @@ es.unregisterListener(listener); </screen></para> three COM/XPCOM/WS styles of the API.</para> <para>You can easily extend this shell with your own commands. Create a - subdirectory named <computeroutput>.VirtualBox/shexts</computeroutput> - below your home directory and put a Python file implementing your shell + subdirectory named <computeroutput>.config/VirtualBox/shexts</computeroutput> + below your home directory (respectively <computeroutput>.VirtualBox/shexts</computeroutput> on a Windows system and <computeroutput>Library/VirtualBox/shexts</computeroutput> on OS X) and put a Python file implementing your shell extension commands in this directory. This file must contain an array named <computeroutput>commands</computeroutput> containing your command definitions: <screen> @@ -2245,7 +2479,7 @@ es.unregisterListener(listener); </screen></para> # Call VirtualBox API, using context's fields hdd = ctx['vb'].createHardDisk(format, loc) # Access constants using ctx['global'].constants - progress = hdd.createBaseStorage(size, ctx['global'].constants.HardDiskVariant_Standard) + progress = hdd.createBaseStorage(size, (ctx['global'].constants.MediumVariant_Standard, )) # use standard progress bar mechanism ctx['progressBar'](progress) @@ -2266,7 +2500,7 @@ es.unregisterListener(listener); </screen></para> } </screen> Just store the above text in the file <computeroutput>createHdd</computeroutput> (or any other meaningful name) - in <computeroutput>.VirtualBox/shexts/</computeroutput>. Start the + in <computeroutput>.config/VirtualBox/shexts/</computeroutput>. Start the VirtualBox shell, or just issue the <computeroutput>reloadExts</computeroutput> command, if the shell is already running. Your new command will now be available.</para> @@ -3447,7 +3681,7 @@ AuthResult AUTHCALL AuthEntry( setup phase (see <computeroutput>ws</computeroutput> variable). In the SOAP case it's possible to create several VirtualBoxManager instances to communicate with multiple VirtualBox hosts. <programlisting> - import org.virtualbox_3_3.*; + import org.virtualbox_4_3.*; .... VirtualBoxManager mgr = VirtualBoxManager.createInstance(null); boolean ws = false; // or true, if we need the SOAP version @@ -3472,7 +3706,8 @@ AuthResult AUTHCALL AuthEntry( mgr.cleanup(); </programlisting> For more a complete example, see <computeroutput>TestVBox.java</computeroutput>, shipped with the - SDK.</para> + SDK. It contains exception handling and error printing code, which + is important for reliable larger scale projects.</para> </sect1> </chapter> @@ -3525,6 +3760,194 @@ AuthResult AUTHCALL AuthEntry( existing client code.</para> <sect1> + <title>Incompatible API changes with version 4.3</title> + + <itemizedlist> + <listitem> + <para>The explicit medium locking methods + <xref linkend="IMedium__lockRead" xreflabel="IMedium::lockRead()" /> + and <xref linkend="IMedium__lockWrite" xreflabel="IMedium::lockWrite()" /> + have been redesigned. They return a lock token object reference + now, and calling the <xref linkend="IToken__abandon" + xreflabel="IToken::abandon()" /> method (or letting the reference + count to this object drop to 0) will unlock it. This eliminates + the rather common problem that an API client crash left behind + locks, and also improves the safety (API clients can't release + locks they didn't obtain).</para> + </listitem> + + <listitem> + <para>The parameter list of <xref linkend="IAppliance__write" + xreflabel="IAppliance::write()" /> has been changed slightly, to + allow multiple flags to be passed.</para> + </listitem> + + <listitem> + <para><computeroutput>IMachine::delete</computeroutput> + has been renamed to <xref linkend="IMachine__deleteConfig" + xreflabel="IMachine::deleteConfig()" />, to improve API client + binding compatibility.</para> + </listitem> + + <listitem> + <para><computeroutput>IMachine::export</computeroutput> + has been renamed to <xref linkend="IMachine__exportTo" + xreflabel="IMachine::exportTo()" />, to improve API client binding + compatibility.</para> + </listitem> + + <listitem> + <para>For <xref linkend="IMachine__launchVMProcess" + xreflabel="IMachine::launchVMProcess()"/> the meaning of the + <computeroutput>type</computeroutput> parameter has changed slightly. + Empty string now means that the per-VM or global default frontend + is launched. Most callers of this method should use the empty string + now, unless they really want to override the default and launch a + particular frontend.</para> + </listitem> + + <listitem> + <para>Medium management APIs were changed as follows:<itemizedlist> + + <listitem> + <para>The type of attribute + <xref linkend="IMedium__variant" xreflabel="IMedium::variant()"/> + changed from <computeroutput>unsigned long</computeroutput> + to <computeroutput>safe-array MediumVariant</computeroutput>. + It is an array of flags instead of a set of flags which were stored inside one variable. + </para> + </listitem> + + <listitem> + <para>The parameter list for <xref + linkend="IMedium__cloneTo" + xreflabel="IMedium::cloneTo()" /> was modified.</para> + The type of parameter variant was changed from unsigned long to safe-array MediumVariant. + </listitem> + + <listitem> + <para>The parameter list for <xref + linkend="IMedium__createBaseStorage" + xreflabel="IMedium::createBaseStorage()" /> was modified.</para> + The type of parameter variant was changed from unsigned long to safe-array MediumVariant. + </listitem> + + <listitem> + <para>The parameter list for <xref + linkend="IMedium__createDiffStorage" + xreflabel="IMedium::createDiffStorage()" /> was modified.</para> + The type of parameter variant was changed from unsigned long to safe-array MediumVariant. + </listitem> + + <listitem> + <para>The parameter list for <xref + linkend="IMedium__cloneToBase" + xreflabel="IMedium::cloneToBase()" /> was modified.</para> + The type of parameter variant was changed from unsigned long to safe-array MediumVariant. + </listitem> + </itemizedlist></para> + </listitem> + + <listitem> + <para>The type of attribute + <xref linkend="IMediumFormat__capabilities" + xreflabel="IMediumFormat::capabilities()"/> + changed from <computeroutput>unsigned long</computeroutput> + to <computeroutput>safe-array MediumFormatCapabilities</computeroutput>. + It is an array of flags instead of a set of flags which were stored inside one variable. + </para> + </listitem> + + <listitem> + <para>The attribute <xref linkend="IMedium__logicalSize" + xreflabel="IMedium::logicalSize()" /> now returns the logical + size of exactly this medium object (whether it is a base or diff + image). The old behavior was no longer acceptable, as each image + can have a different capacity.</para> + </listitem> + + <listitem> + <para>Guest control APIs - such as <xref linkend="IGuest" + xreflabel="IGuest" />, <xref linkend="IGuestSession" + xreflabel="IGuestSession" />, <xref linkend="IGuestProcess" + xreflabel="IGuestProcess" /> and so on - now emit own events to provide + clients much finer control and the ability to write own frontends for + guest operations. The event <xref linkend="IGuestSessionEvent" + xreflabel="IGuestSessionEvent" /> acts as an abstract base class + for all guest control events. Certain guest events contain a + <xref linkend="IVirtualBoxErrorInfo" xreflabel="IVirtualBoxErrorInfo" /> member + to provide more information in case of an error happened on the + guest side.</para> + </listitem> + + <listitem> + <para>Guest control sessions on the guest started by <xref + linkend="IGuest__createSession" xreflabel="IGuest::createSession()" /> + now are dedicated guest processes to provide more safety and performance + for certain operations. Also, the <xref linkend="IGuest__createSession" + xreflabel="IGuest::createSession()" /> call does not wait for the + guest session being created anymore due to the dedicated guest session + processes just mentioned. This also will enable webservice clients to + handle guest session creation more gracefully. To wait for a guest + session being started, use the newly added attribute <xref + linkend="IGuestSession__status" xreflabel="IGuestSession::status()" /> + to query the current guest session status.</para> + </listitem> + + <listitem> + <para>The <xref linkend="IGuestFile" xreflabel="IGuestFile" /> + APIs are now implemented to provide native guest file access from + the host.</para> + </listitem> + + <listitem> + <para>The parameter list for <xref + linkend="IGuest__updateGuestAdditions" + xreflabel="IMedium::updateGuestAdditions()" /> was modified.</para> + It now supports specifying optional command line arguments for the + Guest Additions installer performing the actual update on the guest. + </listitem> + + <listitem> + <para>A new event <xref linkend="IGuestUserStateChangedEvent" + xreflabel="IGuestUserStateChangedEvent" /> was introduced to provide + guest user status updates to the host via event listeners. To use this + event there needs to be at least the 4.3 Guest Additions installed on + the guest. At the moment only the states "Idle" and "InUse" of the + <xref linkend="GuestUserState" + xreflabel="GuestUserState" /> enum are supported on + Windows guests, starting at Windows 2000 SP2.</para> + </listitem> + + <listitem> + <para> + The attribute <xref linkend="IGuestSession__protocolVersion" + xreflabel="IGuestSession::protocolVersion"/> was added to provide a + convenient way to lookup the guest session's protocol version it + uses to communicate with the installed Guest Additions on the guest. + Older Guest Additions will set the protocol version to 1, whereas + Guest Additions 4.3 will set the protocol version to 2. This might + change in the future as new features arise.</para> + </listitem> + + <listitem> + <para><computeroutput>IDisplay::getScreenResolution</computeroutput> + has been extended to return the display position in the guest.</para> + </listitem> + + <listitem> + <para> + The <xref linkend="IUSBController" xreflabel="IUSBController"/> + class is not a singleton of <xref linkend="IMachine" xreflabel="IMachine"/> + anymore but <xref linkend="IMachine" xreflabel="IMachine"/> contains + a list of USB controllers present in the VM. The USB device filter + handling was moved to <xref linkend="IUSBDeviceFilters" xreflabel="IUSBDeviceFilters"/>. + </para> + </listitem> + </itemizedlist> + </sect1> + + <sect1> <title>Incompatible API changes with version 4.2</title> <itemizedlist> @@ -3785,7 +4208,7 @@ AuthResult AUTHCALL AuthEntry( </row> <row> <entry>IUSBController::enabledEhci</entry> - <entry><xref linkend="IUSBController__enabledEHCI" xreflabel="IUSBController::enabledEHCI"/></entry> + <entry>IUSBController::enabledEHCI"</entry> </row> <row> <entry>INATEngine::tftpPrefix</entry> @@ -3837,7 +4260,6 @@ AuthResult AUTHCALL AuthEntry( </itemizedlist> </sect1> - <sect1> <title>Incompatible API changes with version 4.1</title> @@ -4156,8 +4578,8 @@ AuthResult AUTHCALL AuthEntry( <para>The appliance (OVF) APIs were enhanced as follows:<itemizedlist> <listitem> - <para><xref linkend="IMachine__export" - xreflabel="IMachine::export()" /> received an extra parameter + <para><computeroutput>IMachine::export</computeroutput> + received an extra parameter <computeroutput>location</computeroutput>, which is used to decide for the disk naming.</para> </listitem> @@ -4466,7 +4888,7 @@ AuthResult AUTHCALL AuthEntry( <listitem> <para>Reading the <xref linkend="IMedium__state" - xreflabel="IMedium::state" xrefstyle="" /> attribute no longer + xreflabel="IMedium::state" /> attribute no longer automatically performs an accessibility check; a new method <xref linkend="IMedium__refreshState" xreflabel="IMedium::refreshState()" /> does this. The attribute only diff --git a/doc/manual/en_US/images/vm-groups.png b/doc/manual/en_US/images/vm-groups.png Binary files differnew file mode 100644 index 00000000..53983429 --- /dev/null +++ b/doc/manual/en_US/images/vm-groups.png diff --git a/doc/manual/en_US/user_AdvancedTopics.xml b/doc/manual/en_US/user_AdvancedTopics.xml index 9b935f34..ed2a45e1 100644 --- a/doc/manual/en_US/user_AdvancedTopics.xml +++ b/doc/manual/en_US/user_AdvancedTopics.xml @@ -124,8 +124,8 @@ VBoxManage controlvm "Windows 2000" savestate</screen></para> </sect2> </sect1> - <sect1> - <title id="autologon">Automated guest logons</title> + <sect1 id="autologon"> + <title>Automated guest logons</title> <para>VirtualBox provides Guest Addition modules for Windows, Linux and Solaris to enable automated logons on the guest.</para> @@ -216,9 +216,9 @@ HKEY_CLASSES_ROOT\CLSID\{275D3BCC-22BB-4948-A7F6-3A3054EBA92B}\InprocServer32</s </listitem> <listitem> - <para>For <emphasis role="bold">Windows Vista and Windows 7 - guests,</emphasis> the logon subsystem does not support the - so-called Secure Attention Sequence + <para>For <emphasis role="bold">Windows Vista, Windows 7 + and Windows 8 guests,</emphasis> the logon subsystem does not support + the so-called Secure Attention Sequence (<computeroutput>CTRL+ALT+DEL</computeroutput>). As a result, the guest's group policy settings need to be changed to not use the Secure Attention Sequence. Also, the user name given is only @@ -252,6 +252,10 @@ HKEY_CLASSES_ROOT\CLSID\{275D3BCC-22BB-4948-A7F6-3A3054EBA92B}\InprocServer32</s guest logons on platforms which support this framework. Virtually all modern Linux/Unix distributions rely on PAM.</para> + <para>For automated logons on Ubuntu (or Ubuntu-derived) distributions + using LightDM as the display manager, please see + <xref linkend="autologon_unix_lightdm" />.</para> + <para>The <computeroutput>pam_vbox.so</computeroutput> module itself <emphasis role="bold">does not</emphasis> do an actual verification of the credentials passed to the guest OS; instead it relies on other @@ -405,6 +409,127 @@ HKEY_CLASSES_ROOT\CLSID\{275D3BCC-22BB-4948-A7F6-3A3054EBA92B}\InprocServer32</s Consult the appropriate syslog file for more information and use the <computeroutput>debug</computeroutput> option.</para> </note></para> + + <sect3 id="autologon_unix_lightdm"> + <title>VirtualBox Greeter for Ubuntu / LightDM</title> + + <para>Starting with version 4.2.12, VirtualBox comes with an own greeter + module named vbox-greeter which can be used with LightDM 1.0.1 or later. + LightDM is the default display manager since Ubuntu 10.11 and therefore + also can be used for automated guest logons.</para> + + <para>vbox-greeter does not need the pam_vbox module described above + in order to function -- it comes with its own authentication mechanism + provided by LightDM. However, to provide maximum of flexibility both + modules can be used together on the same guest.</para> + + <para>As for the pam_vbox module, vbox-greeter is shipped as part of + the Guest Additions but it is not installed and/or activated on the + guest OS by default For installing vbox-greeter automatically upon + Guest Additions installation, use the + <computeroutput>--with-autologon</computeroutput> switch when starting + the VBoxLinuxAdditions.run file:</para><screen># ./VBoxLinuxAdditions.run -- --with-autologon</screen> + + <para>For manual or postponed installation, the + <computeroutput>vbox-greeter.desktop</computeroutput> + file has to be copied from + <computeroutput>/opt/VBoxGuestAdditions-<version>/shared/VBoxGuestAdditions/</computeroutput> + to the <computeroutput>xgreeters</computeroutput> directory, usually + <computeroutput>/usr/share/xgreeters/</computeroutput>. + Please refer to your guest OS documentation for the correct LightDM + greeter directory.</para> + + <para>The vbox-greeter module itself already was installed by the + VirtualBox Guest Additions installer and resides in + <computeroutput>/usr/sbin/</computeroutput>. To enable vbox-greeter as + the standard greeter module, the file + <computeroutput>/etc/lightdm/lightdm.conf</computeroutput> needs to be + edited:</para> + + <para><screen>[SeatDefaults] +greeter-session=vbox-greeter</screen></para> + + <note><para>The LightDM server needs to be fully restarted in order to + get vbox-greeter used as the default greeter. As root, do a + <computeroutput>service lightdm --full-restart</computeroutput> on + Ubuntu, or simply restart the guest.</para></note> + + <note><para>vbox-greeter is independent of the graphical session chosen + by the user (like Gnome, KDE, Unity etc). However, it requires FLTK 1.3 + for representing its own user interface.</para></note> + + <para>There are numerous guest properties which can be used to further + customize the login experience. For automatically logging in users, the + same guest properties apply as for pam_vbox, see + <xref linkend="autologon_unix" />.</para> + + <para>In addition to the above mentioned guest properties, vbox-greeter + allows further customization of its user interface. These special guest + properties all reside in + <computeroutput>/VirtualBox/GuestAdd/Greeter/</computeroutput>:</para> + + <orderedlist> + <listitem> + <para><computeroutput>HideRestart</computeroutput>: Set to "1" if + vbox-greeter should hide the button to restart the guest. This + property must be set read-only for the guest + (<computeroutput>RDONLYGUEST</computeroutput>).</para> + </listitem> + + <listitem> + <para><computeroutput>HideShutdown</computeroutput>: Set to "1" if + vbox-greeter should hide the button to shutdown the guest. This + property must be set read-only for the guest + (<computeroutput>RDONLYGUEST</computeroutput>).</para> + </listitem> + + <listitem> + <para><computeroutput>BannerPath</computeroutput>: Path to a .PNG + file for using it as a banner on the top. The image size must be + 460 x 90 pixels, any bit depth. This property must be + set read-only for the guest + (<computeroutput>RDONLYGUEST</computeroutput>).</para> + </listitem> + + <listitem> + <para><computeroutput>UseTheming</computeroutput>: Set to "1" for + turning on the following theming options. This property must be + set read-only for the guest + (<computeroutput>RDONLYGUEST</computeroutput>).</para> + </listitem> + + <listitem> + <para><computeroutput>Theme/BackgroundColor</computeroutput>: + Hexadecimal RRGGBB color for the background. This property must be + set read-only for the guest + (<computeroutput>RDONLYGUEST</computeroutput>).</para> + </listitem> + + <listitem> + <para><computeroutput>Theme/LogonDialog/HeaderColor</computeroutput>: + Hexadecimal RRGGBB foreground color for the header text. This + property must be set read-only for the guest + (<computeroutput>RDONLYGUEST</computeroutput>).</para> + </listitem> + + <listitem> + <para><computeroutput>Theme/LogonDialog/BackgroundColor</computeroutput>: + Hexadecimal RRGGBB color for the logon dialog background. This + property must be set read-only for the guest + (<computeroutput>RDONLYGUEST</computeroutput>).</para> + </listitem> + + <listitem> + <para><computeroutput>Theme/LogonDialog/ButtonColor</computeroutput>: + Hexadecimal RRGGBB background color for the logon dialog button. This + property must be set read-only for the guest + (<computeroutput>RDONLYGUEST</computeroutput>).</para> + </listitem> + </orderedlist> + + <note><para>The same restrictions for the guest properties above apply + as for the ones specified in the pam_vbox section.</para></note> + </sect3> </sect2> </sect1> @@ -691,14 +816,15 @@ VBoxManage controlvm "VM name" unplugcpu 3</screen></para> step is to select the PCI card and attach it to the guest. To figure out the list of available PCI devices, use the <computeroutput>lspci</computeroutput> command. The output will look like - this <screen> - 01:00.0 VGA compatible controller: ATI Technologies Inc Cedar PRO [Radeon HD 5450] - 01:00.1 Audio device: ATI Technologies Inc Manhattan HDMI Audio [Mobility Radeon HD 5000 Series] - 02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03) - 03:00.0 SATA controller: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller (rev 03) - 03:00.1 IDE interface: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller (rev 03) - 06:00.0 VGA compatible controller: nVidia Corporation G86 [GeForce 8500 GT] (rev a1) - </screen> The first column is a PCI address (in format + this:</para> + <screen>01:00.0 VGA compatible controller: ATI Technologies Inc Cedar PRO [Radeon HD 5450] +01:00.1 Audio device: ATI Technologies Inc Manhattan HDMI Audio [Mobility Radeon HD 5000 Series] +02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit + Ethernet controller (rev 03) +03:00.0 SATA controller: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller (rev 03) +03:00.1 IDE interface: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller (rev 03) +06:00.0 VGA compatible controller: nVidia Corporation G86 [GeForce 8500 GT] (rev a1)</screen> + <para>The first column is a PCI address (in format <computeroutput>bus:device.function</computeroutput>). This address could be used to identify the device for further operations. For example, to attach a PCI network controller on the system listed above to the second @@ -731,6 +857,106 @@ VBoxManage controlvm "VM name" unplugcpu 3</screen></para> </sect1> <sect1> + <title>Webcam passthrough</title> + + <sect2 id="webcam-passthrough"> + <title>Using a host webcam in the guest</title> + + <para>VirtualBox 4.3 includes an experimental feature which allows a guest to use + a host webcam. This complements the general USB passthrough support which was the + typical way of using host webcams in earlier versions. The webcam passthrough support + can handle non-USB video sources in theory, but this is completely untested.</para> + + <note> + <para>The webcam passthrough module is shipped as part of the Oracle VM VirtualBox + extension pack, which must be installed separately. See <xref + linkend="intro-installing" /> for more information.</para> + </note> + + <para>The host webcam can be attached to the VM using "Devices" menu in the VM menu bar. + The "Webcams" menu contains a list of available video input devices on the host. + Clicking on a webcam name attaches or detaches the corresponding host device.</para> + + <para>The VBoxManage command line tool can be used to enable webcam passthrough. + Please see the host-specific sections below for additional details. + The following commands are available: + <itemizedlist> + <listitem><para>Get a list of host webcams (or other video input devices): + <screen>VBoxManage list webcams</screen> + The output format: + <screen>alias "user friendly name" +host path or identifier</screen> + The alias can be used as a shortcut in other commands. Alias '.0' means + default video input device on the host, '.1', '.2', etc mean first, second, etc + video input device. The device order is host-specific. + </para></listitem> + <listitem><para>Attach a webcam to a running VM: + <screen>VBoxManage controlvm "VM name" webcam attach [host_path|alias [settings]]</screen> + This will attach a USB webcam device to the guest.</para> + + <para>The <computeroutput>settings</computeroutput> parameter is a string + <computeroutput>Setting1=Value1;Setting2=Value2</computeroutput>, which allows to + configure the emulated webcam device. The following settings are supported: + <itemizedlist> + <listitem> + <computeroutput>MaxFramerate</computeroutput> The highest rate at which video frames + are sent to the guest. A higher frame rate requires more CPU power. Therefore sometimes + it is useful to set a lower limit. Default is no limit and allow the guest to use all + frame rates supported by the host webcam. + </listitem> + <listitem> + <computeroutput>MaxPayloadTransferSize</computeroutput> How many bytes the emulated + webcam can send to the guest at a time. Default value is 3060 bytes, which is used by + some webcams. Higher values can slightly reduce CPU load, if the guest is able to use + larger buffers. However, a high <computeroutput>MaxPayloadTransferSize</computeroutput> + might be not supported by some guests. + </listitem> + </itemizedlist> + </para></listitem> + <listitem><para>Detach a webcam from a running VM: + <screen>VBoxManage controlvm "VM name" webcam detach [host_path|alias]</screen> + </para></listitem> + <listitem><para>List webcams attached to a running VM: + <screen>VBoxManage controlvm "VM name" webcam list</screen> + The output contains path or alias which was used in 'webcam attach' command for + each attached webcam. + </para></listitem> + </itemizedlist> + </para> + </sect2> + + <sect2> + <title>Windows hosts</title> + + <para>When the webcam device is detached from the host, the emulated webcam device is + automatically detached from the guest.</para> + </sect2> + + <sect2> + <title>Mac OS X hosts</title> + + <para>OS X version 10.7 or newer is required.</para> + + <para>When the webcam device is detached from the host, the emulated webcam device + remains attached to the guest and must be manually detached using the + <computeroutput>VBoxManage controlvm "VM name" webcam detach ...</computeroutput> command.</para> + </sect2> + + <sect2> + <title>Linux hosts</title> + + <para>When the webcam is detached from the host the emulated webcam device is + automatically detached from the guest only if the webcam is streaming video. + If the emulated webcam is inactive it should be manually detached using the + <computeroutput>VBoxManage controlvm "VM name" webcam detach ...</computeroutput> command.</para> + + <para>Aliases <computeroutput>.0</computeroutput> and <computeroutput>.1</computeroutput> are mapped + to <computeroutput>/dev/video0</computeroutput>, alias <computeroutput>.2</computeroutput> is mapped + to <computeroutput>/dev/video1</computeroutput> and so forth.</para> + </sect2> + </sect1> + + <sect1> <title>Advanced display configuration</title> <sect2> @@ -1000,9 +1226,8 @@ VBoxManage setextradata "VM name" desired SATA hard disk port.</para> </sect2> - <sect2> - <title id="iscsi-intnet">Access iSCSI targets via Internal - Networking</title> + <sect2 id="iscsi-intnet"> + <title>Access iSCSI targets via Internal Networking</title> <para>As an experimental feature, VirtualBox allows for accessing an iSCSI target running in a virtual machine which is configured for using @@ -1015,13 +1240,14 @@ VBoxManage setextradata "VM name" and a MAC address not used by other virtual machines must be chosen. In the example below, adapt the name of the virtual machine, the MAC address, the IP configuration and the Internal Networking name - ("MyIntNet") according to your needs. The following seven commands must + ("MyIntNet") according to your needs. The following eight commands must first be issued:<screen>VBoxManage setextradata "VM name" VBoxInternal/Devices/IntNetIP/0/Trusted 1 VBoxManage setextradata "VM name" VBoxInternal/Devices/IntNetIP/0/Config/MAC 08:00:27:01:02:0f VBoxManage setextradata "VM name" VBoxInternal/Devices/IntNetIP/0/Config/IP 10.0.9.1 VBoxManage setextradata "VM name" VBoxInternal/Devices/IntNetIP/0/Config/Netmask 255.255.255.0 VBoxManage setextradata "VM name" VBoxInternal/Devices/IntNetIP/0/LUN#0/Driver IntNet VBoxManage setextradata "VM name" VBoxInternal/Devices/IntNetIP/0/LUN#0/Config/Network MyIntNet +VBoxManage setextradata "VM name" VBoxInternal/Devices/IntNetIP/0/LUN#0/Config/TrunkType 2 VBoxManage setextradata "VM name" VBoxInternal/Devices/IntNetIP/0/LUN#0/Config/IsService 1</screen></para> <para>Finally the iSCSI disk must be attached with the @@ -1042,82 +1268,6 @@ VBoxManage setextradata "VM name" VBoxInternal/Devices/IntNetIP/0/LUN#0/Config/I </sect1> <sect1> - <title>Launching more than 128 VMs on Linux hosts</title> - - <para>Linux hosts have a fixed number of IPC semaphores IDs per process - preventing users from starting substantially many VMs. The exact number - may vary with each Linux distribution. While trying to launch more VMs you - would be shown a "Cannot create IPC semaphore" error. In order to run more - VMs, you will need to increase the semaphore ID limit of the VBoxSVC - process. Find the current semaphore limits imposed by the kernel by - executing as root:<screen>#/sbin/sysctl kernel.sem -kernel.sem = 250 32000 32 128</screen></para> - - <para>The "kernel.sem" parameter bundles together 4 values, the one we are - interested in is called "SEMMNI", the maximum number of semaphore IDs - which is 128 in the above example. Increase this semaphore ID limit by - executing as root:<screen>echo "kernel.sem = 250 32000 32 2048" >> /etc/sysctl.conf -/sbin/sysctl -p</screen></para> - - <para>The above commands will add the new limits to the config file, thus - making the effect persistent across reboots, and will activate the new - limits into the currently running kernel.</para> - </sect1> - - <sect1> - <title>Launching more than 120 VMs on Solaris hosts</title> - - <para>Solaris hosts have a fixed number of IPC semaphores IDs per process - preventing users from starting more than 120 VMs. While trying to launch - more VMs you would be shown a "Cannot create IPC semaphore" error. In - order to run more VMs, you will need to increase the semaphore ID limit of - the VBoxSVC process.</para> - - <sect2> - <title>Temporary solution while VirtualBox is running</title> - - <para>Execute as root the <computeroutput>prctl</computeroutput> command - as shown below for the currently running VBoxSVC process. The process ID - of VBoxSVC can be obtained using the <computeroutput>ps</computeroutput> - command.</para> - - <screen>prctl -r -n project.max-sem-ids -v 2048 <pid-of-VBoxSVC></screen> - - <para>This will immediately increase the semaphore limit of the - currently running VBoxSVC process and allow you to launch more VMs. - However, this change is not persistent and will be lost when VBoxSVC - terminates.</para> - </sect2> - - <sect2> - <title>Persistent solution, requires user to re-login</title> - - <para>If the user running VirtualBox is root, execute the following - command:</para> - - <screen>prctl -n project.max-sem-ids -v 2048 -r -i project user.root</screen> - - <para>From this point, starting new processes will have the increased - limit of 2048. You may then re-login or close all VMs and restart - VBoxSVC. You can check the current VBoxSVC semaphore ID limit using the - following command:</para> - - <screen>prctl -n project.max-sem-ids -i process <pid-of-VBoxSVC></screen> - - <para>If the user running VirtualBox is not root, you must add the - property to the user's default project. Create the default project and - set the limit by executing as root:</para> - - <screen>projadd -U <username> user.<username> -projmod -s -K "project.max-sem-ids=(priv,2048,deny)" user.<username></screen> - - <para>Substitute "<username>" with the name of the user running - VirtualBox. Then re-login as this user to be able to run more than 120 - VMs.</para> - </sect2> - </sect1> - - <sect1> <title>Legacy commands for using serial ports</title> <para>Starting with version 1.4, VirtualBox provided support for virtual @@ -1158,7 +1308,7 @@ VBoxManage setextradata "VM name" configuration is used on a Windows host, because the Windows named pipe syntax is used. Keep in mind that on Windows hosts a named pipe must always start with <computeroutput>\\.\pipe\</computeroutput>. On Linux the - same config settings apply, except that the path name for the + same configuration settings apply, except that the path name for the <computeroutput>Location</computeroutput> can be chosen more freely. Local domain sockets can be placed anywhere, provided the user running VirtualBox has the permission to create a new file in the directory. The @@ -1200,7 +1350,7 @@ VBoxManage setextradata "VM name" interface</title> <para>For network booting in NAT mode, by default VirtualBox uses a - built-in TFTP server at the IP address 10.0.2.3. This default behavior + built-in TFTP server at the IP address 10.0.2.4. This default behavior should work fine for typical remote-booting scenarios. However, it is possible to change the boot server IP and the location of the boot image with the following commands: <screen>VBoxManage modifyvm "VM name" --nattftpserver1 10.0.2.2 @@ -1324,7 +1474,8 @@ VBoxManage setextradata "VM name" \ <para>The DMI data VirtualBox provides to guests can be changed for a specific VM. Use the following commands to configure the DMI BIOS - information:</para> + information. In case your VM is configured to use EFI firmware you need to + replace <code>pcbios</code> by <code>efi</code> in the keys.</para> <sect2> <title>DMI BIOS information (type 0)</title> @@ -1376,13 +1527,15 @@ VBoxManage setextradata "VM name" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiBoardLocInChass" "Board Location" VBoxManage setextradata "VM name" - "VBoxInternal/Devices/pcbios/0/Config/DmiBoardType" 10</screen> + "VBoxInternal/Devices/pcbios/0/Config/DmiBoardBoardType" 10</screen> </sect2> <sect2> <title>DMI system enclosure or chassis (type 3)</title> <screen>VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiChassisVendor" "Chassis Vendor" VBoxManage setextradata "VM name" + "VBoxInternal/Devices/pcbios/0/Config/DmiChassisType" 3 +VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiChassisVersion" "Chassis Version" VBoxManage setextradata "VM name" "VBoxInternal/Devices/pcbios/0/Config/DmiChassisSerial" "Chassis Serial" @@ -1643,13 +1796,12 @@ VBoxManage setextradata "VM name" <para>Support for Crossbow based bridged networking was introduced with VirtualBox 4.1 and requires Solaris 11 build 159 or above.</para> </footnote> A VirtualBox VNIC template is a VNIC whose name starts with - "vboxvnic_template".</para> + "vboxvnic_template" (case-sensitive).</para> <para>Here is an example of how to use a VNIC template to configure a VLAN for VMs. Create a VirtualBox VNIC template, by executing as root:</para> - <screen>dladm create-vnic -t -l nge0 -v 23 vboxvnic_template0 -</screen> + <screen>dladm create-vnic -t -l nge0 -v 23 vboxvnic_template0</screen> <para>This will create a temporary VNIC over interface "nge0" with the VLAN ID 23. To create VNIC templates that are persistent across host @@ -1664,8 +1816,7 @@ vboxvnic_template0 vnic 1500 up -- nge0 $ dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE VID -vboxvnic_template0 nge0 1000 2:8:20:25:12:75 random 23 -</screen></para> +vboxvnic_template0 nge0 1000 2:8:20:25:12:75 random 23</screen></para> <para>Once the VNIC template is created, all VMs that need to be part of VLAN 23 over the physical interface "nge0" can use the same VNIC template. @@ -1773,7 +1924,7 @@ VBoxManage setextradata "VM name" VBoxInternal2/CoreDumpLive 1</screen>At <title>Locking down the VirtualBox manager GUI</title> <sect2> - <title>GUI customization</title> + <title>Customizing the VM manager</title> <para>There are several advanced customization settings for locking down the VirtualBox manager, that is, removing some features that the user @@ -1809,7 +1960,668 @@ VBoxManage setextradata "VM name" VBoxInternal2/CoreDumpLive 1</screen>At </glossentry> </glosslist></para> - <para>To disable any GUI customization do <screen>VBoxManage setextradata global GUI/Customizations</screen></para> + <para>To disable any of these VM manager customizations do + <screen>VBoxManage setextradata global GUI/Customizations</screen></para> + + </sect2> + <sect2> + + <title>VM selector customization</title> + <para>The following per-machine VM extradata settings can be used to change the + behavior of the VM selector window in respect of certain VMs:</para> + <screen>VBoxManage setextradata "VM name" true</screen> + <para>where <computeroutput>SETTING</computeroutput> can be:</para> + <glosslist> + <glossentry> + <glossterm><computeroutput>GUI/HideDetails</computeroutput></glossterm> + <glossdef> + <para>Don't show the VM configuration of a certain VM. The details + window will remain just empty if this VM is selected.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>GUI/PreventReconfiguration</computeroutput></glossterm> + <glossdef> + <para>Don't allow the user to open the settings dialog for a certain VM.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>GUI/PreventSnapshotOperations</computeroutput></glossterm> + <glossdef> + <para>Prevent snapshot operations for a VM from the GUI, either at runtime or when + the VM is powered off.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>GUI/HideFromManager</computeroutput></glossterm> + <glossdef> + <para>Hide a certain VM in the VM selector window.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>GUI/PreventApplicationUpdate</computeroutput></glossterm> + <glossdef> + <para>Disable the automatic update check and hide the corresponding menu item.</para> + </glossdef> + </glossentry> + </glosslist> + <para>Please note that these settings wouldn't prevent the user from + reconfiguring the VM by <computeroutput>VBoxManage modifyvm</computeroutput>.</para> + + </sect2> + + <sect2> + <title>Configure VM selector menu entries</title> + <para>You can disable (i.e. black-list) certain entries in the global settings + page of the VM selector:</para> + <screen>VBoxManage setextradata global GUI/RestrictedGlobalSettingsPages OPTION[,OPTION...]</screen> + <para>where <computeroutput>OPTION</computeroutput> is one of the + following keywords:</para><glosslist> + <glossentry> + <glossterm><computeroutput>General</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>General</emphasis> settings pane.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>Input</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Input</emphasis> settings pane.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>Update</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Update</emphasis> settings pane.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>Language</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Language</emphasis> settings pane.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>Display</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Display</emphasis> settings pane.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>Network</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Network</emphasis> settings pane.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>Extensions</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Extensions</emphasis> settings pane.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>Proxy</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Proxy</emphasis> settings pane.</para> + </glossdef> + </glossentry> + + </glosslist> + + <para>This is a global setting. Any combination of the above is allowed. + To restore the default behavior, use</para> + <screen>VBoxManage setextradata global GUI/RestrictedGlobalSettingsPages</screen> + + </sect2> + + <sect2> + <title>Configure VM window menu entries</title> + <para>You can disable (i.e. black-list) certain menu actions in the VM window:</para> + <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeMenus OPTION[,OPTION...]</screen> + + <para>where <computeroutput>OPTION</computeroutput> is one of the + following keywords:</para><glosslist> + <glossentry> + <glossterm><computeroutput>All</computeroutput></glossterm> + <glossdef> + <para>Don't show any menu in the VM window.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>Machine</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Machine</emphasis> menu in the VM window.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>View</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>View</emphasis> menu in the VM window.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>Devices</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Devices</emphasis> menu in the VM window.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>Help</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Help</emphasis> menu in the VM window.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>Debug</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Debug</emphasis> menu in the VM window. The debug + menu is only visible if the GUI was started with special command line parameters + or environment variable settings.</para> + </glossdef> + </glossentry> + + </glosslist> + + <para>This is a per-VM setting. Any combination of the above is allowed. To restore + the default behavior, use</para> + <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeMenus</screen> + + <para>You can also disable (i.e. blacklist) certain menu actions of certain + menus. Use the following command to disable certain actions of the + <emphasis>Application</emphasis> menu (only available on Mac OS X hosts):</para> + <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeApplicationMenuActions OPTION[,OPTION...]</screen> + + <para>where <computeroutput>OPTION</computeroutput> is one of the + following keywords:</para><glosslist> + <glossentry> + <glossterm><computeroutput>All</computeroutput></glossterm> + <glossdef> + <para>Don't show any menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>About</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>About</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + </glosslist> + + <para>This is a per-VM setting. Any combination of the above is allowed. To restore + the default behavior, use</para> + <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeMenus</screen> + + <para>Use the following command to disable certain actions of the <emphasis>Machine</emphasis> + menu:</para> + + <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeApplicationMenuActions OPTION[,OPTION...]</screen> + + <para>where <computeroutput>OPTION</computeroutput> is one of the + following keywords:</para><glosslist> + <glossentry> + <glossterm><computeroutput>All</computeroutput></glossterm> + <glossdef> + <para>Don't show any menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>SettingsDialog</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Settings</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>TakeSnapshot</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Take Snapshot</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>TakeScreenshot</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Take Screenshot</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>InformationDialog</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Session Information</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>MouseIntegration</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Disable Mouse Integration</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>TypeCAD</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Insert Ctrl+Alt+Del</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>TypeCABS</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Insert Ctrl+Alt+Backspace</emphasis> menu item in + this menu (available on X11 hosts only).</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>Pause</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Pause</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>Reset</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Reset</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>SaveState</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Save the machine state</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>Shutdown</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>ACPI Shutdown</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>PowerOff</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Power Off the machine</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + </glosslist> + + <para>This is a per-VM setting. Any combination of the above is allowed. To restore + the default behavior, use</para> + <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeApplicationMenuActions</screen> + + <para>Use the following command to disable certain actions of the <emphasis>View</emphasis> + menu:</para> + + <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeViewMenuActions OPTION[,OPTION...]</screen> + + <para>where <computeroutput>OPTION</computeroutput> is one of the + following keywords:</para><glosslist> + <glossentry> + <glossterm><computeroutput>All</computeroutput></glossterm> + <glossdef> + <para>Don't show any menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>Fullscreen</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Switch to Fullscreen</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>Seamless</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Switch to Seamless Mode</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>Scale</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Switch to Scaled Mode</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>GuestAutoresize</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Auto-resize Guest Display</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>AdjustWindow</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Adjust Window Size</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>Multiscreen</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Multiscreen</emphasis> menu item in this menu (only visible in full screen / seamless mode).</para> + </glossdef> + </glossentry> + </glosslist> + + <para>This is a per-VM setting. Any combination of the above is allowed. To restore + the default behavior, use</para> + <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeViewMenuActions</screen> + + <para>Use the following command to disable certain actions of the <emphasis>View</emphasis> + menu:</para> + + <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeDevicesMenuActions OPTION[,OPTION...]</screen> + + <para>where <computeroutput>OPTION</computeroutput> is one of the + following keywords to disable actions in the <emphasis>Devices</emphasis> menu:</para><glosslist> + <glossentry> + <glossterm><computeroutput>All</computeroutput></glossterm> + <glossdef> + <para>Don't show any menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>OpticalDevices</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>CD/DVD Devices</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>FloppyDevices</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>FLoppy Devices</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>USBDevices</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>USB Devices</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>SharedClipboard</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Shared Clipboard</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>DragAndDrop</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Drag'n'Drop</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>NetworkSettings</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Network Settings...</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>SharedFoldersSettings</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Shared Folders Settings...</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>VRDEServer</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Remove Display</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>InstallGuestTools</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Insert Guest Additions CD imnage...</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + </glosslist> + + <para>This is a per-VM setting. Any combination of the above is allowed. To restore + the default behavior, use</para> + <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeDevicesMenuActions</screen> + + <para>Use the following command to disable certain actions of the <emphasis>View</emphasis> + menu:</para> + + <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeDebuggerMenuActions OPTION[,OPTION...]</screen> + + <para>where <computeroutput>OPTION</computeroutput> is one of the + following keywords to disable actions in the <emphasis>Debug</emphasis> menu (normally completely disabled):</para><glosslist> + <glossentry> + <glossterm><computeroutput>All</computeroutput></glossterm> + <glossdef> + <para>Don't show any menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>Statistics</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Statistics...</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>CommandLine</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Command Line...</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>Logging</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Logging...</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>LogDialog</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Show Log...</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + </glosslist> + + <para>This is a per-VM setting. Any combination of the above is allowed. To restore + the default behavior, use</para> + <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeDebuggerMenuActions</screen> + + <para>Use the following command to disable certain actions of the <emphasis>View</emphasis> + menu:</para> + + <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeHelpMenuActions OPTION[,OPTION...]</screen> + + <para>where <computeroutput>OPTION</computeroutput> is one of the + following keywords to disable actions in the <emphasis>Help</emphasis> menu (normally completely disabled):</para><glosslist> + <glossentry> + <glossterm><computeroutput>All</computeroutput></glossterm> + <glossdef> + <para>Don't show any menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>Contents</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Contents...</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>WebSite</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>VirtualBox Web Site...</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>ResetWarnings</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Reset All Warnings</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>NetworkAccessManager</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Network Operations Manager</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>About</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>About</emphasis> menu item in this menu (only on non Mac OS X hosts).</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>Contents</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Contents...</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + <glossentry> + <glossterm><computeroutput>Contents</computeroutput></glossterm> + <glossdef> + <para>Don't show the <emphasis>Contents...</emphasis> menu item in this menu.</para> + </glossdef> + </glossentry> + </glosslist> + + <para>This is a per-VM setting. Any combination of the above is allowed. To restore + the default behavior, use</para> + <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeHelpMenuActions</screen> + + </sect2> + + <sect2> + + <title>Configure VM window status bar entries</title> + + <para>You can disable (i.e. black-list) certain status bar items:</para> + <screen>VBoxManage setextradata "VM name" GUI/RestrictedStatusBarIndicators OPTION[,OPTION...]</screen> + + <para>where <computeroutput>OPTION</computeroutput> is one of the + following keywords:</para><glosslist> + <glossentry> + <glossterm><computeroutput>HardDisks</computeroutput></glossterm> + <glossdef> + <para>Don't show the hard disk icon in the VM window status bar. By default + the hard disk icon is only shown if the VM configuration contains one or + more hard disks.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>OpticalDisks</computeroutput></glossterm> + <glossdef> + <para>Don't show the CD icon in the VM window status bar. By default the + CD icon is only shown if the VM configuration contains one or more CD + drives.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>FloppyDisks</computeroutput></glossterm> + <glossdef> + <para>Don't show the floppy icon in the VM window status bar. By default the + floppy icon is only shown if the VM configuration contains one more + more floppy drives.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>Network</computeroutput></glossterm> + <glossdef> + <para>Don't show the network icon in the VM window status bar. By default + the network icon is only shown if the VM configuration contains one or more + active network adapters.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>USB</computeroutput></glossterm> + <glossdef> + <para>Don't show the USB icon in the status bar. </para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>SharedFolders</computeroutput></glossterm> + <glossdef> + <para>Don't show the shared folders icon in the status bar.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>VideoCapture</computeroutput></glossterm> + <glossdef> + <para>Don't show the video capture icon in the status bar.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>Features</computeroutput></glossterm> + <glossdef> + <para>Don't show the CPU features icon in the status bar.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>Mouse</computeroutput></glossterm> + <glossdef> + <para>Don't show the mouse icon in the status bar.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>Keyboard</computeroutput></glossterm> + <glossdef> + <para>Don't show the keyboard icon in the status bar.</para> + </glossdef> + </glossentry> + + </glosslist> + + <para>This is a per-VM setting. Any combination of the above is allowed. If all options + are specified, no icons are displayed in the status bar of the VM window. To restore + the default behavior, use</para> + + <screen>VBoxManage setextradata "VM name" GUI/RestrictedStatusBarIndicators</screen> + + </sect2> + + <sect2> + <title>Configure VM window visual modes</title> + + <para>You can disable (i.e. black-list) certain VM visual modes:</para> + <screen>VBoxManage setextradata "VM name" GUI/RestrictedVisualStates OPTION[,OPTION...]</screen> + + <para>where <computeroutput>OPTION</computeroutput> is one of the + following keywords:</para><glosslist> + <glossentry> + <glossterm><computeroutput>Fullscreen</computeroutput></glossterm> + <glossdef> + <para>Don't allow to switch the VM into full screen mode.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>Seamless</computeroutput></glossterm> + <glossdef> + <para>Don't allow to switch the VM into seamless mode.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>Scale</computeroutput></glossterm> + <glossdef> + <para>Don't allow to switch the VM into scale mode.</para> + </glossdef> + </glossentry> + + </glosslist> + + <para>This is a per-VM setting. Any combination of the above is allowed. To restore + the default behavior, use</para> + + <screen>VBoxManage setextradata "VM name" GUI/RestrictedVisualStates</screen> + </sect2> <sect2> @@ -1827,102 +2639,146 @@ VBoxManage setextradata "VM name" VBoxInternal2/CoreDumpLive 1</screen>At host key shortcut. Setting an action to <emphasis>None</emphasis> will disable that host key action.</para> <table> - <title>ignoreme</title> + <title>Host Key customization</title> <tgroup cols="3"> - <tbody> + <thead> <row> <entry><emphasis role="bold">Action</emphasis></entry> - <entry><emphasis role="bold">Default Host Key</emphasis></entry> + <entry><emphasis role="bold">Default Key</emphasis></entry> <entry><emphasis role="bold">Action</emphasis></entry> </row> + </thead> + <tbody> <row> - <entry>SettingsDialog</entry> - <entry>S</entry> - <entry>open the VM settings dialog</entry> - </row> - <row> - <entry>TakeSnapshot</entry> - <entry>S</entry> + <entry><computeroutput>TakeSnapshot</computeroutput></entry> + <entry>T</entry> <entry>take a snapshot</entry> </row> <row> - <entry>InformationsDialog</entry> - <entry>N</entry> - <entry>show the VM information dialog</entry> + <entry><computeroutput>TakeScreenshot</computeroutput></entry> + <entry>E</entry> + <entry>take a screenshot</entry> </row> <row> - <entry>MouseIntegration</entry> + <entry><computeroutput>MouseIntegration</computeroutput></entry> <entry>I</entry> <entry>toggle mouse integration</entry> </row> <row> - <entry>TypeCAD</entry> + <entry><computeroutput>TypeCAD</computeroutput></entry> <entry>Del</entry> <entry>inject Ctrl+Alt+Del</entry> </row> <row> - <entry>TypeCABS</entry> + <entry><computeroutput>TypeCABS</computeroutput></entry> <entry>Backspace</entry> <entry>inject Ctrl+Alt+Backspace</entry> </row> <row> - <entry>Pause</entry> + <entry><computeroutput>Pause</computeroutput></entry> <entry>P</entry> <entry>Pause the VM</entry> </row> <row> - <entry>Reset</entry> + <entry><computeroutput>Reset</computeroutput></entry> <entry>R</entry> <entry>(hard) reset the guest</entry> </row> <row> - <entry>Shutdown</entry> + <entry><computeroutput>SaveState</computeroutput></entry> + <entry></entry> + <entry>save the VM state and terminate the VM</entry> + </row> + <row> + <entry><computeroutput>Shutdown</computeroutput></entry> <entry>H</entry> - <entry>press the ACPI power button</entry> + <entry>press the (virtual) ACPI power button</entry> + </row> + <row> + <entry><computeroutput>PowerOff</computeroutput></entry> + <entry></entry> + <entry>power the VM off (without saving the state!)</entry> </row> <row> - <entry>Close</entry> + <entry><computeroutput>Close</computeroutput></entry> <entry>Q</entry> <entry>show the VM close dialog</entry> </row> <row> - <entry>FullscreenMode</entry> + <entry><computeroutput>FullscreenMode</computeroutput></entry> <entry>F</entry> - <entry>switch the VM into fullscreen</entry> + <entry>switch the VM into full screen</entry> </row> <row> - <entry>SeamlessMode</entry> + <entry><computeroutput>SeamlessMode</computeroutput></entry> <entry>L</entry> <entry>switch the VM into seamless mode</entry> </row> <row> - <entry>ScaleMode</entry> + <entry><computeroutput>ScaleMode</computeroutput></entry> <entry>C</entry> <entry>switch the VM into scale mode</entry> </row> <row> - <entry>PopupMenu</entry> + <entry><computeroutput>GuestAutoResize</computeroutput></entry> + <entry>G</entry> + <entry>automatically resize the guest window</entry> + </row> + <row> + <entry><computeroutput>WindowAdjust</computeroutput></entry> + <entry>A</entry> + <entry>immediately resize the guest window</entry> + </row> + <row> + <entry><computeroutput>PopupMenu</computeroutput></entry> <entry>Home</entry> - <entry>show popup menu in fullscreen / seamless mode</entry> + <entry>show popup menu in full screen / seaml. mode</entry> + </row> + <row> + <entry><computeroutput>SettingsDialog</computeroutput></entry> + <entry>S</entry> + <entry>open the VM settings dialog</entry> + </row> + <row> + <entry><computeroutput>InformationDialog</computeroutput></entry> + <entry>N</entry> + <entry>show the VM information window</entry> + </row> + <row> + <entry><computeroutput>NetworkAdaptersDialog</computeroutput></entry> + <entry></entry> + <entry>show the VM network adapters dialog</entry> + </row> + <row> + <entry><computeroutput>SharedFoldersDialog</computeroutput></entry> + <entry></entry> + <entry>show the VM shared folders dialog</entry> + </row> + <row> + <entry><computeroutput>InstallGuestAdditions</computeroutput></entry> + <entry>D</entry> + <entry>mount the ISO containing the Guest Additions</entry> </row> </tbody> </tgroup> </table> - <para>To disable the fullscreen mode as well as the seamless mode, use the following command: + <para>To disable the full screen mode as well as the seamless mode, use the following command: <screen>VBoxManage setextradata global GUI/Input/MachineShortcuts "FullscreenMode=None,SeamlessMode=None"</screen> </para> </sect2> + <sect2> <title>Action when terminating the VM</title> - <para>You can disallow certain actions when terminating a VM. To disallow specific actions, type:</para> + <para>You can disallow (i.e. black-list) certain actions when terminating a VM. + To disallow specific actions, type:</para> <para><screen>VBoxManage setextradata "VM name" GUI/RestrictedCloseActions OPTION[,OPTION...]</screen></para> <para>where <computeroutput>OPTION</computeroutput> is one of the - following keywords:<glosslist> + following keywords:</para><glosslist> <glossentry> <glossterm><computeroutput>SaveState</computeroutput></glossterm> @@ -1950,17 +2806,17 @@ VBoxManage setextradata "VM name" VBoxInternal2/CoreDumpLive 1</screen>At </glossentry> <glossentry> - <glossterm><computeroutput>Restore</computeroutput></glossterm> + <glossterm><computeroutput>PowerOffRestoringSnapshot</computeroutput></glossterm> <glossdef> <para>Don't allow the user to return to the last snapshot when powering off the VM.</para> </glossdef> </glossentry> - </glosslist></para> + </glosslist> - <para>Any combination of the above is allowed. If all options are - specified, the VM cannot be shut down at all.</para> + <para>This is a per-VM setting. Any combination of the above is allowed. If all + options are specified, the VM cannot be shut down at all.</para> </sect2> </sect1> @@ -1984,100 +2840,97 @@ VBoxManage setextradata "VM name" VBoxInternal2/CoreDumpLive 1</screen>At <computeroutput>/etc/default/virtualbox</computeroutput>. There is one mandatory parameter, <computeroutput>VBOXWEB_USER</computeroutput>, which must be set to the user which will later start the VMs. The - paramters in the table below all start with <computeroutput>VBOXWEB_</computeroutput> + parameters in the table below all start with <computeroutput>VBOXWEB_</computeroutput> (<computeroutput>VBOXWEB_HOST</computeroutput>, <computeroutput>VBOXWEB_PORT</computeroutput> etc.): <table> - <title>ignored</title> + <title>Web service configuration parameters</title> <tgroup cols="3"> - <tbody> + <thead> <row> <entry><emphasis role="bold">Parameter</emphasis></entry> <entry><emphasis role="bold">Description</emphasis></entry> <entry><emphasis role="bold">Default</emphasis></entry> </row> + </thead> + <tbody> <row> - <entry>USER</entry> + <entry><computeroutput>USER</computeroutput></entry> <entry>The user as which the web service runs</entry> <entry></entry> </row> <row> - <entry>HOST</entry> + <entry><computeroutput>HOST</computeroutput></entry> <entry>The host to bind the web service to</entry> <entry>localhost</entry> </row> <row> - <entry>PORT</entry> + <entry><computeroutput>PORT</computeroutput></entry> <entry>The port to bind the web service to</entry> <entry>18083</entry> </row> <row> - <entry>SSL_KEYFILE</entry> + <entry><computeroutput>SSL_KEYFILE</computeroutput></entry> <entry>Server key and certificate file, PEM format</entry> <entry></entry> </row> <row> - <entry>SSL_PASSWORDFILE</entry> + <entry><computeroutput>SSL_PASSWORDFILE</computeroutput></entry> <entry>File name for password to server key</entry> <entry></entry> </row> <row> - <entry>SSL_CACERT</entry> + <entry><computeroutput>SSL_CACERT</computeroutput></entry> <entry>CA certificate file, PEM format</entry> <entry></entry> </row> <row> - <entry>SSL_CAPATH</entry> + <entry><computeroutput>SSL_CAPATH</computeroutput></entry> <entry>CA certificate path</entry> <entry></entry> </row> <row> - <entry>SSL_DHFILE</entry> + <entry><computeroutput>SSL_DHFILE</computeroutput></entry> <entry>DH file name or DH key length in bits</entry> <entry></entry> </row> <row> - <entry>SSL_RANDFILE</entry> + <entry><computeroutput>SSL_RANDFILE</computeroutput></entry> <entry>File containing seed for random number generator</entry> <entry></entry> </row> <row> - <entry>TIMEOUT</entry> + <entry><computeroutput>TIMEOUT</computeroutput></entry> <entry>Session timeout in seconds; 0 disables timeouts</entry> <entry>300</entry> </row> <row> - <entry>CHECK_INTERVAL</entry> + <entry><computeroutput>CHECK_INTERVAL</computeroutput></entry> <entry>Frequency of timeout checks in seconds</entry> <entry>5</entry> </row> <row> - <entry>THREADS</entry> + <entry><computeroutput>THREADS</computeroutput></entry> <entry>Maximum number of worker threads to run in parallel</entry> <entry>100</entry> </row> <row> - <entry>KEEPALIVE</entry> + <entry><computeroutput>KEEPALIVE</computeroutput></entry> <entry>Maximum number of requests before a socket will be closed</entry> <entry>100</entry> </row> <row> - <entry>LOGFILE</entry> - <entry>Name of file to write log to</entry> - <entry></entry> - </row> - <row> - <entry>ROTATE</entry> + <entry><computeroutput>ROTATE</computeroutput></entry> <entry>Number of log files; 0 disables log rotation</entry> <entry>10</entry> </row> <row> - <entry>LOGSIZE</entry> + <entry><computeroutput>LOGSIZE</computeroutput></entry> <entry>Maximum size of a log file in bytes to trigger rotation</entry> <entry>1MB</entry> </row> <row> - <entry>LOGINTERVAL</entry> + <entry><computeroutput>LOGINTERVAL</computeroutput></entry> <entry>Maximum time interval in seconds to trigger log rotation</entry> <entry>1 day</entry> </row> @@ -2273,6 +3126,110 @@ svccfg -s svc:/application/virtualbox/webservice:default setprop config/user=roo <computeroutput>--help</computeroutput>.</para> </sect2> + <sect2 id="vboxwatchdog-linux"> + <title>Linux: starting the watchdog service via <computeroutput>init</computeroutput></title> + + <para>On Linux, the watchdog service can be automatically started during + host boot by adding appropriate parameters to the file + <computeroutput>/etc/default/virtualbox</computeroutput>. + There is one mandatory parameter, <computeroutput>VBOXWATCHDOG_USER</computeroutput>, + which must be set to the user which will later start the VMs. For backward + compatibility you can also specify <computeroutput>VBOXBALLOONCTRL_USER</computeroutput>The + parameters in the table below all start with <computeroutput>VBOXWATCHDOG_</computeroutput> + (<computeroutput>VBOXWATCHDOG_BALLOON_INTERVAL</computeroutput>, + <computeroutput>VBOXWATCHDOG_LOGSIZE</computeroutput> etc., and for + previously existing parameters the + <computeroutput>VBOXBALLOONCTRL_INTERVAL</computeroutput> etc. parameters + can still be used): + <table> + <title>VirtualBox watchdog configuration parameters</title> + <tgroup cols="3"> + <thead> + <row> + <entry><emphasis role="bold">Parameter</emphasis></entry> + <entry><emphasis role="bold">Description</emphasis></entry> + <entry><emphasis role="bold">Default</emphasis></entry> + </row> + </thead> + <tbody> + <row> + <entry><computeroutput>USER</computeroutput></entry> + <entry>The user as which the watchdog service runs</entry> + <entry></entry> + </row> + <row> + <entry><computeroutput>ROTATE</computeroutput></entry> + <entry>Number of log files; 0 disables log rotation</entry> + <entry>10</entry> + </row> + <row> + <entry><computeroutput>LOGSIZE</computeroutput></entry> + <entry>Maximum size of a log file in bytes to trigger rotation</entry> + <entry>1MB</entry> + </row> + <row> + <entry><computeroutput>LOGINTERVAL</computeroutput></entry> + <entry>Maximum time interval in seconds to trigger log rotation</entry> + <entry>1 day</entry> + </row> + <row> + <entry><computeroutput>BALLOON_INTERVAL</computeroutput></entry> + <entry>Interval for checking the balloon size (msec)</entry> + <entry>30000</entry> + </row> + <row> + <entry><computeroutput>BALLOON_INCREMENT</computeroutput></entry> + <entry>Balloon size increment (MByte)</entry> + <entry>256</entry> + </row> + <row> + <entry><computeroutput>BALLOON_DECREMENT</computeroutput></entry> + <entry>Balloon size decrement (MByte)</entry> + <entry>128</entry> + </row> + <row> + <entry><computeroutput>BALLOON_LOWERLIMIT</computeroutput></entry> + <entry>Balloon size lower limit (MByte)</entry> + <entry>64</entry> + </row> + <row> + <entry><computeroutput>BALLOON_SAFETYMARGIN</computeroutput></entry> + <entry>Free memory required for decreasing the balloon size (MByte)</entry> + <entry>1024</entry> + </row> + </tbody> + </tgroup> + </table> + </para> + </sect2> + + <sect2 id="vboxwatchdog-solaris"> + <title>Solaris: starting the watchdog service via SMF</title> + + <para>On Solaris hosts, the VirtualBox watchdog service daemon is + integrated into the SMF framework. You can change the parameters, but + don't have to if the defaults already match your needs:<screen>svccfg -s svc:/application/virtualbox/balloonctrl:default setprop config/balloon_interval=10000 +svccfg -s svc:/application/virtualbox/balloonctrl:default setprop config/balloon_safetymargin=134217728</screen></para> + + <para>The table in the previous section showing the parameter names and + defaults also applies to Solaris. The parameter names must be changed + to lowercase and a prefix of <computeroutput>config/</computeroutput> + has to be added, e.g. <computeroutput>config/user</computeroutput> or + <computeroutput>config/balloon_safetymargin</computeroutput>. If you made any + change, don't forget to run the following command to put the changes into + effect immediately:<screen>svcadm refresh svc:/application/virtualbox/balloonctrl:default</screen></para> + + <para>If you forget the above command then the previous settings will + be used when enabling the service. Check the current property settings + with:<screen>svcprop -p config svc:/application/virtualbox/balloonctrl:default</screen></para> + + <para>When everything is configured correctly you can start the + VirtualBox watchdog service with the following command:<screen>svcadm enable svc:/application/virtualbox/balloonctrl:default</screen></para> + + <para>For more information about SMF, please refer to the Solaris + documentation.</para> + </sect2> + </sect1> <sect1 id="otherextpacks"> @@ -2302,7 +3259,7 @@ svccfg -s svc:/application/virtualbox/webservice:default setprop config/user=roo differently. VNC can only deal with password authentication, and there is no option to use password hashes. This leaves no other choice than having a clear-text password in the VM configuration, which can be set with - the following command:<screen>VBoxManage modifyvm VMNAME --vrdeproperty VNCPassword=secret</screen></para> + the following command:<screen>VBoxManage modifyvm "VM name" --vrdeproperty VNCPassword=secret</screen></para> <para>The user is responsible for keeping this password secret, and it should be removed when a VM configuration is passed to another person, @@ -2334,12 +3291,12 @@ svccfg -s svc:/application/virtualbox/webservice:default setprop config/user=roo which points the service to the autostart configuration file which is used during boot to determine whether to allow individual users to start a VM automatically and configure startup delays. - The config file can be placed in <computeroutput>/etc/vbox</computeroutput> + The configuration file can be placed in <computeroutput>/etc/vbox</computeroutput> and contains several options. One is <computeroutput>default_policy</computeroutput> which controls whether the autostart service allows or denies to start a VM for users which are not in the exception list. The exception list starts with <computeroutput>exception_list</computeroutput> - and contains a comma seperated list with usernames. Furthermore a separate + and contains a comma separated list with usernames. Furthermore a separate startup delay can be configured for every user to avoid overloading the host. A sample configuration is given below:</para> @@ -2401,4 +3358,119 @@ alice = { url="http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPSystemStartup/BPSystemStartup.html">http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPSystemStartup/BPSystemStartup.html</ulink></literal>.</para> </sect2> </sect1> + + <sect1 id="vboxexpertstoragemgmt"> + <title>VirtualBox expert storage management</title> + + <para>In case the snapshot model of VirtualBox is not sufficient + it is possible to enable a special mode which makes it possible to + reconfigure storage attachments while the VM is paused. + The user has to make sure that the disk data stays consistent to the guest + because unlike with hotplugging the guest is not informed about detached + or newly attached media.</para> + + <para>The expert storage management mode can be enabled per VM executing:</para> + + <screen>VBoxManage setextradata "VM name" "VBoxInternal2/SilentReconfigureWhilePaused" 1</screen> + + <para>Storage attachments can be reconfigured while the VM is paused afterwards using:</para> + <screen>VBoxManage storageattach ...</screen> + </sect1> + + <sect1 id="hostpowertweaks"> + <title>Handling of host power management events</title> + + <para>Some host power management events are handled by VirtualBox. The + actual behavior depends on the platform:</para> + + <para> + <glosslist> + <glossentry> + <glossterm>Host Suspends</glossterm> + <glossdef> + <para> + This event is generated when the host is about to suspend, that is, + the host saves the state to some non-volatile storage and powers off. + </para> + <para> + This event is currently only handled on Windows hosts and Mac OS X hosts. + When this event is generated, VirtualBox will pause all running VMs. + </para> + </glossdef> + </glossentry> + <glossentry> + <glossterm>Host Resumes</glossterm> + <glossdef> + <para> + This event is generated when the host woke up from the suspended + state. + </para> + <para> + This event is currently only handled on Windows hosts and Mac OS X hosts. + When this event is generated, VirtualBox will resume all VMs which + are where paused before. + </para> + </glossdef> + </glossentry> + <glossentry> + <glossterm>Battery Low</glossterm> + <glossdef> + <para> + The battery level reached a critical level (usually less than 5 + percent charged). + </para> + <para> + This event is currently only handled on Windows hosts and Mac OS X hosts. + When this event is generated, VirtualBox will save the state and + terminate all VMs in preperation of a potential host powerdown. + </para> + <para>The behavior can be configured. By executing the following command, + no VM is saved:</para> + <screen>VBoxManage setextradata global "VBoxInternal2/SavestateOnBatteryLow" 0</screen> + <para>This is a global setting as well as a per-VM setting. The per-VM + value has higher precedence than the global value. The following command + will save the state of all VMs but will not save the state of VM "foo":</para> + <screen>VBoxManage setextradata global "VBoxInternal2/SavestateOnBatteryLow" 1 +VBoxManage setextradata "foo" "VBoxInternal2/SavestateOnBatteryLow" 0</screen> + <para>The first line is actually not required as by default the savestate + action is performed.</para> + </glossdef> + </glossentry> + </glosslist> + </para> + + </sect1> + + <sect1 id="sse412passthrough"> + <title>Experimental support for passing through SSE4.1 / SSE4.2 instructions</title> + <para> + To provide SSE 4.1 / SSE 4.2 support to guests, the host CPU has to + implement these instruction sets. Starting with VirtualBox 4.3.8 it is + possible to enable these instructions for certain guests using the + following commands:</para><screen>VBoxManage setextradata "VM name" VBoxInternal/CPUM/SSE4.1 1 +VBoxManage setextradata "VM name" VBoxInternal/CPUM/SSE4.2 1</screen> + <para> + These are a per-VM settings and they are turned off by default. + </para> + </sect1> + + <sect1 id="hidledssync"> + <title>Support for keyboard indicators synchronization</title> + + <para> + This feature makes the host keyboard lights match those of the virtual machine's virtual + keyboard when the machine window is selected. It is currently implemented for Mac OS X and + Windows hosts and available as of releases 4.2.24 and 4.3.8. The feature can be enabled using + the following command: + </para> + + <screen>VBoxManage setextradata "VM name" GUI/HidLedsSync "1"</screen> + + <para> + In order to disable it, use the same command but change "1" to "0", or use the VBoxManage + command to remove the extra data. This is a per-VM setting and it is disabled by default. + </para> + + </sect1> + </chapter> diff --git a/doc/manual/en_US/user_BasicConcepts.xml b/doc/manual/en_US/user_BasicConcepts.xml index ab9ddf5d..d6afb212 100644 --- a/doc/manual/en_US/user_BasicConcepts.xml +++ b/doc/manual/en_US/user_BasicConcepts.xml @@ -18,8 +18,8 @@ card, and, if you so choose, give the host system, other guests, or computers on the Internet access to the guest system.</para> - <sect1> - <title id="guestossupport">Supported guest operating systems</title> + <sect1 id="guestossupport"> + <title>Supported guest operating systems</title> <para>Since VirtualBox is designed to provide a generic virtualization environment for x86 systems, it may run operating systems of any kind, @@ -84,6 +84,15 @@ </glossentry> <glossentry> + <glossterm>Linux 3.x</glossterm> + + <glossdef> + <para>All versions/editions are fully supported (32 bits and 64 + bits). Guest Additions are available.</para> + </glossdef> + </glossentry> + + <glossentry> <glossterm>Solaris 10 (u6 and higher), Solaris 11 (including Solaris 11 Express)</glossterm> @@ -394,6 +403,19 @@ </glossentry> <glossentry> + <glossterm>Drag'n'Drop</glossterm> + <glossdef> + <para>This setting allows to enable Drag and Drop: Select a file + on the desktop, click the left mouse button, move the mouse + to the VM window and release the mouse button. The file is + copied from the host to the guest. This feature is currently + only implemented for Linux guests and only for copying files + from the host to the guest.<footnote><para>Support + for Drag'n'Drop was added with VirtualBox 4.2</para></footnote></para> + </glossdef> + </glossentry> + + <glossentry> <glossterm>Removable media: remember runtime changes</glossterm> <glossdef> @@ -415,6 +437,8 @@ seamless mode, control machine execution or enable certain devices. If you don't want to see the toolbar, disable this setting.</para> + <para>The second setting allows to show the toolbar at the top + of the screen instead of showing it at the bottom.</para> </glossdef> </glossentry> </glosslist></para> @@ -428,6 +452,8 @@ you may find this space useful to note down things like the configuration of a virtual machine and the software that has been installed into it.</para> + <para>To insert a line break into the description text field, press + <emphasis>Shift+Enter</emphasis>.</para> </sect2> </sect1> @@ -496,7 +522,7 @@ as Mac OS X, that old chipset is no longer well supported. As a result, VirtualBox 4.0 introduced an emulation of the more modern ICH9 chipset, which supports PCI express, three PCI - buses, PCI-to-PCI bridges and Message Signalled Interrupts + buses, PCI-to-PCI bridges and Message Signaled Interrupts (MSI). This allows modern operating systems to address more PCI devices and no longer requires IRQ sharing. Note that the ICH9 support is experimental and not recommended for guest operating @@ -505,6 +531,31 @@ </glossentry> <glossentry> + <glossterm>Pointing Device</glossterm> + + <glossdef> + <para>The default virtual pointing devices for older guests is the + traditional PS/2 mouse. If set to <emphasis>USB tablet</emphasis>, + VirtualBox reports to the virtual machine that a USB tablet + device is present and communicates mouse events to + the virtual machine through this device. The third setting is + a <emphasis>USB Multi-Touch Tablet</emphasis> which is suited + for recent Windows guests.</para> + + <para>Using the virtual USB tablet has the advantage that + movements are reported in absolute coordinates (instead of as + relative position changes), which allows VirtualBox to translate + mouse events over the VM window into tablet events without + having to "capture" the mouse in the guest as described in <xref + linkend="keyb_mouse_normal" />. This makes using the VM less + tedious even if Guest Additions are not installed.<footnote> + <para>The virtual USB tablet was added with VirtualBox 3.2. + Depending on the guest operating system selected, this is + now enabled by default for new virtual machines.</para> + </footnote></para> + </glossdef> + </glossentry> + <glossentry> <glossterm>Enable I/O APIC</glossterm> <glossdef> @@ -558,29 +609,6 @@ </glossdef> </glossentry> - <glossentry> - <glossterm>Enable absolute pointing device</glossterm> - - <glossdef> - <para>If enabled, VirtualBox reports to the virtual machine that - a USB tablet device is present and communicates mouse events to - the virtual machine through this device. If disabled, mouse - events are communicated through a traditional PS/2 virtual mouse - device.</para> - - <para>Using the virtual USB tablet has the advantage that - movements are reported in absolute coordinates (instead of as - relative position changes), which allows VirtualBox to translate - mouse events over the VM window into tablet events without - having to "capture" the mouse in the guest as described in <xref - linkend="keyb_mouse_normal" />. This makes using the VM less - tedious even if Guest Additions are not installed.<footnote> - <para>The virtual USB tablet was added with VirtualBox 3.2. - Depending on the guest operating system selected, this is - now enabled by default for new virtual machines.</para> - </footnote></para> - </glossdef> - </glossentry> </glosslist></para> <para>In addition, you can turn off the <emphasis role="bold">Advanced @@ -610,13 +638,14 @@ virtual machine.</para> <para>You should not, however, configure virtual machines to use more - CPU cores than you have available physically.</para> + CPU cores than you have available physically (real cores, no hyperthreads).</para> - <para>On this tab you can also set the CPU execution cap. This setting + <para>On this tab you can also set the <emphasis role="bold">"CPU execution + cap"</emphasis>. This setting limits the amount of time a host CPU spents to emulate a virtual CPU. The default setting is 100% meaning that there is no limitation. A setting of 50% implies a single virtual CPU can use up to 50% of a single host - CPU. Notet that limiting the execution time of the virtual CPUs may induce + CPU. Note that limiting the execution time of the virtual CPUs may induce guest timing problems.</para> <para>In addition, the <emphasis role="bold">"Enable PAE/NX"</emphasis> @@ -761,6 +790,16 @@ <xref linkend="vrde" />.</para> </glossdef> </glossentry> + + <glossentry> + <glossterm>Video Capture</glossterm> + + <glossdef> + <para>Under the "Video Capture" tab you can enable video capturing + for this VM. Note that this feature can also be enabled/disabled + while the VM is executed.</para> + </glossdef> + </glossentry> </glosslist> </sect1> @@ -946,7 +985,7 @@ <para>On a Linux host, depending on your host configuration, you can also select between the OSS, ALSA or the PulseAudio subsystem. On newer Linux - distributions (Fedora 8 and above, Ubuntu 8.04 and above) the PulseAudio + distributions (Fedora 8 and above, Ubuntu 8.04 and above), the PulseAudio subsystem should be preferred.</para> </sect1> @@ -1331,8 +1370,8 @@ <para>To control GOP, use the following <computeroutput>VBoxManage</computeroutput> command: <screen>VBoxManage setextradata "VM name" VBoxInternal2/EfiGopMode N</screen> - Where N can be one of 0,1,2,3,4 referring to the 640x480, 800x600, - 1024x768, 1280x1024, 1440x900 screen resolution respectively.</para> + Where N can be one of 0,1,2,3,4,5 referring to the 640x480, 800x600, + 1024x768, 1280x1024, 1440x900, 1920x1200 screen resolution respectively.</para> <para>To change the UGA resolution: <screen>VBoxManage setextradata "VM name" VBoxInternal2/UgaHorizontalResolution 1440 VBoxManage setextradata "VM name" VBoxInternal2/UgaVerticalResolution 900</screen></para> diff --git a/doc/manual/en_US/user_Frontends.xml b/doc/manual/en_US/user_Frontends.xml index ffecc955..118d2804 100644 --- a/doc/manual/en_US/user_Frontends.xml +++ b/doc/manual/en_US/user_Frontends.xml @@ -4,11 +4,11 @@ <chapter> <title>Remote virtual machines</title> - <sect1> - <title id="vrde">Remote display (VRDP support)</title> + <sect1 id="vrde"> + <title>Remote display (VRDP support)</title> <para>VirtualBox can display virtual machines remotely, meaning that a - virtual machine can execute on one machine even though the machine will be + virtual machine can execute on one computer even though the machine will be displayed on a second computer, and the machine will be controlled from there as well, as if the virtual machine was running on that second computer.</para> @@ -28,10 +28,8 @@ VirtualBox before 4.0 did.</para> <para>VRDP is a backwards-compatible extension to Microsoft's Remote - Desktop Protocol (RDP). Typically graphics updates and audio are sent from - the remote machine to the client, while keyboard and mouse events are sent - back. As a result, you can use any standard RDP client to control the - remote VM.</para> + Desktop Protocol (RDP). As a result, you can use any standard RDP client + to control the remote VM.</para> <para>Even when the extension is installed, the VRDP server is disabled by default. It can easily be enabled on a per-VM basis either in the @@ -43,6 +41,35 @@ further below), VRDP support will be automatically enabled since VBoxHeadless has no other means of output.</para> + <para>By default, the VRDP server uses TCP port + <computeroutput>3389</computeroutput>. You will need to change the + default port if you run more than one VRDP server, since the port can + only be used by one server at a time; you might also need to change it + on Windows hosts since the default port might already be used by the RDP + server that is built into Windows itself. Ports 5000 through 5050 are + typically not used and might be a good choice.</para> + + <para>The port can be changed either in the "Display" settings of the + graphical user interface or with + <computeroutput>--vrdeport</computeroutput> option of the + <computeroutput>VBoxManage modifyvm</computeroutput> command. You can + specify a comma-separated list of ports or ranges of ports. Use a dash + between two port numbers to specify a range. The VRDP server will bind + to <emphasis role="bold">one</emphasis> of available ports from the + specified list. For example, <computeroutput>VBoxManage modifyvm "VM + name" --vrdeport 5000,5010-5012</computeroutput> will configure the + server to bind to one of the ports 5000, 5010, 5011 or 5012. See <xref + linkend="vboxmanage-modifyvm-vrde" /> for details.</para> + + <para>The actual port used by a running VM can be either queried with + <computeroutput>VBoxManage showvminfo</computeroutput> command or seen + in the GUI on the "Runtime" tab of the "Session Information Dialog", + which is accessible via the "Machine" menu of the VM window.</para> + + <para>Support for IPv6 has been implemented in VirtualBox 4.3. + If the host OS supports IPv6 the VRDP server will automatically + listen for IPv6 connections in addition to IPv4.</para> + <sect2 id="rdp-viewers"> <title>Common third-party RDP viewers</title> @@ -52,32 +79,7 @@ <emphasis role="bold">IP address</emphasis> of your <emphasis>host</emphasis> system (not of the virtual machine!) as the server address to connect to, as well as the <emphasis role="bold">port - number</emphasis> that the RDP server is using.</para> - - <para>By default, VRDP uses TCP port - <computeroutput>3389</computeroutput>. You will need to change the - default port if you run more than one VRDP server, since the port can - only be used by one server at a time; you might also need to change it - on Windows hosts since the default port might already be used by the RDP - server that is built into Windows itself. Ports 5000 through 5050 are - typically not used and might be a good choice.</para> - - <para>The port can be changed either in the "Display" settings of the - graphical user interface or with - <computeroutput>--vrdeport</computeroutput> option of the - <computeroutput>VBoxManage modifyvm</computeroutput> command. You can - specify a comma-separated list of ports or ranges of ports. Use a dash - between two port numbers to specify a range. The VRDP server will bind - to <emphasis role="bold">one</emphasis> of available ports from the - specified list. For example, <computeroutput>VBoxManage modifyvm "VM - name" --vrdeport 5000,5010-5012</computeroutput> will configure the - server to bind to one of the ports 5000, 5010, 5011 or 5012. See <xref - linkend="vboxmanage-modifyvm" /> for details.</para> - - <para>The actual port used by a running VM can be either queried with - <computeroutput>VBoxManage showvminfo</computeroutput> command or seen - in the GUI on the "Runtime" tab of the "Session Information Dialog", - which is accessible via the "Machine" menu of the VM window.</para> + number</emphasis> that the VRDP server is using.</para> <para>Here follow examples for the most common RDP viewers:<itemizedlist> <listitem> @@ -87,10 +89,15 @@ (press the Windows key and "R") and typing "mstsc". You can also find it under "Start" -> "All Programs" -> "Accessories" -> "Remote Desktop Connection". If you use the "Run" dialog, - you can type in options directly:<screen>mstsc 1.2.3.4[:3389]</screen></para> + you can type in options directly:<screen>mstsc 1.2.3.4:3389</screen></para> + + <para>Replace <computeroutput>1.2.3.4</computeroutput> with the host IP address, + and <computeroutput>3389</computeroutput> with a different port if necessary.</para> - <para>Replace "1.2.3.4" with the host IP address, and 3389 with a - different port if necessary.</para> + <note> + <para>IPv6 address must be enclosed in square brackets to specify a port. + For example: <computeroutput>mstsc [fe80::1:2:3:4]:3389</computeroutput></para> + </note> <note> <para>When connecting to localhost in order to test the @@ -113,8 +120,8 @@ <para>With rdesktop, use a command line such as the following:<screen>rdesktop -a 16 -N 1.2.3.4:3389</screen></para> - <para>As said for the Microsoft viewer above, replace "1.2.3.4" - with the host IP address, and 3389 with a different port if + <para>As said for the Microsoft viewer above, replace <computeroutput>1.2.3.4</computeroutput> + with the host IP address, and <computeroutput>3389</computeroutput> with a different port if necessary. The <computeroutput>-a 16</computeroutput> option requests a color depth of 16 bits per pixel, which we recommend. (For best performance, after installation of the guest operating @@ -126,11 +133,11 @@ <listitem> <para>If you run the KDE desktop, you might prefer <computeroutput>krdc</computeroutput>, the KDE RDP viewer. The - command line would look like this:<screen>krdc --window --high-quality rdp:/1.2.3.4[:3389]</screen></para> + command line would look like this:<screen>krdc rdp://1.2.3.4:3389</screen></para> - <para>Again, replace "1.2.3.4" with the host IP address, and 3389 - with a different port if necessary. The "rdp:/" bit is required - with krdc to switch it into RDP mode.</para> + <para>Again, replace <computeroutput>1.2.3.4</computeroutput> with the host IP address, + and <computeroutput>3389</computeroutput> with a different port if necessary. + The "rdp://" bit is required with krdc to switch it into RDP mode.</para> </listitem> <listitem> @@ -168,7 +175,7 @@ </footnote></para> <para>To start a virtual machine with - <computeroutput>VBoxHeadless</computeroutput>, you have two + <computeroutput>VBoxHeadless</computeroutput>, you have three options:</para> <itemizedlist> @@ -181,7 +188,7 @@ </listitem> <listitem> - <para>The alternative is to use + <para>One alternative is to use <computeroutput>VBoxHeadless</computeroutput> directly, as follows:<screen>VBoxHeadless --startvm <uuid|name></screen></para> @@ -194,6 +201,14 @@ which has to be done explicitly when directly starting <computeroutput>VBoxHeadless</computeroutput>.</para> </listitem> + + <listitem> + <para>The other alternative is to start + <computeroutput>VBoxHeadless</computeroutput> from the VirtualBox + Manager GUI, by holding the Shift key when starting a virtual + machine. + </para> + </listitem> </itemizedlist> <para>Note that when you use diff --git a/doc/manual/en_US/user_Glossary.xml b/doc/manual/en_US/user_Glossary.xml index 10106d17..26bc0800 100644 --- a/doc/manual/en_US/user_Glossary.xml +++ b/doc/manual/en_US/user_Glossary.xml @@ -228,7 +228,7 @@ <glossterm>MSI</glossterm> <glossdef> - <para>Message Signalled Interrupts, as supported by modern chipsets + <para>Message Signaled Interrupts, as supported by modern chipsets such as the ICH9; see <xref linkend="settings-motherboard" />. As opposed to traditional pin-based interrupts, with MSI, a small amount of data can accompany the actual interrupt message. This reduces the diff --git a/doc/manual/en_US/user_GuestAdditions.xml b/doc/manual/en_US/user_GuestAdditions.xml index cfd25c54..740ee74a 100644 --- a/doc/manual/en_US/user_GuestAdditions.xml +++ b/doc/manual/en_US/user_GuestAdditions.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"> -<chapter> - <title id="guestadditions">Guest Additions</title> +<chapter id="guestadditions"> + <title>Guest Additions</title> <para>The previous chapter covered getting started with VirtualBox and installing operating systems in a virtual machine. For any serious and @@ -220,7 +220,7 @@ <listitem> <para>Microsoft Windows 8 (all editions)</para> </listitem> - + <listitem> <para>Microsoft Windows Server 2012</para> </listitem> @@ -231,11 +231,12 @@ <title>Installation</title> <para>In the "Devices" menu in the virtual machine's menu bar, - VirtualBox has a handy menu item named "Install guest additions", + VirtualBox has a handy menu item named "Insert Guest Additions CD image", which mounts the Guest Additions ISO file inside your virtual machine. A Windows guest should then automatically start the Guest Additions installer, which installs the Guest Additions into your Windows - guest.</para> + guest. Other guest operating systems (or if automatic start of + software on CD is disabled) need manual start of the installer.</para> <note> <para>For the basic Direct3D acceleration to work in a Windows Guest, you @@ -354,6 +355,118 @@ <sect3> <title>Unattended Installation</title> + <para>As a prerequiste for performing an unattended installation of the + VirtualBox Guest Additions on a Windows guest, there need to be + Oracle CA (Certificate Authority) + certificates installed in order to prevent user intervention popus which + will undermine a silent installation.</para> + + <note>On some Windows versions like Windows 2000 and Windows XP the user intervention + popups mentioned above always will be displayed, even after importing the Oracle certificates.</note> + + <para>Since VirtualBox 4.2 installing those CA certificates on a Windows + guest can be done in an automated fashion using the + <computeroutput>VBoxCertUtil.exe</computeroutput> utility found on the Guest + Additions installation CD in the <computeroutput>cert</computeroutput> + folder:</para> + + <itemizedlist> + <listitem> + <para>Log in as Administrator on the guest.</para> + </listitem> + + <listitem> + <para>Mount the VirtualBox Guest Additions .ISO.</para> + </listitem> + + <listitem> + <para>Open a command line window on the guest and change to + the <computeroutput>cert</computeroutput> folder on the VirtualBox + Guest Additions CD.</para> + </listitem> + + <listitem> + <para>Do<screen>VBoxCertUtil add-trusted-publisher oracle-vbox.cer --root oracle-vbox.cer</screen></para> + <para>This will install the certificates to the certificate store. When installing the same certificate + more than once, an appropriate error will be displayed.</para> + </listitem> + </itemizedlist> + + <para>Prior to VirtualBox 4.2 the Oracle CA certificates need to be imported in more manual style + using the <computeroutput>certutil.exe</computeroutput> utility, which is shipped since Windows + Vista. For Windows versions before Vista you need to download and install <computeroutput>certutil.exe</computeroutput> + manually. Since the certificates are not accompanied on the VirtualBox Guest Additions CD-ROM + prior to 4.2, these need to get extracted from a signed VirtualBox executable first.</para> + + <para>In the following example the needed certificates will be extracted from the VirtualBox + Windows Guest Additions installer on the CD-ROM:</para> + + <sect4> + <title>VeriSign Code Signing CA</title> + <itemizedlist> + <listitem> + <para>In the Windows Explorer, right click on VBoxWindowsAdditions-<Architecture>.exe, + click on "Properties"</para> + </listitem> + <listitem> + <para>Go to tab "Digital Signatures", choose "Oracle Corporation" and click on "Details"</para> + </listitem> + <listitem> + <para>In tab "General" click on "View Certificate"</para> + </listitem> + <listitem> + <para>In tab "Certification Path" select "VeriSign Class 3 Public Primary CA"</para> + </listitem> + <listitem> + <para>Click on "View Certificate"</para> + </listitem> + <listitem> + <para>In tab "Details" click on "Copy to File ..."</para> + </listitem> + <listitem> + <para>In the upcoming wizard choose "DER encoded binary X.509 (.CER)" + and save the certificate file to a local path, finish the wizard</para> + </listitem> + <listitem> + <para>Close certificate dialog for "Verisign Class 3 Code Signing + 2010 CA"</para> + </listitem> + </itemizedlist> + </sect4> + + <sect4> + <title>Oracle Corporation</title> + <itemizedlist> + <listitem> + <para>In the Windows Explorer, right click on VBoxWindowsAdditions-<Architecture>.exe, + click on "Properties"</para> + </listitem> + <listitem> + <para>Go to tab "Digital Signatures", choose "Oracle Corporation" and click on "Details"</para> + </listitem> + <listitem> + <para>In tab "General" click on "View Certificate"</para> + </listitem> + <listitem> + <para>In tab "Details" click on "Copy to File ..."</para> + </listitem> + <listitem> + <para>In the upcoming wizard choose "DER encoded binary X.509 (.CER)" + and save the certificate file to a local path, finish the wizard</para> + </listitem> + <listitem> + <para>Close certificate dialog for "Oracle Corporation"</para> + </listitem> + </itemizedlist> + </sect4> + + <para>After exporting the two certificates above they can be imported into the + certificate store using the <computeroutput>certutil.exe</computeroutput> + utility:</para> + + <para><computeroutput>certutil -addstore -f Root "<Path to exported + certificate file>"</computeroutput></para> + <para>In order to allow for completely unattended guest installations, you can specify a command line parameter to the install launcher:</para> @@ -363,11 +476,15 @@ <para>This automatically installs the right files and drivers for the corresponding platform (32- or 64-bit).</para> - <note> - <para>Because of the drivers are not yet WHQL certified, you still - might get some driver installation popups, depending on the Windows - guest version.</para> - </note> + <note><para>By default on an unattended installation on a Windows 7 or 8 + guest, there will be the XPDM graphics driver installed. This graphics + driver does not support Windows Aero / Direct3D on the guest - instead the + experimental WDDM graphics driver needs to be installed. To select this + driver by default, add the command line parameter + <computeroutput>/with_wddm</computeroutput> when invoking the Windows + Guest Additions installer.</para></note> + <note><para>For Windows Aero to run correctly on a guest, the guest's + VRAM size needs to be configured to at least 128 MB.</para></note> <para>For more options regarding unattended guest installations, consult the command line help by using the command:</para> @@ -405,6 +522,10 @@ <itemizedlist> <listitem> + <para>Oracle Linux as of version 5 including UEK kernels;</para> + </listitem> + + <listitem> <para>Fedora as of Fedora Core 4;</para> </listitem> @@ -645,8 +766,7 @@ </sect4> <sect4> - <title>CentOS, Red Hat Enterprise Linux and Oracle - Enterprise Linux</title> + <title>Oracle Linux, Red Hat Enterprise Linux and CentOS</title> <para><orderedlist> <listitem> @@ -664,7 +784,9 @@ <listitem> <para>Install the GNU C compiler and the kernel development packages using <screen>yum install gcc</screen> followed by - <screen>yum install kernel-devel</screen></para> + <screen>yum install kernel-devel</screen> For Oracle UEK + kernels, use <screen>yum install kernel-uek-devel</screen> + to install the UEK kernel headers.</para> </listitem> <listitem> @@ -673,7 +795,7 @@ </listitem> <listitem> - <para>In case Oracle Enterprise Linux does not find the + <para>In case Oracle Linux does not find the required packages, you either have to install them from a different source (e.g. DVD) or use Oracle's public Yum server located at <ulink @@ -735,7 +857,7 @@ version 11) or a later version. The layout of the guest screens can be adjusted as needed using the tools which come with the guest operating system.</para> - + <para>If you want to understand more about the details of how the X.Org drivers are set up (in particular if you wish to use them in a setting which our installer doesn't handle correctly), you should read @@ -1031,13 +1153,16 @@ $</screen> <screen>iocharset CHARSET</screen> - <para>to set the character set used for I/O operations (utf8 by - default) and</para> + <para>to set the character set used for I/O operations. Note that + on Linux guests, if the "iocharset" option is not specified then + the Guest Additions driver will attempt to use the character set + specified by the CONFIG_NLS_DEFAULT kernel option. If this option + is not set either then UTF-8 will be used. Also,</para> <screen>convertcp CHARSET</screen> - <para>to specify the character set used for the shared folder name - (utf8 by default).</para> + <para>is available in order to specify the character set used for + the shared folder name (utf8 by default).</para> <para>The generic mount options (documented in the mount manual page) apply also. Especially useful are the options @@ -1126,7 +1251,7 @@ $</screen> 2.1; support for Linux and Solaris followed with VirtualBox 2.2. With VirtualBox 3.0, Direct3D 8/9 support was added for Windows guests. OpenGL 2.0 is now supported as well. - With VirtualBox 4.1 Windows Aero theme support is added for + With VirtualBox 4.1 Windows Aero theme support is added for Windows Vista and Windows 7 guests (experimental)</para> </footnote></para> @@ -1201,26 +1326,26 @@ $</screen> </orderedlist></para> <para>With VirtualBox 4.1, Windows Aero theme support is added for - Windows Vista and Windows 7 guests. To enable Aero theme support, - the experimental VirtualBox WDDM video driver must be installed, + Windows Vista and Windows 7 guests. To enable Aero theme support, + the experimental VirtualBox WDDM video driver must be installed, which is available with the Guest Additions installation. Since the WDDM video driver is still experimental at this time, it is not installed by default and must be <emphasis role="bold">manually selected</emphasis> in the Guest Additions installer by answering "No" - int the "Would you like to install basic Direct3D support" dialog + int the "Would you like to install basic Direct3D support" dialog displayed when the Direct3D feature is selected. <note><para>Unlike the current basic Direct3D support, the WDDM video driver installation does <emphasis role="bold">not</emphasis> require the "Safe Mode".</para></note> <para>The Aero theme is not enabled by default. To enable it<itemizedlist> <listitem> - <para>In Windows Vista guest: right-click on the desktop, in the - contect menu select "Personalize", then select "Windows Color and Appearance" - in the "Personalization" window, in the "Appearance Settings" dialog select + <para>In Windows Vista guest: right-click on the desktop, in the + context menu select "Personalize", then select "Windows Color and Appearance" + in the "Personalization" window, in the "Appearance Settings" dialog select "Windows Aero" and press "OK"</para></listitem> <listitem> - <para>In Windows 7 guest: right-click on the desktop, in the - contect menu select "Personalize" and select any Aero theme + <para>In Windows 7 guest: right-click on the desktop, in the + context menu select "Personalize" and select any Aero theme in the "Personalization" window</para></listitem> </itemizedlist> </para> @@ -1422,8 +1547,7 @@ VirtualBox Command Line Management Interface Version $VBOX_VERSION_MAJOR.$VBOX_V (C) 2005-$VBOX_C_YEAR $VBOX_VENDOR All rights reserved. -Value: Windows Vista Business Edition -</screen></para> +Value: Windows Vista Business Edition</screen></para> <para>To add or change guest properties from the guest, use the tool <computeroutput>VBoxControl</computeroutput>. This tool is included in the diff --git a/doc/manual/en_US/user_Installation.xml b/doc/manual/en_US/user_Installation.xml index 0966e1cf..aa1ffd99 100644 --- a/doc/manual/en_US/user_Installation.xml +++ b/doc/manual/en_US/user_Installation.xml @@ -228,8 +228,8 @@ </sect2> </sect1> - <sect1> - <title id="install-linux-host">Installing on Linux hosts</title> + <sect1 id="install-linux-host"> + <title>Installing on Linux hosts</title> <sect2> <title>Prerequisites</title> @@ -244,7 +244,7 @@ <itemizedlist> <listitem> - <para>Qt 4.4.0 or higher;</para> + <para>Qt 4.6.2 or higher;</para> </listitem> <listitem> @@ -389,10 +389,10 @@ <para>First, download the appropriate package for your distribution. The following examples assume that you are installing to a 32-bit - Ubuntu Karmic system. Use <computeroutput>dpkg</computeroutput> to + Ubuntu Raring system. Use <computeroutput>dpkg</computeroutput> to install the Debian package:</para> - <screen>sudo dpkg -i VirtualBox-3.2_$VBOX_VERSION_STRING_Ubuntu_karmic_i386.deb</screen> + <screen>sudo dpkg -i VirtualBox-3.2_$VBOX_VERSION_STRING_Ubuntu_raring_i386.deb</screen> <para>You will be asked to accept the VirtualBox Personal Use and Evaluation License. Unless you answer "yes" here, the installation @@ -466,7 +466,7 @@ <listitem> <para>It creates - <computeroutput>/etc/udev/rules.d/10-vboxdrv.rules</computeroutput>, + <computeroutput>/etc/udev/rules.d/60-vboxdrv.rules</computeroutput>, a description file for udev, if that is present, which makes the USB devices accessible to all users in the <computeroutput>vboxusers</computeroutput> group.</para> @@ -625,8 +625,8 @@ virtualbox virtualbox/delete-old-modules boolean true</screen>The first line installation options provided by VirtualBox.</para> </sect3> - <sect3> - <title id="linux_install_opts">Automatic installation options</title> + <sect3 id="linux_install_opts"> + <title>Automatic installation options</title> <para>To configure the installation process of our .deb and .rpm packages, you can create a response file named @@ -652,10 +652,6 @@ virtualbox virtualbox/delete-old-modules boolean true</screen>The first line management or at the command line with</para> <screen>sudo usermod -a -G vboxusers username</screen> - - <para>Note that adding an active user to that group will require that - user to log out and back in again. This should be done manually after - successful installation of the package.</para> </sect2> <sect2 id="startingvboxonlinux"> @@ -696,8 +692,8 @@ virtualbox virtualbox/delete-old-modules boolean true</screen>The first line </sect2> </sect1> - <sect1> - <title id="install-solaris-host">Installing on Solaris hosts</title> + <sect1 id="install-solaris-host"> + <title>Installing on Solaris hosts</title> <para>For the specific versions of Solaris that we support as host operating systems, please refer to <xref @@ -705,7 +701,7 @@ virtualbox virtualbox/delete-old-modules boolean true</screen>The first line <para>If you have a previously installed instance of VirtualBox on your Solaris host, please uninstall it first before installing a new instance. - Refer to <xref linkend="uninstallsolhost" /> for uninstall + Refer to <xref linkend="uninstall-solaris-host" /> for uninstall instructions.</para> <sect2> @@ -733,7 +729,7 @@ virtualbox virtualbox/delete-old-modules boolean true</screen>The first line the current zone and not into any other zone, use <computeroutput>pkgadd -G</computeroutput>. For more information refer to the <computeroutput>pkgadd</computeroutput> manual; see also <xref - linkend="solariszones" />.</para> + linkend="solaris-zones" />.</para> </note> <para>The installer will then prompt you to enter the package you wish @@ -789,8 +785,8 @@ virtualbox virtualbox/delete-old-modules boolean true</screen>The first line the terminal.</para> </sect2> - <sect2> - <title id="uninstallsolhost">Uninstallation</title> + <sect2 id="uninstall-solaris-host"> + <title>Uninstallation</title> <para>Uninstallation of VirtualBox on Solaris requires root permissions. To perform the uninstallation, start a root terminal session and @@ -826,9 +822,8 @@ virtualbox virtualbox/delete-old-modules boolean true</screen>The first line <screen>pkgrm -n -a /opt/VirtualBox/autoresponse SUNWvbox</screen> </sect2> - <sect2> - <title id="solariszones">Configuring a zone for running - VirtualBox</title> + <sect2 id="solaris-zones"> + <title>Configuring a zone for running VirtualBox</title> <para>Starting with VirtualBox 1.6 it is possible to run VirtualBox from within Solaris zones. For an introduction of Solaris zones, please refer @@ -865,4 +860,4 @@ zonecfg:vboxzone>exit</screen> VirtualBox from within the configured zone.</para> </sect2> </sect1> -</chapter>
\ No newline at end of file +</chapter> diff --git a/doc/manual/en_US/user_Introduction.xml b/doc/manual/en_US/user_Introduction.xml index e4f4b03d..a91e4f71 100644 --- a/doc/manual/en_US/user_Introduction.xml +++ b/doc/manual/en_US/user_Introduction.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"> -<chapter> - <title id="Introduction">First steps</title> +<chapter id="Introduction"> + <title>First steps</title> <para>Welcome to $VBOX_PRODUCT!</para> @@ -104,8 +104,8 @@ </itemizedlist> </sect1> - <sect1> - <title id="virtintro">Some terminology</title> + <sect1 id="virtintro"> + <title>Some terminology</title> <para>When dealing with virtualization (and also for understanding the following chapters of this documentation), it helps to acquaint oneself @@ -323,6 +323,18 @@ </listitem> <listitem> + <para><emphasis role="bold">VM groups.</emphasis> VirtualBox provides a + groups feature that enables the user to organize virtual machines + collectively, as well as individually. In addition to basic groups, it + is also possible for any VM to be in more than one group, and for + groups to be nested in a hierarchy -- i.e. groups of groups. In + general, the operations that can be performed on groups are the same as + those that can be applied to individual VMs i.e. Start, Pause, Reset, + Close (Save state, Send Shutdown, Poweroff), Discard Saved State, Show + in fileSystem, Sort.</para> + </listitem> + + <listitem> <para><emphasis role="bold">Clean architecture; unprecedented modularity.</emphasis> VirtualBox has an extremely modular design with well-defined internal programming interfaces and a clean separation of @@ -377,8 +389,8 @@ </itemizedlist> </sect1> - <sect1> - <title id="hostossupport">Supported host operating systems</title> + <sect1 id="hostossupport"> + <title>Supported host operating systems</title> <para>Currently, VirtualBox runs on the following host operating systems:</para> @@ -440,6 +452,10 @@ <para>10.8 (Mountain Lion, 64-bit)</para> </listitem> + <listitem> + <para>10.9 (Mavericks, 64-bit)</para> + </listitem> + </itemizedlist> <para>Intel hardware is required; please see <xref @@ -453,27 +469,26 @@ 1.4.</para> </footnote>). Among others, this includes:<itemizedlist> <listitem> - <para>8.04 ("Hardy Heron"), - 8.10 ("Intrepid Ibex"), 9.04 ("Jaunty Jackalope"), 9.10 ("Karmic - Koala"), 10.04 ("Lucid Lynx"), 10.10 ("Maverick Meerkat), + <para>10.04 ("Lucid Lynx"), 10.10 ("Maverick Meerkat), 11.04 ("Natty Narwhal"), 11.10 ("Oneiric Oncelot"), - 12.04 ("Precise Pangolin")</para> + 12.04 ("Precise Pangolin"), 12.10 ("Quantal Quetzal"), + 13.04 ("Raring Ringtail"), 13.10 ("Saucy Salamander")</para> </listitem> <listitem> - <para>Debian GNU/Linux 5.0 ("lenny") and 6.0 ("squeeze")</para> + <para>Debian GNU/Linux 6.0 ("squeeze") and 7.0 ("wheezy")</para> </listitem> <listitem> - <para>Oracle Enterprise Linux 4 and 5, Oracle Linux 6</para> + <para>Oracle Enterprise Linux 5, Oracle Linux 6</para> </listitem> <listitem> - <para>Redhat Enterprise Linux 4, 5 and 6</para> + <para>Redhat Enterprise Linux 5 and 6</para> </listitem> <listitem> - <para>Fedora Core 4 to 17</para> + <para>Fedora Core 6 to 19</para> </listitem> <listitem> @@ -490,7 +505,7 @@ </itemizedlist></para> <para>It should be possible to use VirtualBox on most systems based on - Linux kernel 2.6 using either the VirtualBox installer or by doing a + Linux kernel 2.6 or 3.x using either the VirtualBox installer or by doing a manual installation; see <xref linkend="install-linux-host" />. However, the formally tested and supported Linux distributions are those for which we offer a dedicated package.</para> @@ -500,8 +515,8 @@ </listitem> <listitem> - <para><emphasis role="bold">Solaris</emphasis> hosts (32-bit and - 64-bit) are supported with the restrictions listed in <xref + <para><emphasis role="bold">Solaris</emphasis> hosts (64-bit only) are + supported with the restrictions listed in <xref linkend="KnownIssues" />:<itemizedlist> <listitem> <para>Solaris 11 including Solaris 11 Express</para> @@ -555,8 +570,12 @@ </listitem> <listitem> - <para>Intel PXE boot ROM with support for the E1000 network - card.</para> + <para>Host webcam passthrough; see chapter <xref + linkend="webcam-passthrough" />.</para> + </listitem> + + <listitem> + <para>Intel PXE boot ROM.</para> </listitem> <listitem> @@ -567,9 +586,9 @@ <para>VirtualBox extension packages have a <computeroutput>.vbox-extpack</computeroutput> file name extension. - To install an extension, simply double-click on the package file, - and the VirtualBox Manager will guide you through the required - steps.</para> + To install an extension, simply double-click on the package file + and a Network Operations Manager window will appear, guiding you + through the required steps.</para> <para>To view the extension packs that are currently installed, please start the VirtualBox Manager (see the next section). From the @@ -815,6 +834,11 @@ entered initially.</para> </listitem> </orderedlist></para> + + <note><para>After becoming familiar with the use of wizards, consider using + the Expert Mode available in some wizards. Where available, this is + selectable using a button, and speeds up user processes using + wizards.</para></note> </sect1> <sect1> @@ -900,9 +924,8 @@ able to install your operating system.</para> </sect2> - <sect2> - <title id="keyb_mouse_normal">Capturing and releasing keyboard and - mouse</title> + <sect2 id="keyb_mouse_normal"> + <title>Capturing and releasing keyboard and mouse</title> <para>As of version 3.2, VirtualBox provides a virtual USB tablet device to new virtual machines through which mouse events are communicated to @@ -933,7 +956,8 @@ the <emphasis role="bold">"host key".</emphasis> By default, this is the <emphasis>right Control key</emphasis> on your keyboard; on a Mac host, the default host key is the left Command key. You can change this - default in the VirtualBox Global Settings. In any case, the current + default in the VirtualBox Global Settings, see <xref + linkend="globalsettings" />. In any case, the current setting for the host key is always displayed <emphasis>at the bottom right of your VM window,</emphasis> should you have forgotten about it:</para> @@ -963,7 +987,12 @@ will go to the guest instead. After you press the host key to re-enable the host keyboard, all key presses will go through the host again, so that sequences like Alt-Tab will no longer reach - the guest.</para> + the guest. For technical reasons it may not be possible for the + VM to get all keyboard input even when it does own the keyboard. + Examples of this are the Ctrl-Alt-Del sequence on Windows hosts + or single keys grabbed by other applications on X11 hosts like + the GNOME desktop's "Control key highlights mouse pointer" + functionality.</para> </listitem> <listitem> @@ -993,7 +1022,7 @@ linkend="guestadditions" />.</para> </sect2> - <sect2> + <sect2 id="specialcharacters"> <title>Typing special characters</title> <para>Operating systems expect certain key combinations to initiate @@ -1216,6 +1245,64 @@ </sect2> </sect1> + <sect1 id="gui-vmgroups"> + <title>Using VM groups</title> + + <para>VM groups enable the user to create ad hoc groups of VMs, and to + manage and perform functions on them collectively, as well as individually. + There are a number of features relating to groups:</para> + + <orderedlist> + <listitem> + <para> + Create a group using GUI option 1) Drag one VM on top of another + VM. + </para> + <para> + Create a group using GUI option 2) Select multiple VMs and select + "Group" on the right click menu, as follows: + </para> + + <para><mediaobject> + <imageobject> + <imagedata align="center" fileref="images/vm-groups.png" + width="10cm" /> + </imageobject> + </mediaobject></para> + + </listitem> + <listitem> + <para> + Command line option 1) Create group and assign VM: + <screen>VBoxManage modifyvm "Fred" --groups "/TestGroup"</screen> + </para> + <para> + Command line option 2) Detach VM from group, and delete group if + empty: <screen>VBoxManage modifyvm "Fred" --groups ""</screen> + </para> + </listitem> + <listitem> + <para> + Multiple groups e.g.: + <screen>VBoxManage modifyvm "Fred" --groups "/TestGroup,/TestGroup2"</screen> + </para> + </listitem> + <listitem> + <para> + Nested groups -- hierarchy of groups e.g.: + <screen>VBoxManage modifyvm "Fred" --groups "/TestGroup/TestGroup2"</screen> + </para> + </listitem> + <listitem> + <para> + Summary of group commands: Start, Pause, Reset, Close (save state, + send shutdown signal, poweroff), Discard Saved State, Show in File + System, Sort. + </para> + </listitem> + </orderedlist> + </sect1> + <sect1 id="snapshots"> <title>Snapshots</title> @@ -1418,8 +1505,8 @@ </sect2> </sect1> - <sect1> - <title id="configbasics">Virtual machine configuration</title> + <sect1 id="configbasics"> + <title>Virtual machine configuration</title> <para>When you select a virtual machine from the list in the Manager window, you will see a summary of that machine's settings on the @@ -1523,8 +1610,8 @@ <para>The clone operation itself can be a lengthy operation depending on the size and count of the attached disk images. Also keep in mind that - every snapshot has differencing disk images attached, which need to be cloned - as well.</para> + every snapshot has differencing disk images attached, which need to be + cloned as well.</para> <para>The "Clone" menu item is disabled while a machine is running.</para> @@ -1629,6 +1716,55 @@ </note></para> </sect1> + <sect1 id="globalsettings"> + <title>Global Settings</title> + <para>The global settings dialog can be reached through the + <emphasis role="bold">File</emphasis> menu, selecting the + <emphasis role="bold">Preferences...</emphasis> item. It offers a selection + of settings which apply to all virtual machines of the current user or in + the case of <emphasis role="bold">Extensions</emphasis> to the entire + system: + <orderedlist> + <listitem> + <para><emphasis role="bold">General</emphasis> Enables the user to + specify the default folder/directory for VM files, and the VRDP + Authentication Library.</para> + </listitem> + <listitem> + <para><emphasis role="bold">Input</emphasis> Enables the user to + specify the Host Key. It identifies the key that toggles whether the + cursor is in the focus of the VM or the Host operating system + windows (see <xref linkend="keyb_mouse_normal"/>) and which is also + used to trigger certain VM actions (see <xref + linkend="specialcharacters"/>)</para> + </listitem> + <listitem> + <para><emphasis role="bold">Update</emphasis> Enables the user + to specify various settings for Automatic Updates.</para> + </listitem> + <listitem> + <para><emphasis role="bold">Language</emphasis> Enables the user to + specify the GUI language.</para> + </listitem> + <listitem> + <para><emphasis role="bold">Display</emphasis> Enables the user to + specify the screen resolution, and its width and height.</para> + </listitem> + <listitem> + <para><emphasis role="bold">Network</emphasis> Enables the user to + configure the details of Host Only Networks.</para> + </listitem> + <listitem> + <para><emphasis role="bold">Extensions</emphasis> Enables the user + to list and manage the installed extension packages.</para> + </listitem> + <listitem> + <para><emphasis role="bold">Proxy</emphasis> Enables the user to + configure a HTTP Proxy Server.</para> + </listitem> + </orderedlist></para> + </sect1> + <sect1 id="frontends"> <title>Alternative front-ends</title> diff --git a/doc/manual/en_US/user_KnownIssues.xml b/doc/manual/en_US/user_KnownIssues.xml index da7a4d01..9953de76 100644 --- a/doc/manual/en_US/user_KnownIssues.xml +++ b/doc/manual/en_US/user_KnownIssues.xml @@ -80,6 +80,13 @@ experience this, do not attempt to execute 64-bit guests. Refer to the VirtualBox user forum for additional information.</para> </listitem> + + <listitem> + <para><emphasis role="bold">NX (no execute, data execution + prevention)</emphasis> only works for guests running on 64-bit hosts + or guests running on 32-bit hosts with PAE enabled and requires that + hardware virtualization be enabled.</para> + </listitem> <listitem> <para>For <emphasis role="bold">basic Direct3D support in Windows @@ -206,12 +213,6 @@ </listitem> <listitem> - <para>Even when idle, Mac OS X guests currently burn 100% CPU. - This is a power management issue that will be addressed in a - future release.</para> - </listitem> - - <listitem> <para>Mac OS X guests only work with one CPU assigned to the VM. Support for SMP will be provided in a future release.</para> </listitem> @@ -278,7 +279,7 @@ </note> To solve this problem, one should uninstall the VirtualBox WDDM Video driver manually. To do that open Device Manager, and check whether the Display Adapter is named - "VirtualBox Graphics Adapter ..". If no - there is nothing to be done. If yes - right-clik + "VirtualBox Graphics Adapter ..". If no - there is nothing to be done. If yes - right-click the VirtualBox Graphics Adapter in Device Manager, select "Uninstall", check "Delete the driver software for this device" and click "OK". Once uninstallation is done - in Device Manager go to menu "Action" and select "Scan for hardware changes" to make the propper (Windows default) driver be picked up for the Graphics adapter. diff --git a/doc/manual/en_US/user_Networking.xml b/doc/manual/en_US/user_Networking.xml index 36d32b49..afdbb07b 100644 --- a/doc/manual/en_US/user_Networking.xml +++ b/doc/manual/en_US/user_Networking.xml @@ -145,6 +145,17 @@ </glossentry> <glossentry> + <glossterm>NAT Network</glossterm> + + <glossdef> + <para>The NAT network is a new NAT flavour introduced in + VirtualBox 4.3. See + <xref linkend="network_nat_service" xrefstyle="template: %n" /> + for details.</para> + </glossdef> + </glossentry> + + <glossentry> <glossterm>Bridged networking</glossterm> <glossdef> @@ -283,9 +294,14 @@ the service can run in a different operating system than the host system.</para> - <para>You can set up a guest service which you wish to proxy using the - command line tool <computeroutput>VBoxManage</computeroutput>; for - details, please refer to <xref linkend="vboxmanage-modifyvm" />.</para> + <para>To configure Port Forwarding you can use the graphical Port + Forwarding editor which can be found in the Network Settings dialog + for Network Adaptors configured to use NAT. Here you can map host + ports to guest ports to allow network traffic to be routed to a + specific port in the guest.</para> + + <para>Alternatively command line tool <computeroutput>VBoxManage</computeroutput> could be used; + for details, please refer to <xref linkend="vboxmanage-modifyvm" />.</para> <para>You will need to know which ports on the guest the service uses and to decide which ports to use on the host (often but not always you @@ -319,9 +335,8 @@ forwards all TCP traffic arriving on the localhost interface (127.0.0.1) via port 2222 to port 22 in the guest.</para> - <para>It is not possible to configure incoming NAT connections while the - VM is running. However, you can change the settings for a VM which is - currently saved (or powered off at a snapshot).</para> + <para>It is possible to configure incoming NAT connections while the + VM is running, see <xref linkend="vboxmanage-controlvm"/>.</para> </sect2> <sect2 id="nat-tftp"> @@ -401,8 +416,61 @@ </sect2> </sect1> - <sect1> - <title id="network_bridged">Bridged networking</title> + <sect1 id="network_nat_service"> + <title>Network Address Translation Service (experimental)</title> + + <para>The Network Address Translation (NAT) service works in a similar way + to a home router, grouping the systems using it into a network and + preventing systems outside of this network from directly accessing systems + inside it, but letting systems inside communicate with each other and with + systems outside using TCP and UDP over IPv4 and IPv6.</para> + + <para>A NAT service is attached to an internal network. Virtual machines + which are to make use of it should be attached to that internal network. + The name of internal network is chosen when the NAT service is created and + the internal network will be created if it does not already exist. An + example command to create a NAT network is: + </para> + <para><screen>VBoxManage natnetwork add -t nat-int-network -n "192.168.15.0/24" -e</screen></para> + <para> + Here, "nat-int-network" is the name of the internal network to be used and + "192.168.15.0/24" is the network address and mask of the NAT service + interface. By default in this static configuration the gateway will be + assigned the address 192.168.15.1 (the address following the interface + address), though this is subject to change. To attach a DHCP server to the + internal network, we modify the example as follows:</para> + <para><screen>VBoxManage natnetwork add -t nat-int-network -n "192.168.15.0/24" -e -h on</screen></para> + <para> or to add a DHCP server to the network after creation:</para> + <para><screen>VBoxManage natnetwork modify -t nat-int-network -h on</screen></para> + <para>To disable it again, use:</para> + <para><screen>VBoxManage natnetwork modify -t nat-int-network -h off</screen></para> + <para>DHCP server provides list of registered nameservers, but doesn't map + servers from 127/8 network.</para> + <para>To start the NAT service, use the following command:</para> + <para><screen>VBoxManage natnetwork start -t nat-int-network</screen></para> + <para>If the network has a DHCP server attached then it will start together + with the NAT network service.</para> + <para><screen>VBoxManage natnetwork stop -t nat-int-network</screen> stops + the NAT network service, together with DHCP server if any.</para> + <para>To delete the NAT network service use:</para> + <para><screen>VBoxManage natnetwork remove -t nat-int-network</screen></para> + <para>This command does not remove the DHCP server if one is enabled on the + internal network.</para> + <para>Port-forwarding is supported (using the "-p" switch for IPv4 and "-P" + for IPv6):</para> + <para><screen>VBoxManage natnetwork modify -t nat-int-network -p "ssh:tcp:[]:10022:[192.168.15.15]:22"</screen></para> + <para>This adds a port-forwarding rule from the host's TCP 10022 port to + the port 22 on the guest with IP address 192.168.15.15. To delete the rule, + use:</para> + <para><screen>VBoxManage natnetwork modify -t nat-int-network -p delete ssh</screen></para> + <para>It's possible to bind NAT service to specified interface:</para> + <screen>VBoxManage setextradata global "NAT/win-nat-test-0/SourceIp4" 192.168.1.185</screen> + <para>To see the list of registered NAT networks, use:</para> + <para><screen>VBoxManage list natnetworks</screen></para> + </sect1> + + <sect1 id="network_bridged"> + <title>Bridged networking</title> <para>With bridged networking, VirtualBox uses a device driver on your <emphasis>host</emphasis> system that filters data from your physical @@ -499,8 +567,10 @@ and above), it is possible to use Solaris' Crossbow Virtual Network Interfaces (VNICs) directly with VirtualBox without any additional configuration other than each VNIC must be exclusive for every guest - network interface. With VirtualBox 2.0.4 and above, VNICs can be - used but with the following caveats:</para> + network interface.</para> + + <para>Starting with VirtualBox 2.0.4 and up to VirtualBox 4.0, VNICs + can be used but with the following caveats:</para> <itemizedlist> <listitem> @@ -590,7 +660,7 @@ version 2.2 of VirtualBox. It can be thought of as a hybrid between the bridged and internal networking modes: as with bridged networking, the virtual machines can talk to each other and the host as if they were - connected through a physical ethernet switch. Similarly, as with internal + connected through a physical Ethernet switch. Similarly, as with internal networking however, a physical networking interface need not be present, and the virtual machines cannot talk to the world outside the host since they are not connected to a physical networking interface.</para> @@ -714,11 +784,10 @@ Internal network case.</para> <para><note> - On Unix-based hosts (e.g. Linux, Solaris, Mac OS X) it is not possible to bind to ports below 1024 from applications that are not run by - - <computeroutput>root</computeroutput> - - . As a result, if you try to configure such a source UDP port, the VM will refuse to start. + On Unix-based hosts (e.g. Linux, Solaris, Mac OS X) it is not possible + to bind to ports below 1024 from applications that are not run by + <computeroutput>root</computeroutput>. As a result, if you try to + configure such a source UDP port, the VM will refuse to start. </note></para> </sect1> @@ -826,15 +895,15 @@ VBoxManage modifyvm "VM name" --nicbandwidthgroup2 Limit</screen></para> "attached" to the host's network in a number of ways. Depending on which types of adapters and attachments are used the network performance will be different. Performance-wise the <emphasis>virtio</emphasis> network - adapter is preferrable over <emphasis>Intel PRO/1000</emphasis> emulated + adapter is preferable over <emphasis>Intel PRO/1000</emphasis> emulated adapters, which are preferred over <emphasis>PCNet</emphasis> family of adapters. Both <emphasis>virtio</emphasis> and <emphasis>Intel PRO/1000 </emphasis> adapters enjoy the benefit of segmentation and checksum offloading. Segmentation offloading is essential for high performance as - it allows for less context switches, drammatically increasing the sizes - of packets that cross VM/host bondary.</para> + it allows for less context switches, dramatically increasing the sizes + of packets that cross VM/host boundary.</para> <note><para>Neither <emphasis>virtio</emphasis> nor <emphasis>Intel PRO/1000 - </emphasis> drivers for Windows XP do not support segmentation + </emphasis> drivers for Windows XP support segmentation offloading. Therefore Windows XP guests never reach the same transmission rates as other guest types. Refer to MS Knowledge base article 842264 for additional information.</para> @@ -848,7 +917,7 @@ VBoxManage modifyvm "VM name" --nicbandwidthgroup2 Limit</screen></para> network address translation. The generic driver attachment is special and cannot be considered as an alternative to other attachment types.</para> <para>The number of CPUs assigned to VM does not improve network - performance and in some cases may hurt it due to increased concurency in + performance and in some cases may hurt it due to increased concurrency in the guest.</para> <para>Here is the short summary of things to check in order to improve network performance:</para> diff --git a/doc/manual/en_US/user_PrivacyPolicy.xml b/doc/manual/en_US/user_PrivacyPolicy.xml index bd247b86..dcf1f4e8 100644 --- a/doc/manual/en_US/user_PrivacyPolicy.xml +++ b/doc/manual/en_US/user_PrivacyPolicy.xml @@ -2,13 +2,16 @@ <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"> <appendix id="privacy"> - <title>VirtualBox privacy policy</title> + <title>VirtualBox privacy information</title> - <para>Policy version 4, Apr 22, 2010</para> + <para>Version 5, Dec 13, 2012</para> - <para>This privacy policy sets out how Oracle Corporation ("Oracle") treats - personal information related to the virtualbox.org website and the - VirtualBox application.</para> + <para>The Oracle Privacy Policies posted on + <ulink url="http://www.oracle.com/html/privacy.html">http://www.oracle.com/html/privacy.html</ulink> + apply to your personal data collected and used by Oracle. The following + privacy information describes in more detail which information is exchanged + between the VirtualBox application and Oracle, and which information is + collected by the virtualbox.org website.</para> <para><emphasis role="bold">§ 1 virtualbox.org.</emphasis> The "virtualbox.org" website logs anonymous usage information such as your IP @@ -27,11 +30,9 @@ <para><emphasis role="bold">§ 3 VirtualBox registration process.</emphasis> The VirtualBox application may ask that the user optionally register with - Oracle. in der If you choose to register, your name, e-mail address, country - and company will be submitted to Oracle and stored together with the IP - address of the submitter as well as product version and platform being used. - The standard Oracle Privacy Policies as posted on - http://www.oracle.com/html/privacy.html apply to this data.</para> + Oracle. If you choose to register, your name, e-mail address, country and + company will be submitted to Oracle and stored together with the IP address + of the submitter as well as product version and platform being used.</para> <para><emphasis role="bold">§ 4 Update notifications.</emphasis> The VirtualBox application may contact Oracle to find out whether a new version @@ -53,8 +54,10 @@ provided to any third parties, unless Oracle may be required to do so by law or in connection with legal proceedings.</para> - <para><emphasis role="bold">§ 6 Updates.</emphasis> Oracle may update this - privacy policy by posting a new version on the virtualbox.org website. You - should check this page occasionally to ensure you are happy with any + <para><emphasis role="bold">§ 6 Updates.</emphasis> Oracle may update the + privacy policy at any time by posting a new version at + <ulink url="http://www.oracle.com/html/privacy.html">http://www.oracle.com/html/privacy.html</ulink> and the privacy information will be kept up to date + in the documentation which comes with the VirtualBox application. You + should check these places occasionally to ensure you are happy with any changes.</para> </appendix> diff --git a/doc/manual/en_US/user_Security.xml b/doc/manual/en_US/user_Security.xml index fa68c1ed..9eab6198 100644 --- a/doc/manual/en_US/user_Security.xml +++ b/doc/manual/en_US/user_Security.xml @@ -342,7 +342,7 @@ <para>The web services are not started by default. Please refer to <xref linkend="vboxwebsrv-daemon"/> to find out how to start this service and how to enable SSL/TLS support. It has to be started as - a regular user and only the VMs of that user can be controled. By + a regular user and only the VMs of that user can be controlled. By default, the service binds to localhost preventing any remote connection.</para> </listitem> diff --git a/doc/manual/en_US/user_Storage.xml b/doc/manual/en_US/user_Storage.xml index 37a401e1..b25e5e8c 100644 --- a/doc/manual/en_US/user_Storage.xml +++ b/doc/manual/en_US/user_Storage.xml @@ -886,8 +886,8 @@ VBoxManage storageattach "VM name" --controller "SATA" --port 1 --device 0 --typ root permissions due to security measures enforced by the host.</para> </sect1> - <sect1> - <title id="storage-iscsi">iSCSI servers</title> + <sect1 id="storage-iscsi"> + <title>iSCSI servers</title> <para>iSCSI stands for "Internet SCSI" and is a standard that allows for using the SCSI protocol over Internet (TCP/IP) connections. Especially diff --git a/doc/manual/en_US/user_Technical.xml b/doc/manual/en_US/user_Technical.xml index 86de7706..713d80a4 100644 --- a/doc/manual/en_US/user_Technical.xml +++ b/doc/manual/en_US/user_Technical.xml @@ -148,16 +148,15 @@ <title>Global configuration data</title> <para>In addition to the files of the virtual machines, VirtualBox - maintains global configuration data. On Windows, Linux and Solaris, this - is in <computeroutput>$HOME/.VirtualBox</computeroutput> (which makes it - hidden on Linux and Solaris), whereas on a Mac this resides in + maintains global configuration data. On Linux and Solaris as of VirtualBox 4.3, this + is in the hidden directory <computeroutput>$HOME/.config/VirtualBox</computeroutput>, although <computeroutput>$HOME/.VirtualBox</computeroutput> will be used if it exists for compatibility with earlier versions; on Windows (and on Linux and Solaris with VirtualBox 4.2 and earlier) this is in <computeroutput>$HOME/.VirtualBox</computeroutput>; on a Mac it resides in <computeroutput>$HOME/Library/VirtualBox</computeroutput>.</para> <para>VirtualBox creates this configuration directory automatically if necessary. Optionally, you can supply an alternate configuration directory by setting the <computeroutput><literal>VBOX_USER_HOME</literal></computeroutput> - environment variable. (Since the global + environment variable, or additionally on Linux or Solaris by using the standard <computeroutput><literal>XDG_CONFIG_HOME</literal></computeroutput> variable. (Since the global <computeroutput>VirtualBox.xml</computeroutput> settings file points to all other configuration files, this allows for switching between several VirtualBox configurations entirely.)</para> @@ -189,19 +188,23 @@ <sect2> <title>Summary of 4.0 configuration changes</title> + <para>The following table gives a brief overview of the configuration + changes between older versions and version 4.0 or above:</para> + <table> - <title>ignoreme</title> + <title>Configuration changes in version 4.0 or above</title> <tgroup cols="3"> - <tbody> + <thead> <row> - <entry></entry> + <entry><emphasis role="bold">Setting</emphasis></entry> <entry><emphasis role="bold">Before 4.0</emphasis></entry> <entry><emphasis role="bold">4.0 or above</emphasis></entry> </row> - + </thead> + <tbody> <row> <entry>Default machines folder</entry> diff --git a/doc/manual/en_US/user_ThirdParty.xml b/doc/manual/en_US/user_ThirdParty.xml index ce5dec56..ab5f5a87 100644 --- a/doc/manual/en_US/user_ThirdParty.xml +++ b/doc/manual/en_US/user_ThirdParty.xml @@ -127,6 +127,13 @@ </listitem> <listitem> + <para>VirtualBox may contain iPXE which is governed by the license + in <xref linkend="licGPL" xrefstyle="template: %n" /> and</para> + <para>Copyright (C) Michael Brown <mbrown@fensystems.co.uk> + and others.</para> + </listitem> + + <listitem> <para>VirtualBox contains code from Wine which is governed by the license in <xref linkend="licLGPL" xrefstyle="template: %n" /> and</para> @@ -147,14 +154,14 @@ <listitem> <para>VirtualBox contains libxml which is governed by the license in - <xref linkend="licLibXML" /> and</para> + <xref linkend="licLibXML" xrefstyle="template: %n" /> and</para> <para>Copyright (C) 1998-2003 Daniel Veillard.</para> </listitem> <listitem> <para>VirtualBox contains libxslt which is governed by the license in - <xref linkend="licLibXSLT" /> and</para> + <xref linkend="licLibXSLT" xrefstyle="template: %n" /> and</para> <para>Copyright (C) 2001-2002 Daniel Veillard and Copyright (C) 2001-2002 Thomas Broyer, Charlie Bozeman and Daniel Veillard.</para> @@ -163,7 +170,7 @@ <listitem> <para>VirtualBox contains code from the gSOAP XML web services tools, which are licensed under the license in <xref - linkend="licgSOAP" /> and</para> + linkend="licgSOAP" xrefstyle="template: %n" /> and</para> <para>Copyright (C) 2000-2007, Robert van Engelen, Genivia Inc., and others.</para> @@ -181,7 +188,7 @@ <listitem> <para>VirtualBox contains code from Chromium, an OpenGL implementation, which is goverened by the licenses in <xref - linkend="licChromium" /> and</para> + linkend="licChromium" xrefstyle="template: %n" /> and</para> <para>Copyright (C) Stanford University, The Regents of the University of California, Red Hat, and others.</para> @@ -189,28 +196,28 @@ <listitem> <para>VirtualBox contains libcurl which is governed by the license in - <xref linkend="licLibCurl" /> and</para> + <xref linkend="licLibCurl" xrefstyle="template: %n" /> and</para> <para>Copyright (C) 1996-2009, Daniel Stenberg.</para> </listitem> <listitem> <para>VirtualBox contains dnsproxy which is governed by the license in - <xref linkend="licMIT" /> and</para> + <xref linkend="licMIT" xrefstyle="template: %n" /> and</para> <para>Copyright (c) 2003, 2004, 2005 Armin Wolfermann.</para> </listitem> <listitem> <para>VirtualBox may contain iniparser which is governed by the - license in <xref linkend="licMIT" /> and</para> + license in <xref linkend="licMIT" xrefstyle="template: %n" /> and</para> <para>Copyright (c) 2000-2008 by Nicolas Devillard.</para> </listitem> <listitem> <para>VirtualBox contains some code from libgd which is governed by - the license in <xref linkend="licLibgd" /> and</para> + the license in <xref linkend="licLibgd" xrefstyle="template: %n"/> and</para> <para>Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Pierre-Alain Joye (pierre@libgd.org).</para> @@ -219,21 +226,22 @@ <listitem> <para>VirtualBox contains code from the EFI Development Kit II which is governed by the license in - <xref linkend="licBsdIntel" /> and</para> + <xref linkend="licBsdIntel" xrefstyle="template: %n" /> and</para> <para>Copyright (c) 2004-2008, Intel Corporation.</para> </listitem> <listitem> <para>VirtualBox contains libjpeg which is governed by the - license in <xref linkend="licJPEG" /> and</para> + license in <xref linkend="licJPEG" xrefstyle="template: %n" /> and</para> <para>Copyright (C) 1991-2010, Thomas G. Lane, Guido Vollbeding.</para> </listitem> <listitem> <para>VirtualBox may contain x86 SIMD extension for IJG JPEG library - which is governed by the license in <xref linkend="licJPEGSIMD" /> and</para> + which is governed by the license in <xref linkend="licJPEGSIMD" + xrefstyle="template: %n" /> and</para> <para>Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB; Copyright 2010 D. R. Commander; Copyright (C) 1999-2006, MIYASAKA Masaru. @@ -248,6 +256,96 @@ <para>Copyright (C) 2010, 2011 Nokia Corporation and/or its subsidiary(-ies).</para> </listitem> + <listitem> + <para>VirtualBox contains parts of the FreeBSD kernel which is governed by + the license in <xref linkend="licFreeBsd" xrefstyle="template: %n" />. + </para> + </listitem> + + <listitem> + <para>VirtualBox contains parts of the NetBSD kernel which is governed by + the license in <xref linkend="licNetBsd" xrefstyle="template: %n" />. + </para> + </listitem> + + <listitem> + <para>VirtualBox contains portions of liblightdm-gobject which is governed by the + license in <xref linkend="licLGPL" xrefstyle="template: %n" /> and</para> + + <para>Copyright (C) 2010-2013 Canonical Ltd.; Copyright (C) 2010-2011 Robert Ancell.</para> + </listitem> + + <listitem> + <para>VirtualBox contains portions of glib which is governed by the + license in <xref linkend="licLGPL" xrefstyle="template: %n" /> and</para> + + <para>Copyright (C) 1995-2011 The Glib team</para> + </listitem> + + <listitem> + <para>VirtualBox contains portions of PCRE which is governed by the + license in <xref linkend="licPcre" xrefstyle="template: %n" /> and</para> + <para>Copyright (c) 1997-2012 University of Cambridge; + Copyright(c) 2009-2012 Zoltan Herczeg; + Copyright (c) 2007-2012, Google Inc. + </para> + </listitem> + + <listitem> + <para>VirtualBox contains portions of libffi which is governed by the + license in <xref linkend="licLibffi" xrefstyle="template: %n" /> and</para> + <para> + Copyright (c) 1996-2012 Anthony Green, Red Hat, Inc and others. + See source files for details. + </para> + </listitem> + + <listitem> + <para>VirtualBox contains portions of FLTK which is governed by the + licenses in <xref linkend="licFltk" xrefstyle="template: %n" /> and + <xref linkend="licLGPL" xrefstyle="template: %n"/> and </para> + <para> + Copyright (C) 1991-2012 The FLTK team + </para> + </listitem> + + <listitem> + <para>VirtualBox contains portions of Expat which is governed by the + license in <xref linkend="licExpat" xrefstyle="template: %n" /> and</para> + <para> + Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd + and Clark Cooper; Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Expat + maintainers. + </para> + </listitem> + + <listitem> + <para>VirtualBox contains portions of Fontconfig which is governed by the + license in <xref linkend="licFontconfig" xrefstyle="template: %n" /> + and</para> + <para> + Copyright (C) 2001, 2003 Keith Packard + </para> + </listitem> + + <listitem> + <para>VirtualBox contains portions of Freetype which is governed by the + license in <xref linkend="licFreetype" xrefstyle="template: %n" /> + and</para> + <para> + Copyright 2012 The FreeType Project (www.freetype.org). All rights reserved. + </para> + </listitem> + + <listitem> + <para>VirtualBox may contain code from the WebM VP8 Codec SDK which + is governed by the license in <xref linkend="licVPX" xrefstyle="template: %n" /> + and </para> + <para> + Copyright (c) 2010, The WebM Project authors. All rights reserved. + </para> + </listitem> + </itemizedlist> </sect1> @@ -1588,6 +1686,8 @@ jloup@gzip.org madler@alumni.caltech.edu</screen> <sect2 id="licSlirp"> <title>Slirp license</title> + <para>Copyright (c) 1995,1996 Danny Gasparovski. All rights reserved.</para> + <para>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:</para> @@ -2595,5 +2695,595 @@ jloup@gzip.org madler@alumni.caltech.edu</screen> <para>3. This notice may not be removed or altered from any source distribution.</para> </sect2> + <sect2 id="licFreeBsd"> + <title>FreeBSD license</title> + + <para>The compilation of software known as FreeBSD is distributed under the + following terms:</para> + + <para>Copyright (c) 1992-2009 The FreeBSD Project. All rights reserved.</para> + + <para>Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met:</para> + + <orderedlist> + <listitem> + <para>Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + </para> + </listitem> + <listitem> + <para> + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + </para> + </listitem> + </orderedlist> + + <para>THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE.</para> + </sect2> + + <sect2 id="licNetBsd"> + <title>NetBSD license</title> + + <para>Copyright (c) 1992, 1993 The Regents of the University of California. + All rights reserved.</para> + + <para> + This software was developed by the Computer Systems Engineering group + at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and + contributed to Berkeley. + </para> + + <para> + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + </para> + + <orderedlist> + <listitem> + <para> + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + </para> + </listitem> + <listitem> + <para> + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + </para> + </listitem> + <listitem> + <para> + Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + </para> + </listitem> + </orderedlist> + + <para> + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + </para> + </sect2> + + <sect2 id="licPcre"> + <title>PCRE license</title> + + <para> + PCRE is a library of functions to support regular expressions whose syntax + and semantics are as close as possible to those of the Perl 5 language. + </para><para> + Release 8 of PCRE is distributed under the terms of the "BSD" licence, as + specified below. The documentation for PCRE, supplied in the "doc" + directory, is distributed under the same terms as the software itself. + </para><para> + The basic library functions are written in C and are freestanding. Also + included in the distribution is a set of C++ wrapper functions, and a + just-in-time compiler that can be used to optimize pattern matching. These + are both optional features that can be omitted when the library is built. + </para><para> + THE BASIC LIBRARY FUNCTIONS. + Written by: Philip Hazel; Email local part: ph10; Email domain: cam.ac.uk + University of Cambridge Computing Service, Cambridge, England. + Copyright (c) 1997-2012 University of Cambridge + All rights reserved. + </para><para> + PCRE JUST-IN-TIME COMPILATION SUPPORT. + Written by: Zoltan Herczeg; Email local part: hzmester; Emain domain: freemail.hu + Copyright(c) 2010-2012 Zoltan Herczeg + All rights reserved. + </para><para> + STACK-LESS JUST-IN-TIME COMPILER. + Written by: Zoltan Herczeg; Email local part: hzmester; Emain domain: freemail.hu + Copyright(c) 2009-2012 Zoltan Herczeg + All rights reserved. + </para><para> + THE C++ WRAPPER FUNCTIONS. + Contributed by: Google Inc. + Copyright (c) 2007-2012, Google Inc. + All rights reserved. + </para><para> + THE "BSD" LICENCE. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + </para> + <itemizedlist> + <listitem> + <para> + Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + </para> + </listitem> + <listitem> + <para> + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + </para> + </listitem> + <listitem> + <para> + Neither the name of the University of Cambridge nor the name of Google + Inc. nor the names of their contributors may be used to endorse or + promote products derived from this software without specific prior + written permission. + </para> + </listitem> + </itemizedlist> + <para> + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + </para> + </sect2> + + <sect2 id="licLibffi"> + <title>libffi license</title> + + <para> + Copyright (c) 1996-2012 Anthony Green, Red Hat, Inc and others. + See source files for details. + </para><para> + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + ``Software''), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + </para><para> + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + </para><para> + THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + </para> + </sect2> + + <sect2 id="licFltk"> + <title>FLTK license</title> + + <para> + December 11, 2001 + </para><para> + The FLTK library and included programs are provided under the terms + of the GNU Library General Public License (LGPL) with the following + exceptions: + </para> + <orderedlist> + <listitem> + <para> + Modifications to the FLTK configure script, config + header file, and makefiles by themselves to support + a specific platform do not constitute a modified or + derivative work. + </para> + <para> + The authors do request that such modifications be + contributed to the FLTK project - send all contributions + through the "Software Trouble Report" on the following page: + </para><para> + http://www.fltk.org/str.php + </para> + </listitem> + <listitem> + <para> + Widgets that are subclassed from FLTK widgets do not + constitute a derivative work. + </para> + </listitem> + <listitem> + <para> + Static linking of applications and widgets to the + FLTK library does not constitute a derivative work + and does not require the author to provide source + code for the application or widget, use the shared + FLTK libraries, or link their applications or + widgets against a user-supplied version of FLTK. + </para> + <para> + If you link the application or widget to a modified + version of FLTK, then the changes to FLTK must be + provided under the terms of the LGPL in sections + 1, 2, and 4. + </para> + </listitem> + <listitem> + <para> + You do not have to provide a copy of the FLTK license + with programs that are linked to the FLTK library, nor + do you have to identify the FLTK license in your + program or documentation as required by section 6 + of the LGPL. + </para> + <para> + However, programs must still identify their use of FLTK. + The following example statement can be included in user + documentation to satisfy this requirement: + </para> + <para> + [program/widget] is based in part on the work of + the FLTK project (http://www.fltk.org). + </para> + </listitem> + </orderedlist> + </sect2> + + <sect2 id="licExpat"> + <title>Expat license</title> + <para> + Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd + and Clark Cooper + </para> + <para> + Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Expat maintainers. + </para> + <para> + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + </para> + <para> + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + </para> + <para> + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + </para> + </sect2> + + <sect2 id="licFontconfig"> + <title>Fontconfig license</title> + <para> + Copyright (C) 2001, 2003 Keith Packard + </para> + <para> + Permission to use, copy, modify, distribute, and sell this software and its + documentation for any purpose is hereby granted without fee, provided that + the above copyright notice appear in all copies and that both that + copyright notice and this permission notice appear in supporting + documentation, and that the name of the author(s) not be used in + advertising or publicity pertaining to distribution of the software without + specific, written prior permission. The authors make no + representations about the suitability of this software for any purpose. It + is provided "as is" without express or implied warranty. + </para> + <para> + THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + </para> + </sect2> + + <sect2 id="licFreetype"> + <title>Freetype license</title> + <para> + 2006-Jan-27 + </para> + <para> + Copyright 1996-2002, 2006 by David Turner, Robert Wilhelm, and Werner Lemberg + </para> + <sect4> + <title>Introduction</title> + </sect4> + <sect4> + <title></title> + <para> + The FreeType Project is distributed in several archive packages; + some of them may contain, in addition to the FreeType font engine, + various tools and contributions which rely on, or relate to, the + FreeType Project. + </para> + <para> + This license applies to all files found in such packages, and + which do not fall under their own explicit license. The license + affects thus the FreeType font engine, the test programs, + documentation and makefiles, at the very least. + </para> + <para> + This license was inspired by the BSD, Artistic, and IJG + (Independent JPEG Group) licenses, which all encourage inclusion + and use of free software in commercial and freeware products + alike. As a consequence, its main points are that: + </para> + <itemizedlist> + <listitem> + <para> + We don't promise that this software works. However, we will be + interested in any kind of bug reports. (`as is' distribution) + </para> + </listitem> + <listitem> + <para> + You can use this software for whatever you want, in parts or + full form, without having to pay us. (`royalty-free' usage) + </para> + </listitem> + <listitem> + <para> + You may not pretend that you wrote this software. If you use + it, or only parts of it, in a program, you must acknowledge + somewhere in your documentation that you have used the + FreeType code. (`credits') + </para> + </listitem> + </itemizedlist> + <para> + We specifically permit and encourage the inclusion of this + software, with or without modifications, in commercial products. + We disclaim all warranties covering The FreeType Project and + assume no liability related to The FreeType Project. + </para> + <para> + Finally, many people asked us for a preferred form for a + credit/disclaimer to use in compliance with this license. We thus + encourage you to use the following text: + </para> + <para> + Portions of this software are copyright (C) <year> The FreeType + Project (www.freetype.org). All rights reserved. + </para> + <para> + Please replace <year> with the value from the FreeType version you + actually use. + </para> + </sect4> + <sect4> + <title>Legal Terms</title> + <sect4> + <title>0. Definitions</title> + <para> + Throughout this license, the terms `package', `FreeType Project', + and `FreeType archive' refer to the set of files originally + distributed by the authors (David Turner, Robert Wilhelm, and + Werner Lemberg) as the `FreeType Project', be they named as alpha, + beta or final release. + </para> + <para> + `You' refers to the licensee, or person using the project, where + `using' is a generic term including compiling the project's source + code as well as linking it to form a `program' or `executable'. + This program is referred to as `a program using the FreeType + engine'. + </para> + <para> + This license applies to all files distributed in the original + FreeType Project, including all source code, binaries and + documentation, unless otherwise stated in the file in its + original, unmodified form as distributed in the original archive. + If you are unsure whether or not a particular file is covered by + this license, you must contact us to verify this. + </para> + <para> + The FreeType Project is copyright (C) 1996-2000 by David Turner, + Robert Wilhelm, and Werner Lemberg. All rights reserved except as + specified below. + </para> + </sect4> + <sect4> + <title>1. No Warranty</title> + <para> + THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO + USE, OF THE FREETYPE PROJECT. + </para> + </sect4> + <sect4> + <title>2. Redistribution</title> + <para> + This license grants a worldwide, royalty-free, perpetual and + irrevocable right and license to use, execute, perform, compile, + display, copy, create derivative works of, distribute and + sublicense the FreeType Project (in both source and object code + forms) and derivative works thereof for any purpose; and to + authorize others to exercise some or all of the rights granted + herein, subject to the following conditions: + </para> + <itemizedlist> + <listitem> + Redistribution of source code must retain this license file + (`FTL.TXT') unaltered; any additions, deletions or changes to + the original files must be clearly indicated in accompanying + documentation. The copyright notices of the unaltered, + original files must be preserved in all copies of source + files. + </listitem> + <listitem> + Redistribution in binary form must provide a disclaimer that + states that the software is based in part of the work of the + FreeType Team, in the distribution documentation. We also + encourage you to put an URL to the FreeType web page in your + documentation, though this isn't mandatory. + </listitem> + </itemizedlist> + <para> + These conditions apply to any software derived from or based on + the FreeType Project, not just the unmodified files. If you use + our work, you must acknowledge us. However, no fee need be paid + to us. + </para> + </sect4> + <sect4> + <title>3. Advertising</title> + <para> + Neither the FreeType authors and contributors nor you shall use + the name of the other for commercial, advertising, or promotional + purposes without specific prior written permission. + </para> + <para> + We suggest, but do not require, that you use one or more of the + following phrases to refer to this software in your documentation + or advertising materials: `FreeType Project', `FreeType Engine', + `FreeType library', or `FreeType Distribution'. + </para> + <para> + As you have not signed this license, you are not required to + accept it. However, as the FreeType Project is copyrighted + material, only this license, or another one contracted with the + authors, grants you the right to use, distribute, and modify it. + Therefore, by using, distributing, or modifying the FreeType + Project, you indicate that you understand and accept all the terms + of this license. + </para> + </sect4> + <sect4> + <title>4. Contacts</title> + <para> + There are two mailing lists related to FreeType: + </para> + <itemizedlist> + <listitem> + <para> + freetype@nongnu.org + </para> + <para> + Discusses general use and applications of FreeType, as well as + future and wanted additions to the library and distribution. + If you are looking for support, start in this list if you + haven't found anything to help you in the documentation. + </para> + </listitem> + <listitem> + <para> + freetype-devel@nongnu.org + </para> + <para> + Discusses bugs, as well as engine internals, design issues, + specific licenses, porting, etc. + </para> + </listitem> + </itemizedlist> + <para> + Our home page can be found at + </para> + <para> + http://www.freetype.org + </para> + </sect4> + </sect4> + </sect2> + <sect2 id="licVPX"> + <title>VPX License</title> + <para> + Copyright (c) 2010, The WebM Project authors. All rights reserved. + </para> + <para> + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + </para> + <itemizedlist> + <listitem> + <para> + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + </para> + </listitem> + <listitem> + <para> + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + </para> + </listitem> + <listitem> + <para> + Neither the name of Google, nor the WebM Project, nor the names + of its contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + </para> + </listitem> + </itemizedlist> + <para> + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + </para> + </sect2> </sect1> </appendix> diff --git a/doc/manual/en_US/user_Troubleshooting.xml b/doc/manual/en_US/user_Troubleshooting.xml index 43a00665..8ea768d7 100644 --- a/doc/manual/en_US/user_Troubleshooting.xml +++ b/doc/manual/en_US/user_Troubleshooting.xml @@ -154,8 +154,8 @@ format and can be easily analyzed with Wireshark.</para> </sect2> - <sect2> - <title id="ts_debugger">The built-in VM debugger</title> + <sect2 id="ts_debugger"> + <title>The built-in VM debugger</title> <para>VirtualBox includes a built-in VM debugger, which advanced users may find useful. This debugger allows for examining and, to some extent, @@ -562,10 +562,11 @@ <para>For optimal virtualization performance, the C1E power state support in the system's BIOS should be disabled, if such a setting is - available (not all systems support the C1E power state). Disabling other - power management settings may also improve performance. However, a - balance between performance and power consumption must always be - considered.</para> + available (not all systems support the C1E power state). On Intel + systems the <computeroutput>Intel C State</computeroutput> setting + should be disabled. Disabling other power management settings + may also improve performance. However, a balance between performance + and power consumption must always be considered.</para> </sect2> <sect2 id="ts_gui-2d-grayed-out"> @@ -902,7 +903,7 @@ <para>Linux kernels shipped with Red Hat Enterprise Linux (RHEL) as of release 4.7 and 5.1 as well as kernels of related Linux distributions - (for instance CentOS and Oracle Enterprise Linux) support a kernel + (for instance CentOS and Oracle Linux) support a kernel parameter <emphasis>divider=N</emphasis>. Hence, such kernels support a lower timer frequency without recompilation. We suggest to add the kernel parameter <emphasis>divider=10</emphasis> to select a guest @@ -1280,7 +1281,7 @@ VirtualBox</screen> automatically. They are only accessible from the user account they are running under. <computeroutput>VBoxSVC</computeroutput> owns the VirtualBox configuration database which normally resides in - <computeroutput>~/.VirtualBox</computeroutput>. While it is running, the + <computeroutput>~/.config/VirtualBox</computeroutput>, or the appropriate configuration directory for your operating system. While it is running, the configuration files are locked. Communication between the various VirtualBox components and <computeroutput>VBoxSVC</computeroutput> is performed through a local domain socket residing in @@ -1384,7 +1385,7 @@ none /proc/bus/usb usbfs devgid=85,devmode=664 0 0</screen>Re <sect2> <title>Cannot start VM, not enough contiguous memory</title> - <para>The ZFS file system is known to use all available RAM as cache if + <para>The ZFS file system is known to use nearly all available RAM as cache if the default system settings are not changed. This may lead to a heavy fragmentation of the host memory preventing VirtualBox VMs from being started. We recommend to limit the ZFS cache by adding a line<screen>set zfs:zfs_arc_max = xxxx</screen> diff --git a/doc/manual/en_US/user_VBoxManage.xml b/doc/manual/en_US/user_VBoxManage.xml index bac32c6f..95d6c258 100644 --- a/doc/manual/en_US/user_VBoxManage.xml +++ b/doc/manual/en_US/user_VBoxManage.xml @@ -83,8 +83,7 @@ All rights reserved. Virtual machine 'SUSE 10.2' is created. UUID: c89fc351-8ec6-4f02-a048-57f4d25288e5 -Settings file: '/home/username/.VirtualBox/Machines/SUSE 10.2/SUSE 10.2.xml' -</screen> +Settings file: '/home/username/.config/VirtualBox/Machines/SUSE 10.2/SUSE 10.2.xml'</screen> <para>As can be seen from the above output, a new virtual machine has been created with a new UUID and a new XML settings file.</para> @@ -310,7 +309,7 @@ All rights reserved. Name: Windows XP Guest OS: Other/Unknown UUID: 1bf3464d-57c6-4d49-92a9-a5cc3816b7e7 -Config file: /home/username/.VirtualBox/Machines/Windows XP/Windows XP.xml +Config file: /home/username/.config/VirtualBox/Machines/Windows XP/Windows XP.xml Memory size: 512MB VRAM size: 12MB Number of CPUs: 2 @@ -325,7 +324,6 @@ IOAPIC: on PAE: on Time offset: 0 ms Hardw. virt.ext: on -Hardw. virt.ext exclusive: on Nested Paging: on VT-x VPID: off State: powered off (since 2009-10-20T14:52:19.000000000) @@ -364,8 +362,7 @@ USB Device Filters: Shared folders: <none> -Statistics update: disabled -</screen></para> +Statistics update: disabled</screen></para> </sect1> <sect1 id="vboxmanage-registervm"> @@ -413,8 +410,8 @@ Statistics update: disabled </orderedlist></para> </sect1> - <sect1> - <title id="vboxmanage-createvm">VBoxManage createvm</title> + <sect1 id="vboxmanage-createvm"> + <title>VBoxManage createvm</title> <para>This command creates a new XML virtual machine definition file.</para> @@ -423,7 +420,7 @@ Statistics update: disabled is required and must specify the name of the machine. Since this name is used by default as the file name of the settings file (with the extension <computeroutput>.xml</computeroutput>) and the machine folder (a subfolder - of the <computeroutput>.VirtualBox/Machines</computeroutput> folder), it + of the <computeroutput>.config/VirtualBox/Machines</computeroutput> folder - this folder name may vary depending on the operating system and the version of VirtualBox which you are using), it must conform to your host operating system's requirements for file name specifications. If the VM is later renamed, the file and folder names will change automatically.</para> @@ -550,19 +547,25 @@ Statistics update: disabled </listitem> <listitem> - <para><computeroutput>--synthcpu on|off</computeroutput>: This - setting determines whether VirtualBox will expose a synthetic CPU - to the guest to allow live migration between host systems that - differ significantly.</para> + <para><computeroutput>--pae on|off</computeroutput>: This + enables/disables PAE (see <xref + linkend="settings-processor" />).</para> </listitem> <listitem> - <para><computeroutput>--pae on|off</computeroutput>: This - enables/disables PAE (see <xref + <para><computeroutput>--longmode on|off</computeroutput>: This + enables/disables long mode (see <xref linkend="settings-processor" />).</para> </listitem> <listitem> + <para><computeroutput>--synthcpu on|off</computeroutput>: This + setting determines whether VirtualBox will expose a synthetic CPU + to the guest to allow live migration between host systems that + differ significantly.</para> + </listitem> + + <listitem> <para><computeroutput>--hpet on|off</computeroutput>: This enables/disables a High Precision Event Timer (HPET) which can replace the legacy system timers. This is turned off by default. @@ -577,13 +580,11 @@ Statistics update: disabled </listitem> <listitem> - <para><computeroutput>--hwvirtexexcl on|off</computeroutput>: This - specifies whether VirtualBox will make exclusive use of the - hardware virtualization extensions (Intel VT-x or AMD-V) in the - processor of your host system; see <xref linkend="hwvirt" />. If - you wish to simultaneously share these extensions with other - hypervisors, then you must disable this setting. Doing so has - negative performance implications.</para> + <para><computeroutput>--triplefaultreset on|off</computeroutput>: + This setting allows to reset the guest instead of triggering a + Guru Meditation. Some guests raise a triple fault to reset the + CPU so sometimes this is desired behavior. Works only for non-SMP + guests.</para> </listitem> <listitem> @@ -612,6 +613,13 @@ Statistics update: disabled </listitem> <listitem> + <para><computeroutput>--vtxux on|off</computeroutput>: If + hardware virtualization is enabled, for Intel VT-x only, this + setting enables or disables the use of the unrestricted guest mode + feature for executing your guest.</para> + </listitem> + + <listitem> <para><computeroutput>--accelerate3d on|off</computeroutput>: This enables, if the Guest Additions are installed, whether hardware 3D acceleration should be available; see <xref @@ -635,7 +643,9 @@ Statistics update: disabled <para>With <computeroutput>--bioslogoimagepath <imagepath></computeroutput> you can, if you are so inclined, replace the image that is shown, with your own logo. The - image must be an uncompressed 256 color BMP file.</para> + image must be an uncompressed 256 color BMP file without color + space information (Windows 3.0 format). The image must not be + bigger than 640 x 480.</para> </listitem> <listitem> @@ -691,6 +701,32 @@ Statistics update: disabled be specified in megabytes. The default size is 0 megabytes. For details, see <xref linkend="guestadd-balloon" />.</para> </listitem> + + <listitem> + <para><computeroutput>--lptmode<1-N> + <Device></computeroutput> + Specifies the Device Name of the parallel port that + the Parallel Port feature will be using. Use this + <emphasis>before</emphasis> <computeroutput>--lpt</computeroutput>. + This feature is host operating system specific.</para> + </listitem> + + <listitem> + <para><computeroutput>--lpt<1-N> + <I/O base> <IRQ></computeroutput> + Specifies the I/O address of the parallel port and the IRQ + number that the Parallel Port feature will be using. Use this + <emphasis>after</emphasis> + <computeroutput>--lptmod</computeroutput>. I/O base address and IRQ are + the values that guest sees i.e. the values avalable under guest Device Manager.</para> + </listitem> + + <listitem> + <para><computeroutput>--defaultfrontend + default|<name></computeroutput>: This allows you to specify + the default frontend which will be used when starting this VM; see + <xref linkend="vboxmanage-startvm" /> for details.</para> + </listitem> </itemizedlist></para> </sect2> @@ -879,7 +915,7 @@ Statistics update: disabled </listitem> <listitem> - <para><computeroutput>--natnatsettings<1-N> + <para><computeroutput>--natsettings<1-N> [<mtu>],[<socksnd>],[<sockrcv>],[<tcpsnd>], [<tcprcv>]</computeroutput>: This option controls several NAT settings (please see <xref linkend="nat-adv-settings" /> for @@ -901,8 +937,7 @@ Statistics update: disabled </sect2> <sect2 id="vboxmanage-modifyvm-other"> - <title>Serial port, audio, clipboard, remote desktop and USB - settings</title> + <title>Serial port, audio, clipboard and USB settings</title> <para>The following other hardware settings are available through <computeroutput>VBoxManage modifyvm</computeroutput>:<itemizedlist> @@ -998,7 +1033,7 @@ Statistics update: disabled </itemizedlist></para> </sect2> - <sect2> + <sect2 id="vboxmanage-modifyvm-vrde"> <title>Remote machine settings</title> <para>The following settings that affect remote machine behavior are @@ -1033,6 +1068,22 @@ Statistics update: disabled interface the VRDE server will bind to. If specified, the server will accept connections only on the specified host network interface.</para> + <para>The setting can be used to specify whether the VRDP server + should accept either IPv4 or IPv6 or both connections: + <itemizedlist> + <listitem> + <para>only IPv4: <computeroutput>--vrdeaddress "0.0.0.0" + </computeroutput></para> + </listitem> + <listitem> + <para>only IPv6: <computeroutput>--vrdeaddress "::" + </computeroutput></para> + </listitem> + <listitem> + <para>both IPv6 and IPv4 (default): <computeroutput>--vrdeaddress "" + </computeroutput></para> + </listitem> + </itemizedlist></para> </listitem> <listitem> @@ -1179,7 +1230,7 @@ Statistics update: disabled when the network type is NAT (<computeroutput>keepnatmacs</computeroutput>). If you add <computeroutput>keepdisknames</computeroutput> all new disk images - are called like the original once, otherwise they are + are called like the original ones, otherwise they are renamed.</para> </listitem> <listitem> @@ -1201,7 +1252,7 @@ Statistics update: disabled <listitem> <para><computeroutput>--register</computeroutput>: Automatically register the new clone in this VirtualBox - installation. If you manually want register the new VM later, see + installation. If you manually want to register the new VM later, see <xref linkend="vboxmanage-registervm" /> for instructions how to do so.</para> </listitem> @@ -1315,6 +1366,14 @@ Virtual system 0: <para>For virtualization products which aren't fully compatible with the OVF standard 1.0 you can enable a OVF 0.9 legacy mode with the <computeroutput>--legacy09</computeroutput> option.</para> + + <para>To specify options controlling the exact content of the appliance + file, you can use <computeroutput>--option</computeroutput> to request the + creation of a manifest file (encouraged, allows detection of corrupted + appliances on import), the additional export of DVD images, and the + exclusion of MAC addresses. You can specify a list of options, e.g. + <computeroutput>--option manifest,nomacs</computeroutput>. For details, + check the help output of <computeroutput>VBoxManage export</computeroutput>.</para> </sect1> <sect1 id="vboxmanage-startvm"> @@ -1323,30 +1382,22 @@ Virtual system 0: <para>This command starts a virtual machine that is currently in the "Powered off" or "Saved" states.</para> - <note> - <para>This is provided for backwards compatibility only. We recommend to - start virtual machines directly by running the respective front-end, as - you might otherwise miss important error and state information that - VirtualBox may display on the console. This is especially important for - front-ends other than <computeroutput>VirtualBox</computeroutput>, our - graphical user interface, because those cannot display error messages in - a popup window. See <xref linkend="vboxheadless" /> for more - information.</para> - </note> - <para>The optional <computeroutput>--type</computeroutput> specifier - determines whether the machine will be started in a window (GUI mode, - which is the default) or whether the output should go through - <computeroutput>VBoxHeadless</computeroutput>, with VRDE enabled or not; - see <xref linkend="vboxheadless" /> for more information. The list of - types is subject to change, and it's not guaranteed that all types are - accepted by any product variant.</para> + determines whether the machine will be started in a window or whether the + output should go through <computeroutput>VBoxHeadless</computeroutput>, + with VRDE enabled or not; see <xref linkend="vboxheadless" /> for more + information. The list of types is subject to change, and it's not + guaranteed that all types are accepted by any product variant.</para> + + <para>The global or per-VM default value for the VM frontend type will be + taken if the type is not explicitly specified. If none of these are set, + the GUI variant will be started.</para> <para>The following values are allowed:</para> <glosslist> <glossentry> - <glossterm>gui</glossterm> + <glossterm><computeroutput>gui</computeroutput></glossterm> <glossdef> <para>Starts a VM showing a GUI window. This is the default.</para> @@ -1354,13 +1405,28 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>headless</glossterm> + <glossterm><computeroutput>headless</computeroutput></glossterm> <glossdef> <para>Starts a VM without a window for remote display only.</para> </glossdef> </glossentry> + + <glossentry> + <glossterm><computeroutput>sdl</computeroutput></glossterm> + + <glossdef> + <para>Starts a VM with a minimal GUI and limited features.</para> + </glossdef> + </glossentry> </glosslist> + + <note> + <para>If you experience problems with starting virtual machines with + particular frontends and there is no conclusive error information, + consider starting virtual machines directly by running the respective + front-end, as this can give additional error information.</para> + </note> </sect1> <sect1 id="vboxmanage-controlvm"> @@ -1425,7 +1491,7 @@ Virtual system 0: </listitem> <listitem> - <para><computeroutput>VBoxManage controlvm <vm> teleport + <para><computeroutput>VBoxManage controlvm "VM name" teleport --hostname <name> --port <port> [--passwordfile <file> | --password <password>]</computeroutput> makes the machine the source of a teleporting operation and initiates a @@ -1540,7 +1606,7 @@ Virtual system 0: <title>VBoxManage adoptstate</title> <para>If you have a saved state file (<computeroutput>.sav</computeroutput>) - that is seperate from the VM configuration, you can use this command to + that is separate from the VM configuration, you can use this command to "adopt" the file. This will change the VM to saved state and when you start it, VirtualBox will attempt to restore it from the saved state file you indicated. This command should only be used in special setups.</para> @@ -1563,7 +1629,11 @@ Virtual system 0: of the current state of the virtual machine. You must supply a name for the snapshot and can optionally supply a description. The new snapshot is inserted into the snapshots tree as a child of the current snapshot and - then becomes the new current snapshot.</para> + then becomes the new current snapshot. The + <computeroutput>--description</computeroutput> parameter allows to + describe the snapshot. If <computeroutput>--live</computeroutput> + is specified, the VM will not be stopped during the snapshot creation + (live smapshotting).</para> <para>The <computeroutput>delete</computeroutput> operation deletes a snapshot (specified by name or by UUID). This can take a while to finish @@ -1610,8 +1680,8 @@ Virtual system 0: become unregistered in any case.</para> </sect1> - <sect1> - <title id="vboxmanage-storageattach">VBoxManage storageattach</title> + <sect1 id="vboxmanage-storageattach"> + <title>VBoxManage storageattach</title> <para>This command attaches/modifies/removes a storage medium connected to a storage controller that was previously added with the @@ -1643,15 +1713,14 @@ Virtual system 0: [--username <username>] [--password <password>] [--initiator <initiator>] - [--intnet] -</screen> + [--intnet]</screen> <para>A number of parameters are commonly required; the ones at the end of the list are required only for iSCSI targets (see below).</para> <para>The common parameters are:<glosslist> <glossentry> - <glossterm>uuid|vmname</glossterm> + <glossterm><computeroutput>uuid|vmname</computeroutput></glossterm> <glossdef> <para>The VM UUID or VM Name. Mandatory.</para> @@ -1659,7 +1728,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>storagectl</glossterm> + <glossterm><computeroutput>--storagectl</computeroutput></glossterm> <glossdef> <para>Name of the storage controller. Mandatory. The list of the @@ -1670,7 +1739,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>port</glossterm> + <glossterm><computeroutput>--port</computeroutput></glossterm> <glossdef> <para>The number of the storage controller's port which is to be @@ -1680,7 +1749,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>device</glossterm> + <glossterm><computeroutput>--device</computeroutput></glossterm> <glossdef> <para>The number of the port's device which is to be modified. @@ -1690,7 +1759,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>type</glossterm> + <glossterm><computeroutput>--type</computeroutput></glossterm> <glossdef> <para>Define the type of the drive to which the medium is being @@ -1702,7 +1771,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>medium</glossterm> + <glossterm><computeroutput>--medium</computeroutput></glossterm> <glossdef> <para>Specifies what is to be attached. The following values are @@ -1719,6 +1788,12 @@ Virtual system 0: </listitem> <listitem> + <para>"additions": For a virtual DVD drive only, this + attaches the <emphasis>VirtualBox Guest Additions</emphasis> + image to the given device slot.</para> + </listitem> + + <listitem> <para>If a UUID is specified, it must be the UUID of a storage medium that is already known to VirtualBox (e.g. because it has been attached to another virtual machine). @@ -1754,7 +1829,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>mtype</glossterm> + <glossterm><computeroutput>--mtype</computeroutput></glossterm> <glossdef> <para>Defines how this medium behaves with respect to snapshots @@ -1764,7 +1839,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>comment</glossterm> + <glossterm><computeroutput>--comment</computeroutput></glossterm> <glossdef> <para>Any description that you want to have stored with this @@ -1775,7 +1850,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>setuuid, setparentuuid</glossterm> + <glossterm><computeroutput>--setuuid, --setparentuuid</computeroutput></glossterm> <glossdef> <para>Modifies the UUID or parent UUID of a medium before @@ -1790,7 +1865,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>passthrough</glossterm> + <glossterm><computeroutput>--passthrough</computeroutput></glossterm> <glossdef> <para>For a virtual DVD drive only, you can enable DVD writing @@ -1800,7 +1875,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>tempeject</glossterm> + <glossterm><computeroutput>--tempeject</computeroutput></glossterm> <glossdef> <para>For a virtual DVD drive only, you can configure the behavior @@ -1811,7 +1886,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>nonrotational</glossterm> + <glossterm><computeroutput>--nonrotational</computeroutput></glossterm> <glossdef> <para>This switch allows to enable the non-rotational flag for virtual @@ -1822,7 +1897,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>bandwidthgroup</glossterm> + <glossterm><computeroutput>--bandwidthgroup</computeroutput></glossterm> <glossdef> <para>Sets the bandwidth group to use for the given device; see @@ -1831,7 +1906,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>forceunmount</glossterm> + <glossterm><computeroutput>--forceunmount</computeroutput></glossterm> <glossdef> <para>For a virtual DVD or floppy drive only, this forcibly @@ -1847,7 +1922,7 @@ Virtual system 0: see <xref linkend="storage-iscsi" /> --, additional parameters must or can be used:<glosslist> <glossentry> - <glossterm>server</glossterm> + <glossterm><computeroutput>--server</computeroutput></glossterm> <glossdef> <para>The host name or IP address of the iSCSI target; @@ -1856,7 +1931,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>target</glossterm> + <glossterm><computeroutput>--target</computeroutput></glossterm> <glossdef> <para>Target name string. This is determined by the iSCSI target @@ -1865,7 +1940,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>tport</glossterm> + <glossterm><computeroutput>--tport</computeroutput></glossterm> <glossdef> <para>TCP/IP port number of the iSCSI service on the target @@ -1874,7 +1949,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>lun</glossterm> + <glossterm><computeroutput>--lun</computeroutput></glossterm> <glossdef> <para>Logical Unit Number of the target resource (optional). @@ -1883,7 +1958,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>username, password</glossterm> + <glossterm><computeroutput>--username, --password</computeroutput></glossterm> <glossdef> <para>Username and password (initiator secret) for target @@ -1898,7 +1973,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>intnet</glossterm> + <glossterm><computeroutput>--intnet</computeroutput></glossterm> <glossdef> <para>If specified, connect to the iSCSI target via Internal @@ -1924,14 +1999,14 @@ Virtual system 0: [--add <ide/sata/scsi/floppy>] [--controller <LsiLogic|LSILogicSAS|BusLogic| IntelAhci|PIIX3|PIIX4|ICH6|I82078>] - [--sataportcount <1-30>] + [--portcount <1-30>] [--hostiocache on|off] [--bootable on|off] [--remove]</screen> <para>where the parameters mean: <glosslist> <glossentry> - <glossterm>uuid|vmname</glossterm> + <glossterm><computeroutput>uuid|vmname</computeroutput></glossterm> <glossdef> <para>The VM UUID or VM Name. Mandatory.</para> @@ -1939,7 +2014,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>name</glossterm> + <glossterm><computeroutput>--name</computeroutput></glossterm> <glossdef> <para>Name of the storage controller. Mandatory.</para> @@ -1947,7 +2022,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>add</glossterm> + <glossterm><computeroutput>--add</computeroutput></glossterm> <glossdef> <para>Define the type of the system bus to which the storage @@ -1956,7 +2031,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>controller</glossterm> + <glossterm><computeroutput>--controller</computeroutput></glossterm> <glossdef> <para>Allows to choose the type of chipset being emulated for the @@ -1965,7 +2040,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>sataportcount</glossterm> + <glossterm><computeroutput>--portcount</computeroutput></glossterm> <glossdef> <para>This determines how many ports the SATA controller should @@ -1974,7 +2049,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>hostiocache</glossterm> + <glossterm><computeroutput>--hostiocache</computeroutput></glossterm> <glossdef> <para>Configures the use of the host I/O cache for all disk images @@ -1984,7 +2059,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>bootable</glossterm> + <glossterm><computeroutput>--bootable</computeroutput></glossterm> <glossdef> <para>Selects whether this controller is bootable.</para> @@ -1992,7 +2067,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>remove</glossterm> + <glossterm><computeroutput>--remove</computeroutput></glossterm> <glossdef> <para>Removes the storage controller from the VM config.</para> @@ -2032,7 +2107,7 @@ Virtual system 0: </para> <para>The parameters mean:<glosslist> <glossentry> - <glossterm>uuid|vmname</glossterm> + <glossterm><computeroutput>uuid|vmname</computeroutput></glossterm> <glossdef> <para>The VM UUID or VM Name. Mandatory.</para> @@ -2040,7 +2115,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>name</glossterm> + <glossterm><computeroutput>--name</computeroutput></glossterm> <glossdef> <para>Name of the bandwidth group. Mandatory.</para> @@ -2048,7 +2123,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>type</glossterm> + <glossterm><computeroutput>--type</computeroutput></glossterm> <glossdef> <para>Type of the bandwidth group. Mandatory. Two types are @@ -2061,7 +2136,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>limit</glossterm> + <glossterm><computeroutput>--limit</computeroutput></glossterm> <glossdef> <para>Specifies the limit for the given group. Can be changed @@ -2113,7 +2188,7 @@ Virtual system 0: <para>where the parameters mean:<glosslist> <glossentry> - <glossterm>filename</glossterm> + <glossterm><computeroutput>--filename</computeroutput></glossterm> <glossdef> <para>Allows to choose a file name. Mandatory.</para> @@ -2121,7 +2196,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>size</glossterm> + <glossterm><computeroutput>--size</computeroutput></glossterm> <glossdef> <para>Allows to define the image capacity, in 1 MiB units. @@ -2130,7 +2205,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>format</glossterm> + <glossterm><computeroutput>--format</computeroutput></glossterm> <glossdef> <para>Allows to choose a file format for the output file different @@ -2139,7 +2214,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>variant</glossterm> + <glossterm><computeroutput>--variant</computeroutput></glossterm> <glossdef> <para>Allows to choose a file format variant for the output file. @@ -2160,7 +2235,7 @@ Virtual system 0: <para>With the <computeroutput>modifyhd</computeroutput> command, you can change the characteristics of a disk image after it has been - created:<screen>VBoxManage modifyhd <uuid>|<filename> + created:<screen>VBoxManage modifyhd <uuid|filename> [--type normal|writethrough|immutable|shareable| readonly|multiattach] [--autoreset on|off] @@ -2210,7 +2285,10 @@ Virtual system 0: Execute <computeroutput>sdelete -z</computeroutput> in the guest to zero the free disk space before compressing the virtual disk image. For Linux, use the <code>zerofree</code> utility which - supports ext2/ext3 filesystems.</para> + supports ext2/ext3 filesystems. For Mac OS X guests, use the + <emphasis>Erase Free Space</emphasis> feature of the built-in + <emphasis>Disk Utility</emphasis>. Use + <emphasis>Zero Out Data</emphasis> there.</para> <para>Please note that compacting is currently only available for VDI images. A similar effect can be achieved by zeroing out free @@ -2251,7 +2329,7 @@ Virtual system 0: the Virtual Media Manager; see <xref linkend="vdis" /> and <xref linkend="cloningvdis" />. The syntax is as follows:</para> - <screen>VBoxManage clonehd <uuid>|<filename> <outputfile> + <screen>VBoxManage clonehd <uuid|inutfile> <uuid|outputfile> [--format VDI|VMDK|VHD|RAW|<other>] [--variant Standard,Fixed,Split2G,Stream,ESX] [--existing]</screen> @@ -2264,7 +2342,7 @@ Virtual system 0: as a relative path starting from the current directory.</para> <para>The following options are available:<glosslist> <glossentry> - <glossterm>format</glossterm> + <glossterm><computeroutput>--format</computeroutput></glossterm> <glossdef> <para>Allow to choose a file format for the output file different @@ -2273,7 +2351,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>variant</glossterm> + <glossterm><computeroutput>--variant</computeroutput></glossterm> <glossdef> <para>Allow to choose a file format variant for the output file. @@ -2284,7 +2362,7 @@ Virtual system 0: </glossentry> <glossentry> - <glossterm>existing</glossterm> + <glossterm><computeroutput>--existing</computeroutput></glossterm> <glossdef> <para>Perform the clone operation to an already existing @@ -2319,7 +2397,7 @@ VBoxManage convertfromraw stdin <outputfile> <bytes> <para>where the parameters mean:<glosslist> <glossentry> - <glossterm>bytes</glossterm> + <glossterm><computeroutput>--bytes</computeroutput></glossterm> <glossdef> <para>The size of the image file, in bytes, provided through @@ -2328,7 +2406,7 @@ VBoxManage convertfromraw stdin <outputfile> <bytes> </glossentry> <glossentry> - <glossterm>format</glossterm> + <glossterm><computeroutput>--format</computeroutput></glossterm> <glossdef> <para>Select the disk image format to create. Default is @@ -2337,7 +2415,7 @@ VBoxManage convertfromraw stdin <outputfile> <bytes> </glossentry> <glossentry> - <glossterm>variant</glossterm> + <glossterm><computeroutput>--variant</computeroutput></glossterm> <glossdef> <para>Allow to choose a file format variant for the output file. @@ -2348,7 +2426,7 @@ VBoxManage convertfromraw stdin <outputfile> <bytes> </glossentry> <glossentry> - <glossterm>uuid</glossterm> + <glossterm><computeroutput>--uuid</computeroutput></glossterm> <glossdef> <para>Allow to specifiy the UUID of the output file.</para> @@ -2406,7 +2484,7 @@ Value: 2006.01.01</screen> in the "Global settings" dialog in the graphical user interface. The following properties are available:<glosslist> <glossentry> - <glossterm>machinefolder</glossterm> + <glossterm><computeroutput>machinefolder</computeroutput></glossterm> <glossdef> <para>This specifies the default folder in which virtual machine @@ -2416,7 +2494,18 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>vrdeauthlibrary</glossterm> + <glossterm><computeroutput>hwvirtexclusive</computeroutput></glossterm> + <para>This specifies whether VirtualBox will make exclusive use of + the hardware virtualization extensions (Intel VT-x or AMD-V) of the + host system's processor; see <xref linkend="hwvirt" />. If you wish to + share these extensions with other hypervisors running at the same time, + you must disable this setting. Doing so has negative performance implications. + </para> + </glossentry> + + + <glossentry> + <glossterm><computeroutput>vrdeauthlibrary</computeroutput></glossterm> <glossdef> <para>This specifies which library to use when "external" @@ -2426,7 +2515,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>websrvauthlibrary</glossterm> + <glossterm><computeroutput>websrvauthlibrary</computeroutput></glossterm> <glossdef> <para>This specifies which library the web service uses to @@ -2437,7 +2526,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>vrdelibrary</glossterm> + <glossterm><computeroutput>vrdeextpack</computeroutput></glossterm> <glossdef> <para>This specifies which library implements the VirtualBox @@ -2446,11 +2535,28 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>hwvirtexenabled</glossterm> + <glossterm><computeroutput>loghistorycount</computeroutput></glossterm> + + <glossdef> + <para>This selects how many rotated (old) VM logs are kept.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>autostartdbpath</computeroutput></glossterm> + + <glossdef> + <para>This selects the path to the autostart database. See + <xref linkend="autostart" />.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>defaultfrontend</computeroutput></glossterm> <glossdef> - <para>This selects whether or not hardware virtualization support - is enabled by default.</para> + <para>This selects the global default VM frontend setting. See + <xref linkend="vboxmanage-startvm" />.</para> </glossdef> </glossentry> </glosslist></para> @@ -2615,6 +2721,11 @@ Value: 2006.01.01</screen> pattern rules are the same as for the "enumerate" subcommand above.</para> </listitem> + + <listitem> + <para><computeroutput>delete <vm> <property> + </computeroutput>: Deletes a formerly set guest property. + </para></listitem> </itemizedlist></para> </sect1> @@ -2627,18 +2738,19 @@ Value: 2006.01.01</screen> <para>Generally, the syntax is as follows:</para> - <screen>VBoxManage guestcontrol <command></screen> + <screen>VBoxManage guestcontrol <uuid|vmname> <command></screen> <para>The following subcommands are available (where - <computeroutput><vm></computeroutput>, in each case, can either be a + <computeroutput><uuid|vmname></computeroutput>, in each case, can either be a VM name or a VM UUID, as with the other VBoxManage commands):<itemizedlist> <listitem> - <para><computeroutput>execute</computeroutput>, which allows for + <para><emphasis role="bold"><computeroutput>execute</computeroutput></emphasis>, + which allows for executing a program/script (process) which already is installed and runnable on the guest. This command only works while a VM is up and running and has the following syntax:</para> - <screen>VBoxManage guestcontrol <vmname>|<uuid> exec[ute] + <screen>VBoxManage guestcontrol <uuid|vmname> exec[ute] --image <path to program> --username <name> [--passwordfile <file> | --password <password>] [--environment "<NAME>=<VALUE> [<NAME>=<VALUE>]"] @@ -2649,7 +2761,7 @@ Value: 2006.01.01</screen> <para>where the parameters mean: <glosslist> <glossentry> - <glossterm>uuid|vmname</glossterm> + <glossterm><computeroutput>uuid|vmname</computeroutput></glossterm> <glossdef> <para>The VM UUID or VM name. Mandatory.</para> @@ -2657,7 +2769,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--image "<path to program>"</glossterm> + <glossterm><computeroutput>--image "<path to program>"</computeroutput></glossterm> <glossdef> <para>Absolute path and process name of process to execute @@ -2667,7 +2779,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--username <name></glossterm> + <glossterm><computeroutput>--username <name></computeroutput></glossterm> <glossdef> <para>Name of the user the process should run under. This @@ -2676,7 +2788,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--passwordfile <file></glossterm> + <glossterm><computeroutput>--passwordfile <file></computeroutput></glossterm> <glossdef> <para>Password of the user account specified to be read from @@ -2686,7 +2798,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--password <password></glossterm> + <glossterm><computeroutput>--password <password></computeroutput></glossterm> <glossdef> <para>Password of the user account specified with @@ -2696,7 +2808,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--dos2unix</glossterm> + <glossterm><computeroutput>--dos2unix</computeroutput></glossterm> <glossdef> Converts output from DOS/Windows guests to UNIX-compatible @@ -2705,8 +2817,8 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--environment - "<NAME>=<VALUE>"</glossterm> + <glossterm><computeroutput>--environment + "<NAME>=<VALUE>"</computeroutput></glossterm> <glossdef> <para>One or more environment variables to be set or @@ -2729,7 +2841,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--timeout <msec></glossterm> + <glossterm><computeroutput>--timeout <msec></computeroutput></glossterm> <glossdef> <para>Value (in milliseconds) that specifies the time how @@ -2741,7 +2853,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--unix2dos</glossterm> + <glossterm><computeroutput>--unix2dos</computeroutput></glossterm> <glossdef> Converts output from a UNIX/Linux guests to DOS-/Windows-compatible @@ -2750,7 +2862,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--verbose</glossterm> + <glossterm><computeroutput>--verbose</computeroutput></glossterm> <glossdef> <para>Tells VBoxManage to be more verbose.</para> @@ -2758,7 +2870,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--wait-exit</glossterm> + <glossterm><computeroutput>--wait-exit</computeroutput></glossterm> <glossdef> <para>Waits until the process ends and outputs its @@ -2767,7 +2879,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--wait-stdout</glossterm> + <glossterm><computeroutput>--wait-stdout</computeroutput></glossterm> <glossdef> <para>Waits until the process ends and outputs its @@ -2777,7 +2889,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--wait-stderr</glossterm> + <glossterm><computeroutput>--wait-stderr</computeroutput></glossterm> <glossdef> <para>Waits until the process ends and outputs its @@ -2787,7 +2899,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>[-- [<argument1s>] ... [<argumentNs>]]</glossterm> + <glossterm><computeroutput>[-- [<argument1s>] ... [<argumentNs>]]</computeroutput></glossterm> <glossdef> <para>One or more arguments to pass to the process being @@ -2835,18 +2947,19 @@ Value: 2006.01.01</screen> </listitem> <listitem> - <para><computeroutput>copyto</computeroutput>, which allows copying + <para><emphasis role="bold"><computeroutput>copyto</computeroutput></emphasis>, + which allows copying files from the host to the guest (only with installed Guest Additions 4.0 and later).</para> - <screen>VBoxManage guestcontrol <vmname>|<uuid> copyto|cp + <screen>VBoxManage guestcontrol <uuid|vmname> copyto|cp <guest source> <host dest> --username <name> [--passwordfile <file> | --password <password>] [--dryrun] [--follow] [--recursive] [--verbose]</screen> <para>where the parameters mean: <glosslist> <glossentry> - <glossterm>uuid|vmname</glossterm> + <glossterm><computeroutput>uuid|vmname</computeroutput></glossterm> <glossdef> <para>The VM UUID or VM name. Mandatory.</para> @@ -2854,7 +2967,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>source on host</glossterm> + <glossterm><computeroutput>source on host</computeroutput></glossterm> <glossdef> <para>Absolute path of source file(s) on host to copy over @@ -2866,7 +2979,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>destination on guest</glossterm> + <glossterm><computeroutput>destination on guest</computeroutput></glossterm> <glossdef> <para>Absolute destination path on the guest, e.g. @@ -2875,7 +2988,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--username <name></glossterm> + <glossterm><computeroutput>--username <name></computeroutput></glossterm> <glossdef> <para>Name of the user the copy process should run under. @@ -2884,7 +2997,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--passwordfile <file></glossterm> + <glossterm><computeroutput>--passwordfile <file></computeroutput></glossterm> <glossdef> <para>Password of the user account specified to be read from @@ -2894,7 +3007,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--password <password></glossterm> + <glossterm><computeroutput>--password <password></computeroutput></glossterm> <glossdef> <para>Password of the user account specified with @@ -2904,7 +3017,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--dryrun</glossterm> + <glossterm><computeroutput>--dryrun</computeroutput></glossterm> <glossdef> <para>Tells VBoxManage to only perform a dry run instead of @@ -2913,7 +3026,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--follow</glossterm> + <glossterm><computeroutput>--follow</computeroutput></glossterm> <glossdef> <para>Enables following symlinks on the host's @@ -2922,7 +3035,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--recursive</glossterm> + <glossterm><computeroutput>--recursive</computeroutput></glossterm> <glossdef> <para>Recursively copies files/directories of the specified @@ -2931,7 +3044,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--verbose</glossterm> + <glossterm><computeroutput>--verbose</computeroutput></glossterm> <glossdef> <para>Tells VBoxManage to be more verbose.</para> @@ -2939,7 +3052,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--flags <flags></glossterm> + <glossterm><computeroutput>--flags <flags></computeroutput></glossterm> <glossdef> <para>Additional flags to set. This is not used at the @@ -2950,25 +3063,27 @@ Value: 2006.01.01</screen> </listitem> <listitem> - <para><computeroutput>copyfrom</computeroutput>, which allows copying + <para><emphasis role="bold"><computeroutput>copyfrom</computeroutput></emphasis>, + which allows copying files from the guest to the host (only with installed Guest Additions 4.0 and later). It has the same parameters as <computeroutput>copyto</computeroutput> above.</para> </listitem> <listitem> - <para><computeroutput>createdirectory</computeroutput>, which allows + <para><emphasis role="bold"><computeroutput>createdirectory</computeroutput></emphasis>, + which allows copying files from the host to the guest (only with installed Guest Additions 4.0 and later).</para> - <screen>VBoxManage guestcontrol <vmname>|<uuid> createdir[ectory]|mkdir|md + <screen>VBoxManage guestcontrol <uuid|vmname> createdir[ectory]|mkdir|md <guest directory>... --username <name> [--passwordfile <file> | --password <password>] [--parents] [--mode <mode>] [--verbose]</screen> <para>where the parameters mean: <glosslist> <glossentry> - <glossterm>uuid|vmname</glossterm> + <glossterm><computeroutput>uuid|vmname</computeroutput></glossterm> <glossdef> <para>The VM UUID or VM name. Mandatory.</para> @@ -2976,7 +3091,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>directory to create on guest</glossterm> + <glossterm><computeroutput>directory to create on guest</computeroutput></glossterm> <glossdef> <para>Absolute path of directory/directories to create on @@ -2990,7 +3105,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--username <name></glossterm> + <glossterm><computeroutput>--username <name></computeroutput></glossterm> <glossdef> <para>Name of the user the copy process should run under. @@ -2999,7 +3114,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--passwordfile <file></glossterm> + <glossterm><computeroutput>--passwordfile <file></computeroutput></glossterm> <glossdef> <para>Password of the user account specified to be read from @@ -3009,7 +3124,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--password <password></glossterm> + <glossterm><computeroutput>--password <password></computeroutput></glossterm> <glossdef> <para>Password of the user account specified with @@ -3019,7 +3134,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--parents</glossterm> + <glossterm><computeroutput>--parents</computeroutput></glossterm> <glossdef> <para>Also creates not yet existing parent directories of @@ -3033,7 +3148,347 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--mode <mode></glossterm> + <glossterm><computeroutput>--mode <mode></computeroutput></glossterm> + + <glossdef> + <para>Sets the permission mode of the specified directory. + Only octal modes (e.g. + <computeroutput>0755</computeroutput>) are supported right + now.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--verbose</computeroutput></glossterm> + + <glossdef> + <para>Tells VBoxManage to be more verbose.</para> + </glossdef> + </glossentry> + </glosslist></para> + </listitem> + + <listitem> + <para><emphasis role="bold"><computeroutput>removedirectory</computeroutput></emphasis>, + which allows deletion of guest directories (only with installed Guest + Additions 4.3.2 and later).</para> + + <screen>VBoxManage guestcontrol <uuid|vmname> removedir[ectory]|rmdir + <guest directory>... --username <name> + [--passwordfile <file> | --password <password>] + [--recursive|-R|-r] [--verbose]</screen> + + <para>where the parameters mean: <glosslist> + <glossentry> + <glossterm><computeroutput>uuid|vmname</computeroutput></glossterm> + + <glossdef> + <para>The VM UUID or VM name. Mandatory.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>directory to remove on guest</computeroutput></glossterm> + + <glossdef> + <para>Absolute path of directory/directories to remove on + guest, e.g. <computeroutput>D:\Foo\Bar</computeroutput>. The + specified user must have appropriate rights to delete the + specified guest directories.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--username <name></computeroutput></glossterm> + + <glossdef> + <para>Name of the user the copy process should run under. + This user must exist on the guest OS.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--passwordfile <file></computeroutput></glossterm> + + <glossdef> + <para>Password of the user account specified to be read from + the given file. If not given, an empty password is + assumed.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--password <password></computeroutput></glossterm> + + <glossdef> + <para>Password of the user account specified with + <computeroutput>--username</computeroutput>. If not given, + an empty password is assumed.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--recursive</computeroutput></glossterm> + + <glossdef> + <para>Remove directories and their contents recursively.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--verbose</computeroutput></glossterm> + + <glossdef> + <para>Tells VBoxManage to be more verbose.</para> + </glossdef> + </glossentry> + </glosslist></para> + </listitem> + + <listitem> + <para><emphasis role="bold"><computeroutput>removefile</computeroutput></emphasis>, + which allows deletion of guest files (only with installed Guest + Additions 4.3.2 and later).</para> + + <screen>VBoxManage guestcontrol <uuid|vmname> removefile|rm + <guest file>... --username <name> + [--passwordfile <file> | --password <password>] + [--verbose]</screen> + + <para>where the parameters mean: <glosslist> + <glossentry> + <glossterm><computeroutput>uuid|vmname</computeroutput></glossterm> + + <glossdef> + <para>The VM UUID or VM name. Mandatory.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>file to remove on guest</computeroutput></glossterm> + + <glossdef> + <para>Absolute path of a file/files to remove on + guest, e.g. <computeroutput>D:\Foo\Bar\text.txt</computeroutput>. The + specified user must have appropriate rights to delete the + specified guest files.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--username <name></computeroutput></glossterm> + + <glossdef> + <para>Name of the user the copy process should run under. + This user must exist on the guest OS.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--passwordfile <file></computeroutput></glossterm> + + <glossdef> + <para>Password of the user account specified to be read from + the given file. If not given, an empty password is + assumed.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--password <password></computeroutput></glossterm> + + <glossdef> + <para>Password of the user account specified with + <computeroutput>--username</computeroutput>. If not given, + an empty password is assumed.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--verbose</computeroutput></glossterm> + + <glossdef> + <para>Tells VBoxManage to be more verbose.</para> + </glossdef> + </glossentry> + </glosslist></para> + </listitem> + + <listitem> + <para><emphasis role="bold"><computeroutput>ren[ame]|mv</computeroutput></emphasis>, + which allows renaming of guest files and/or directories (only with installed Guest + Additions 4.3.2 and later).</para> + + <screen>VBoxManage guestcontrol <uuid|vmname> ren[ame]|mv + <source>... <dest> --username <name> + [--passwordfile <file> | --password <password>] + [--verbose]</screen> + + <para>where the parameters mean: <glosslist> + <glossentry> + <glossterm><computeroutput>uuid|vmname</computeroutput></glossterm> + + <glossdef> + <para>The VM UUID or VM name. Mandatory.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>source</computeroutput></glossterm> + + <glossdef> + <para>Absolute path of one or more source(s) to move to + destination. If more than one source is specified, destination + must be an existing directory on the guest. The specified user + must have appropriate rights to access source and destination + files and directories.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>dest</computeroutput></glossterm> + + <glossdef> + <para>Absolute path of the destination to move the source(s) + to. This can be a directory or a file, depending if one or more + sources have been specified. The specified user + must have appropriate rights to access the destination + file and directory.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--username <name></computeroutput></glossterm> + + <glossdef> + <para>Name of the user the copy process should run under. + This user must exist on the guest OS.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--passwordfile <file></computeroutput></glossterm> + + <glossdef> + <para>Password of the user account specified to be read from + the given file. If not given, an empty password is + assumed.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--password <password></computeroutput></glossterm> + + <glossdef> + <para>Password of the user account specified with + <computeroutput>--username</computeroutput>. If not given, + an empty password is assumed.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--verbose</computeroutput></glossterm> + + <glossdef> + <para>Tells VBoxManage to be more verbose.</para> + </glossdef> + </glossentry> + </glosslist></para> + </listitem> + + <listitem> + <para><emphasis role="bold"><computeroutput>createtemporary</computeroutput></emphasis>, + which allows + copying files from the host to the guest (only with installed Guest + Additions 4.2 and later).</para> + + <screen>VBoxManage guestcontrol <uuid|vmname> createtemp[orary]|mktemp + <template> --username <name> + [--passwordfile <file> | --password <password>] + [--directory] [--secure] [--tmpdir <directory>] + [--domain <domain>] [--mode <mode>] [--verbose]</screen> + + <para>where the parameters mean: <glosslist> + <glossentry> + <glossterm><computeroutput>uuid|vmname</computeroutput></glossterm> + + <glossdef> + <para>The VM UUID or VM name. Mandatory.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>template</computeroutput></glossterm> + + <glossdef> + <para>A file name without a path and with at least three consecutive 'X' + characters or ending in 'X' + </para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--username <name></computeroutput></glossterm> + + <glossdef> + <para>Name of the user the copy process should run under. + This user must exist on the guest OS.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--passwordfile <file></computeroutput></glossterm> + + <glossdef> + <para>Password of the user account specified to be read from + the given file. If not given, an empty password is + assumed.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--password <password></computeroutput></glossterm> + + <glossdef> + <para>Password of the user account specified with + <computeroutput>--username</computeroutput>. If not given, + an empty password is assumed.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--directory</computeroutput></glossterm> + + <glossdef> + <para>Create a temporary directory instead of a file.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--secure</computeroutput></glossterm> + + <glossdef> + <para> + Secure creation. The file mode is fixed to + <computeroutput>0755</computeroutput>. And the operation + will fail if it cannot performed securely. + </para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--tmpdir <directory></computeroutput></glossterm> + + <glossdef> + <para> + Directory where the file / directory is created. If not + specified, the platform-specific temp directory is used. + </para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--mode <mode></computeroutput></glossterm> <glossdef> <para>Sets the permission mode of the specified directory. @@ -3044,7 +3499,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--verbose</glossterm> + <glossterm><computeroutput>--verbose</computeroutput></glossterm> <glossdef> <para>Tells VBoxManage to be more verbose.</para> @@ -3054,17 +3509,219 @@ Value: 2006.01.01</screen> </listitem> <listitem> - <para><computeroutput>stat</computeroutput>, which displays file + <para><emphasis role="bold"><computeroutput>list</computeroutput></emphasis>, + which lists various guest control information such as open guest sessions, + guest processes and guest files.</para> + + <screen>VBoxManage guestcontrol <uuid|vmname> list + <all|sessions|processes|files> [--verbose]</screen> + + <para>where the parameters mean: <glosslist> + <glossentry> + <glossterm><computeroutput>uuid|vmname</computeroutput></glossterm> + + <glossdef> + <para>The VM UUID or VM name. Mandatory.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>all|sessions|processes|files</computeroutput></glossterm> + + <glossdef> + <para>Whether to list guest sessions, guest processes, guest files + or all information available. Mandatory.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--verbose</computeroutput></glossterm> + + <glossdef> + <para>Tells VBoxManage to be more verbose.</para> + </glossdef> + </glossentry> + </glosslist></para> + </listitem> + + <listitem> + <para><emphasis role="bold"><computeroutput>process kill</computeroutput></emphasis>, + which terminates specific guest processes of a guest session, based on either the + session's ID or the session's name.</para> + + <screen>VBoxManage guestcontrol <uuid|vmname> process kill + --session-id <ID> + | --session-name <name or pattern> + [--verbose] + <PID> ... <PID n></screen> + + <para>where the parameters mean: <glosslist> + <glossentry> + <glossterm><computeroutput>uuid|vmname</computeroutput></glossterm> + + <glossdef> + <para>The VM UUID or VM name. Mandatory.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--session-id</computeroutput></glossterm> + + <glossdef> + <para>Specifies the guest session to use by its ID.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--session-name</computeroutput></glossterm> + + <glossdef> + <para>Specifies the guest session to use by its name. Multiple + sessions can be closed when specifying * or ? wildcards.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--verbose</computeroutput></glossterm> + + <glossdef> + <para>Tells VBoxManage to be more verbose.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput><PID> ... <PID n></computeroutput></glossterm> + + <glossdef> + <para>List of process identifiers (PIDs) to terminate.</para> + </glossdef> + </glossentry> + </glosslist></para> + </listitem> + + <listitem> + <para><emphasis role="bold"><computeroutput>[p[s]]kill</computeroutput></emphasis>, + which terminates specific guest processes of a guest session, based on either the + session's ID or the session's name.</para> + + <screen>VBoxManage guestcontrol <uuid|vmname> process kill + --session-id <ID> + | --session-name <name or pattern> + [--verbose] + <PID> ... <PID n></screen> + + <para>where the parameters mean: <glosslist> + <glossentry> + <glossterm><computeroutput>uuid|vmname</computeroutput></glossterm> + + <glossdef> + <para>The VM UUID or VM name. Mandatory.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--session-id</computeroutput></glossterm> + + <glossdef> + <para>Specifies the guest session to use by its ID.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--session-name</computeroutput></glossterm> + + <glossdef> + <para>Specifies the guest session to use by its name. Multiple + sessions can be closed when specifying * or ? wildcards.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--verbose</computeroutput></glossterm> + + <glossdef> + <para>Tells VBoxManage to be more verbose.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput><PID> ... <PID n></computeroutput></glossterm> + + <glossdef> + <para>List of process identifiers (PIDs) to terminate.</para> + </glossdef> + </glossentry> + </glosslist></para> + </listitem> + + <listitem> + <para><emphasis role="bold"><computeroutput>session close</computeroutput></emphasis>, + which closes specific guest sessions, based on either the session's ID or the + session's name.</para> + + <screen>VBoxManage guestcontrol <uuid|vmname> session close + --session-id <ID> + | --session-name <name or pattern> + | --all + [--verbose]</screen> + + <para>where the parameters mean: <glosslist> + <glossentry> + <glossterm><computeroutput>uuid|vmname</computeroutput></glossterm> + + <glossdef> + <para>The VM UUID or VM name. Mandatory.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--session-id</computeroutput></glossterm> + + <glossdef> + <para>Close a guest session specified by its ID.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--session-name</computeroutput></glossterm> + + <glossdef> + <para>Close a guest session specified by its name. Multiple sessions + can be closed when specifying * or ? wildcards.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--all</computeroutput></glossterm> + + <glossdef> + <para>Close all guest sessions.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--verbose</computeroutput></glossterm> + + <glossdef> + <para>Tells VBoxManage to be more verbose.</para> + </glossdef> + </glossentry> + </glosslist></para> + </listitem> + + <listitem> + <para><emphasis role="bold"><computeroutput>stat</computeroutput></emphasis>, + which displays file or file system status on the guest.</para> - <screen>VBoxManage guestcontrol <vmname>|<uuid> stat + <screen>VBoxManage guestcontrol <uuid|vmname> stat <file>... --username <name> [--passwordfile <file> | --password <password>] [--verbose]</screen> <para>where the parameters mean: <glosslist> <glossentry> - <glossterm>uuid|vmname</glossterm> + <glossterm><computeroutput>uuid|vmname</computeroutput></glossterm> <glossdef> <para>The VM UUID or VM name. Mandatory.</para> @@ -3072,7 +3729,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>file element(s) to check on guest</glossterm> + <glossterm><computeroutput>file element(s) to check on guest</computeroutput></glossterm> <glossdef> <para>Absolute path of directory/directories to check on @@ -3083,7 +3740,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--username <name></glossterm> + <glossterm><computeroutput>--username <name></computeroutput></glossterm> <glossdef> <para>Name of the user the copy process should run under. @@ -3092,7 +3749,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--passwordfile <file></glossterm> + <glossterm><computeroutput>--passwordfile <file></computeroutput></glossterm> <glossdef> <para>Password of the user account specified to be read from @@ -3102,7 +3759,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--password <password></glossterm> + <glossterm><computeroutput>--password <password></computeroutput></glossterm> <glossdef> <para>Password of the user account specified with @@ -3112,7 +3769,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--verbose</glossterm> + <glossterm><computeroutput>--verbose</computeroutput></glossterm> <glossdef> <para>Tells VBoxManage to be more verbose.</para> @@ -3122,17 +3779,18 @@ Value: 2006.01.01</screen> </listitem> <listitem> - <para><computeroutput>updateadditions</computeroutput>, which allows + <para><emphasis role="bold"><computeroutput>updateadditions</computeroutput></emphasis>, + which allows for updating an already installed Guest Additions version on the guest (only already installed Guest Additions 4.0 and later).</para> - <screen>VBoxManage guestcontrol <vmname>|<uuid> updateadditions + <screen>VBoxManage guestcontrol <uuid|vmname> updateadditions [--source "<guest additions .ISO file to use>"] [--verbose] - [--wait-start]</screen> + [--wait-start] [-- [<argument1>] ... [<argumentN>]]</screen> <para>where the parameters mean: <glosslist> <glossentry> - <glossterm>uuid|vmname</glossterm> + <glossterm><computeroutput>uuid|vmname</computeroutput></glossterm> <glossdef> <para>The VM UUID or VM name. Mandatory.</para> @@ -3140,7 +3798,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--source "<guest additions .ISO file to + <glossterm><computeroutput>--source</computeroutput> "<guest additions .ISO file to use>"</glossterm> <glossdef> @@ -3150,7 +3808,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--verbose</glossterm> + <glossterm><computeroutput>--verbose</computeroutput></glossterm> <glossdef> <para>Tells VBoxManage to be more verbose.</para> @@ -3158,7 +3816,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>--wait-start</glossterm> + <glossterm><computeroutput>--wait-start</computeroutput></glossterm> <glossdef> <para>Starts the regular updating process and waits until the actual Guest Additions update inside the guest was started. @@ -3168,8 +3826,45 @@ Value: 2006.01.01</screen> whole Guest Additions update to complete.</para> </glossdef> </glossentry> + + <glossentry> + <glossterm><computeroutput>[-- [<argument1s>] ... [<argumentNs>]]</computeroutput></glossterm> + + <glossdef> + <para>Optional command line arguments to use for the Guest Additions + installer. Useful for retrofitting features which weren't installed + before on the guest.</para> + <para>Arguments containing spaces must be enclosed in + quotation marks.</para> + </glossdef> + </glossentry> </glosslist></para> </listitem> + <listitem> + <para><emphasis role="bold"><computeroutput>watch</computeroutput></emphasis>, + which prints current guest control activity.</para> + + <screen>VBoxManage guestcontrol <uuid|vmname> watch + [--verbose]</screen> + + <para>where the parameters mean: <glosslist> + <glossentry> + <glossterm><computeroutput>uuid|vmname</computeroutput></glossterm> + + <glossdef> + <para>The VM UUID or VM name. Mandatory.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><computeroutput>--verbose</computeroutput></glossterm> + + <glossdef> + <para>Tells VBoxManage to be more verbose.</para> + </glossdef> + </glossentry> + </glosslist></para> + </listitem> </itemizedlist></para> </sect1> @@ -3283,8 +3978,8 @@ Value: 2006.01.01</screen> </itemizedlist></para> </sect1> - <sect1> - <title id="metrics">VBoxManage metrics</title> + <sect1 id="metrics"> + <title>VBoxManage metrics</title> <para>This command supports monitoring the usage of system resources. Resources are represented by various metrics associated with the host @@ -3361,7 +4056,7 @@ Value: 2006.01.01</screen> <glosslist> <glossentry> - <glossterm>list</glossterm> + <glossterm><computeroutput>list</computeroutput></glossterm> <glossdef> <para>This subcommand shows the parameters of the currently existing @@ -3371,7 +4066,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>setup</glossterm> + <glossterm><computeroutput>setup</computeroutput></glossterm> <glossdef> <para>This subcommand sets the interval between taking two samples @@ -3384,7 +4079,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>enable</glossterm> + <glossterm><computeroutput>enable</computeroutput></glossterm> <glossdef> <para>This subcommand "resumes" data collection after it has been @@ -3396,7 +4091,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>disable</glossterm> + <glossterm><computeroutput>disable</computeroutput></glossterm> <glossdef> <para>This subcommand "suspends" data collection without affecting @@ -3408,7 +4103,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>query</glossterm> + <glossterm><computeroutput>query</computeroutput></glossterm> <glossdef> <para>This subcommand retrieves and displays the currently retained @@ -3422,7 +4117,7 @@ Value: 2006.01.01</screen> </glossentry> <glossentry> - <glossterm>collect</glossterm> + <glossterm><computeroutput>collect</computeroutput></glossterm> <glossdef> <para>This subcommand sets the interval between taking two samples @@ -3534,7 +4229,7 @@ Value: 2006.01.01</screen> linkend="intro-installing" />.<itemizedlist> <listitem> <para>To add a new extension pack, use <computeroutput>VBoxManage - extpack install <tarball></computeroutput>. This command + extpack install <.vbox-extpack></computeroutput>. This command will fail if an older version of the same extension pack is already installed. The optional <computeroutput>--replace</computeroutput> parameter can be used to uninstall the old package before the new |