Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions wiki/DnDDebug.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Note: Please also be aware that drag and drop (DnD) support at the moment only i

## Collecting information from the host

As always when it comes to diagnosing problems with VirtualBox the appropriate VBox.log is useful to have. To gather more verbose information about the actual drag an drop operation, please do the following:
As always when it comes to diagnosing problems with VirtualBox the appropriate VBox.log is useful to have. To gather more verbose information about the actual drag and drop operation, please do the following:

* Shut down all VM instances and VirtualBox programs, including VBoxSVC.
* Run VirtualBox from the command line with the environment variable
Expand Down Expand Up @@ -94,8 +94,8 @@ The resulting logfile in "C:\Temp\VBoxTray.log" on the guest drop issue should n
{: .table .wiki}
| *Question* | *Answer* |
|----------- -|--------- -|
|VBox.log does not contain and verbose drag'n drop output.| Make sure that the VBoxSVC (VBoxSVC[.exe]) and VM (VirtualBoxVM[.exe]) processes inherited **all** VBOX_RELEASE_LOG_XXX environment variables. Try restarting the host if they don't. |
|VBoxTray.log does not contain and verbose drag'n drop output.| Make sure that VBoxTray was started manually with the parameters specified above and that the log output directory is accessible for VBoxTray. |
|VBox.log does not contain any verbose drag'n drop output.| Make sure that the VBoxSVC (VBoxSVC[.exe]) and VM (VirtualBoxVM[.exe]) processes inherited **all** VBOX_RELEASE_LOG_XXX environment variables. Try restarting the host if they don't. |
|VBoxTray.log does not contain any verbose drag'n drop output.| Make sure that VBoxTray was started manually with the parameters specified above and that the log output directory is accessible for VBoxTray. |
|The command *setx* does not work on my Windows guest or host. What to do?| Older Windows operating systems (such as Windows XP) don't have the command *setx* available. You have to install the "Windows XP Support Tools" first: [Download](http://www.microsoft.com/en-us/download/details.aspx?id=18546)|

## Collecting and supplying the log files
Expand Down
2 changes: 1 addition & 1 deletion wiki/Licensing_FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ This page answers questions you may have about VirtualBox and its licensing. Thi

The VirtualBox Extension Pack is freely available under the [VirtualBox Extension Pack Personal Use and Educational License](VirtualBox_PUEL) (PUEL) for personal and educational use. For a fee, the VirtualBox Extension Pack is also available for most commercial, non-distribution uses restricted by the PUEL.

More information about the the VirtualBox Extension Pack can be found on this [Oracle VirtualBox](http://www.oracle.com/us/technologies/virtualization/virtualbox/overview/index.html) page, which also contains a link to the [Oracle Store](https://shop.oracle.com/apex/f?p=dstore:product:25714122115624::NO:RP,6:P6_LPI,P6_PPI:114347640102492137513432) where you can directly buy licenses for commercial use. Please contact Oracle for additional information.
More information about the VirtualBox Extension Pack can be found on this [Oracle VirtualBox](http://www.oracle.com/us/technologies/virtualization/virtualbox/overview/index.html) page, which also contains a link to the [Oracle Store](https://shop.oracle.com/apex/f?p=dstore:product:25714122115624::NO:RP,6:P6_LPI,P6_PPI:114347640102492137513432) where you can directly buy licenses for commercial use. Please contact Oracle for additional information.

For information about rights to distribute the VirtualBox Extension Pack, please contact `vbox_oem_sales_ww``@or``acle.com`.

Expand Down
6 changes: 3 additions & 3 deletions wiki/Mac_OS_X_build_instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ layout: wiki
* Qt/Mac 5.6 or later (http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x) <br />

* Loading self-built kernel extensions (kexts) on more recent OS X may require changes to the system config unless you have a kext signing certificate and is running 10.14 (High Sierra) or earlier.
For 10.11 (El Capitan) and later boot to the recovery partition and either enabling loading of unsigned kexts:
For 10.11 (El Capitan) and later boot to the recovery partition and either enable loading of unsigned kexts:
```wiki
csrutil enable --without kext
```
or disable SIP all together:
or disable SIP altogether:
```wiki
csrutil disable
```
Expand Down Expand Up @@ -66,7 +66,7 @@ layout: wiki

## Running VirtualBox

1. Load all the kernel extension modules. These can be found in `out/darwin.x86/release/dist` along with a small script (`loadall.sh`) to load them. Execute and make sure the modules loads successfully.
1. Load all the kernel extension modules. These can be found in `out/darwin.x86/release/dist` along with a small script (`loadall.sh`) to load them. Execute and make sure the modules load successfully.
2. Enter `out/darwin.x86/release/dist/VirtualBox.app/Contents/MacOS/`.
3. Run `./VirtualBox`

Expand Down
4 changes: 2 additions & 2 deletions wiki/Porting_VirtualBox.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ These are:
## Step 2 - Getting It Building

1. Get ./configure running. I would recommend running ./configure with the --disable-xpcom switch unless you have all the xpcom related things it checks for. Before you try, you should just open ./configure in an editor and change the *check_environment* function to recognize your OS correctly. You might also want to drop certain checks (like the libuuid one), do that in a manner similar to Darwin (aka Mac OS X).
2. Setup *Config.kmk* for your OS. This means finding the closes existing port and look for specific setting in Config.kmk for that platform. (Btw. take a look at the section called "Skip stuff", you might wish to do like l4, darwin or os2 there and skip parts that aren't ported yet.) <br />TODO: More details here!
2. Setup *Config.kmk* for your OS. This means finding the closest existing port and looking for specific setting in Config.kmk for that platform. (Btw. take a look at the section called "Skip stuff", you might wish to do like l4, darwin or os2 there and skip parts that aren't ported yet.) <br />TODO: More details here!
3. Once the initial *Config.kmk* job has been done, try run *kmk* on a command line and start fixing build breaks. The first round of breaks will be in the BLDPROGS pass, the kBuild template for these is usually VBOXBLDPROG which is located near the end of ./Config.kmk.
4. At some point you will get build breaks because of <a id="errors"></a> in headers, these are often hints that something needs porting. Most of these are in the include/iprt/ directory and will probably happen while building src/VBox/Runtime. Runtime, aka IPRT, is a mix of OS abstractions (IO, memory, etc), compiler abstractions (return address, predictions, intrinsics, symbol export/import, etc), and some generic constructs (AVL trees, md5, compression, string manipulation, etc).
Again take a look at the platform closes to yours, and see what's specific to it. Start with the Makefile, then look at the headers and the implementations.
Again take a look at the platform closest to yours, and see what's specific to it. Start with the Makefile, then look at the headers and the implementations.
5. Having got the libraries in Runtime building, the next problem is going to be src/VBox/HostDrivers/Support. This is where the code for VBoxDrv.sys / vboxdrv.ko / VBoxDrv.kext currently resides. This early in the porting, we don't bother with the kernel mode/driver/extension/whatever-you-call-it nor the interface to it beyond the point that the ioctl values in SUPDRVIOC.h are valid. Create a subdirectory for the new platform and copy an existing SUPLib-xxxx.cpp file into it. Strip down this SUPLib-xxxx.cpp file so that it builds but simply fails for the parts that require kernel services.
6. There are more points of failure down the road where looking at what the other platforms does should help sort it out. I'll compile a list as we get questions about the problems:
* In etherboot, open Makefile.kmk and search for win.x86. Add your os.arch to that list if etherboot doesn't build.
Expand Down
8 changes: 4 additions & 4 deletions wiki/VBoxLogging.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ Please feel free to send documentation patches to the vbox-dev [mailing list](Ma

The generic description of the IPRT logging facility is found in [Runtime/VBox/log-vbox.cpp](/browser/trunk/src/VBox/Runtime/VBox/log-vbox.cpp#L27).

IPRT log group names (like RT_LDR) and logging flags are found in [/browser/trunk/include/iprt/log.h include/iprt/log.h] <br/>
VirtualBox log group names (like DEV_VMM) and flags are found in [/browser/trunk/include/VBox/log.h include/VBox/log.h]
IPRT log group names (like RT_LDR) and logging flags are found in [include/iprt/log.h](/browser/trunk/include/iprt/log.h) <br/>
VirtualBox log group names (like DEV_VMM) and flags are found in [include/VBox/log.h](/browser/trunk/include/VBox/log.h)
Also look for lines like "#define LOG_GROUP LOG_GROUP_DEV_VMM" in files where you want to add logging.

VirtualBox uses the env.vars `VBOX_LOG`, `VBOX_LOG_DEST` and `VBOX_LOG_FLAGS` to
Expand Down Expand Up @@ -50,7 +50,7 @@ build of component/program. By default this destination is the release log file
VirtualBox home directory, which is rotated on creation. To set the destination, use the
environment variable "VBOX_LOG_DEST" for debug logging and "VBOX_RELEASE_LOG_DEST" for
release logging, add the prefix "file=" (if logging to a file) or "dir=" (directory) plus
the file name / directory. See [/browser/trunk/src/VBox/Runtime/common/log/log.cpp#L265 Runtime/common/log/log.cpp] around line 265. Example:
the file name / directory. See [Runtime/common/log/log.cpp](/browser/trunk/src/VBox/Runtime/common/log/log.cpp#L265) around line 265. Example:

```wiki
export VBOX_LOG_DEST="dir=/tmp"
Expand All @@ -68,7 +68,7 @@ sparingly in performance-critical code.

## Ring-0 logging

Logging from ring-0 context is by default using a hardcoded config found in [/browser/trunk/src/VBox/Runtime/VBox/log-vbox.cpp#L469 Runtime/VBox/log-vbox.cpp]. Since it would generally be more useful to get the ring-0 context log output in the same log file as the ring-3 and raw-mode context log statements when debugging VMM issues on the host, we've created (for *host* ring-0 logging!) a little hack for doing so: Add VBOX_WITH_R0_LOGGING=1 to LocalConfig.kmk or pass it to kmk in the command line. When using this hack the ring-0 logger will mostly use the same settings as the ring-3 logger.
Logging from ring-0 context is by default using a hardcoded config found in [Runtime/VBox/log-vbox.cpp](/browser/trunk/src/VBox/Runtime/VBox/log-vbox.cpp#L469). Since it would generally be more useful to get the ring-0 context log output in the same log file as the ring-3 and raw-mode context log statements when debugging VMM issues on the host, we've created (for *host* ring-0 logging!) a little hack for doing so: Add VBOX_WITH_R0_LOGGING=1 to LocalConfig.kmk or pass it to kmk in the command line. When using this hack the ring-0 logger will mostly use the same settings as the ring-3 logger.

When setting up ring-0 logging on a Linux guest using self-built additions, make sure that your changes to log-vbox.cpp really made it into log-vbox.c in the kernel module source code on the guest. If you wish to enable ring-0 logging on a Linux guest using an official Additions build, you can modify VBox/log-vbox.c in the module source on the guest and force a rebuild and reload of the module. If you wish to pass through guest ring-3 logging to the host, change the make file to build a debug version of the module.

Expand Down