mirror of
https://github.com/gnif/LookingGlass.git
synced 2024-11-14 13:07:54 +00:00
[doc] host: Imported from host/README.md
Placed at bottom of Technical FAQ to hide it host/README.md removed
This commit is contained in:
parent
2bee8d91b0
commit
5fb6c73263
3 changed files with 141 additions and 123 deletions
126
doc/host.rst
Normal file
126
doc/host.rst
Normal file
|
@ -0,0 +1,126 @@
|
||||||
|
Looking Glass Host
|
||||||
|
##################
|
||||||
|
|
||||||
|
.. _host_building:
|
||||||
|
|
||||||
|
Building
|
||||||
|
--------
|
||||||
|
|
||||||
|
For Windows on Windows
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
1. download and install msys2 x86_64 from
|
||||||
|
`http://www.msys2.org/ <http://www.msys2.org/>`__ following the setup
|
||||||
|
instructions provided
|
||||||
|
2. execute ``pacman -Fy`` and then
|
||||||
|
``pacman -Sy git make mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake``
|
||||||
|
3. run "C:\msys64\mingw64.exe"
|
||||||
|
4. checkout the project
|
||||||
|
``git clone https://github.com/gnif/LookingGlass.git``
|
||||||
|
5. configure the project and build it
|
||||||
|
|
||||||
|
.. code:: bash
|
||||||
|
|
||||||
|
mkdir LookingGlass/host/build
|
||||||
|
cd LookingGlass/host/build
|
||||||
|
cmake -G "MSYS Makefiles" ..
|
||||||
|
make
|
||||||
|
|
||||||
|
For Linux on Linux
|
||||||
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
.. code:: bash
|
||||||
|
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake ..
|
||||||
|
make
|
||||||
|
|
||||||
|
For Windows cross compiling on Linux
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
.. code:: bash
|
||||||
|
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain-mingw64.cmake ..
|
||||||
|
make
|
||||||
|
|
||||||
|
Building the Windows installer
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
Install NSIS compiler Build the host program, see above sections. Build
|
||||||
|
installer with ``makensis platform/Windows/installer.nsi`` The resulting
|
||||||
|
installer will be at ``platform/Windows/looking-glass-host-setup.exe``
|
||||||
|
|
||||||
|
.. _host_questions:
|
||||||
|
|
||||||
|
Questions and Answers
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Where is the log?
|
||||||
|
~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The log file for the host application is located at::
|
||||||
|
|
||||||
|
%ProgramData%\Looking Glass (host)\looking-glass-host.txt
|
||||||
|
|
||||||
|
You can also find out where the file is by right clicking on the tray
|
||||||
|
icon and selecting "Log File Location".
|
||||||
|
|
||||||
|
The log file for the looking glass service is located at::
|
||||||
|
|
||||||
|
%ProgramData%\Looking Glass (host)\looking-glass-host-service.txt
|
||||||
|
|
||||||
|
This is useful for troubleshooting errors related to the host
|
||||||
|
application not starting.
|
||||||
|
|
||||||
|
High priority capture using DXGI and Secure Desktop (UAC) capture support
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
By default Windows gives priority to the foreground application for any
|
||||||
|
GPU work which causes issues with capture if the foreground application
|
||||||
|
is consuming 100% of the available GPU resources. The looking glass host
|
||||||
|
application is able to increase the kernel GPU thread to realtime
|
||||||
|
priority which fixes this, but in order to do so it must run as the
|
||||||
|
``SYSTEM`` user account. To do this, Looking Glass needs to run as a
|
||||||
|
service. This can be accomplished by either using the NSIS installer
|
||||||
|
which will do this for you, or you can use the following command to
|
||||||
|
Install the service manually:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
looking-glass-host.exe InstallService
|
||||||
|
|
||||||
|
To remove the service use the following command:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
looking-glass-host.exe UninstallService
|
||||||
|
|
||||||
|
This will also enable the host application to capture the secure desktop
|
||||||
|
which includes things like the lock screen and UAC prompts.
|
||||||
|
|
||||||
|
Why does this version require Administrator privileges?
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
This is intentional for several reasons.
|
||||||
|
|
||||||
|
1. NvFBC requires a system wide hook to correctly obtain the cursor
|
||||||
|
position as NVIDIA decided to not provide this as part of the cursor
|
||||||
|
updates.
|
||||||
|
2. NvFBC requires administrator level access to enable the interface in
|
||||||
|
the first place. (WIP)
|
||||||
|
3. DXGI performance can be improved if we have this. (WIP)
|
||||||
|
|
||||||
|
NvFBC (NVIDIA Frame Buffer Capture)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Why can't I compile NvFBC support into the host?
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
You must download and install the NVidia Capture SDK. Please note that
|
||||||
|
by doing so you will be agreeing to NVIDIA's SDK License agreement.
|
||||||
|
|
||||||
|
*-Geoff*
|
||||||
|
|
|
@ -64,3 +64,18 @@ Initially, we were using interrupts in early designs however it became
|
||||||
clear that the performance, especially for high update rate mice was
|
clear that the performance, especially for high update rate mice was
|
||||||
extremely poor. This may have improved in recent QEMU versions and
|
extremely poor. This may have improved in recent QEMU versions and
|
||||||
perhaps should be re-evaluated at some point.
|
perhaps should be re-evaluated at some point.
|
||||||
|
|
||||||
|
.. _how_do_i_build_the_host:
|
||||||
|
|
||||||
|
How do I build the looking-glass-host?
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
It is not recommended to build the looking-glass-host program, and instead
|
||||||
|
download it from the `website <https://looking-glass.io/downloads/>`_. However,
|
||||||
|
if you know what you're doing, you can follow the
|
||||||
|
:doc:`build instructions <host>`.
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:hidden:
|
||||||
|
|
||||||
|
host
|
||||||
|
|
123
host/README.md
123
host/README.md
|
@ -1,123 +0,0 @@
|
||||||
# General Questions
|
|
||||||
|
|
||||||
## What is this?
|
|
||||||
|
|
||||||
The Looking Glass Host application for the Guest Virtual Machine.
|
|
||||||
|
|
||||||
## What platforms does this support?
|
|
||||||
|
|
||||||
Currently only Windows is supported however there is some initial support for Linux at this time.
|
|
||||||
|
|
||||||
## How do I build it?
|
|
||||||
|
|
||||||
#### For Windows on Windows
|
|
||||||
|
|
||||||
1. download and install msys2 x86_64 from http://www.msys2.org/ following the setup instructions provided
|
|
||||||
3. execute `pacman -Fy` and then `pacman -Sy git make mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake`
|
|
||||||
4. run "C:\msys64\mingw64.exe"
|
|
||||||
5. checkout the project
|
|
||||||
`git clone https://github.com/gnif/LookingGlass.git`
|
|
||||||
6. configure the project and build it
|
|
||||||
|
|
||||||
```
|
|
||||||
mkdir LookingGlass/host/build
|
|
||||||
cd LookingGlass/host/build
|
|
||||||
cmake -G "MSYS Makefiles" ..
|
|
||||||
make
|
|
||||||
```
|
|
||||||
|
|
||||||
#### For Linux on Linux
|
|
||||||
|
|
||||||
```
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
cmake ..
|
|
||||||
make
|
|
||||||
```
|
|
||||||
|
|
||||||
#### For Windows cross compiling on Linux
|
|
||||||
|
|
||||||
```
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain-mingw64.cmake ..
|
|
||||||
make
|
|
||||||
```
|
|
||||||
|
|
||||||
## Building the Windows installer
|
|
||||||
|
|
||||||
Install NSIS compiler
|
|
||||||
Build the host program, see above sections.
|
|
||||||
Build installer with `makensis platform/Windows/installer.nsi`
|
|
||||||
The resulting installer will be at
|
|
||||||
`platform/Windows/looking-glass-host-setup.exe`
|
|
||||||
|
|
||||||
## Where is the log?
|
|
||||||
|
|
||||||
The log file for the host application is located at:
|
|
||||||
|
|
||||||
%ProgramData%\Looking Glass (host)\looking-glass-host.txt
|
|
||||||
|
|
||||||
You can also find out where the file is by right clicking on the tray icon and
|
|
||||||
selecting "Log File Location".
|
|
||||||
|
|
||||||
The log file for the looking glass service is located at:
|
|
||||||
|
|
||||||
%ProgramData%\Looking Glass (host)\looking-glass-host-service.txt
|
|
||||||
|
|
||||||
This is useful for troubleshooting errors related to the host application not
|
|
||||||
starting.
|
|
||||||
|
|
||||||
### High priority capture using DXGI and Secure Desktop (UAC) capture support
|
|
||||||
|
|
||||||
By default Windows gives priority to the foreground application for any GPU
|
|
||||||
work which causes issues with capture if the foreground application is consuming
|
|
||||||
100% of the available GPU resources. The looking glass host application is able
|
|
||||||
to increase the kernel GPU thread to realtime priority which fixes this, but in
|
|
||||||
order to do so it must run as the `SYSTEM` user account. To do this, Looking
|
|
||||||
Glass needs to run as a service. This can be accomplished by either using the
|
|
||||||
NSIS installer which will do this for you, or you can use the following command
|
|
||||||
to Install the service manually:
|
|
||||||
|
|
||||||
looking-glass-host.exe InstallService
|
|
||||||
|
|
||||||
To remove the service use the following command:
|
|
||||||
|
|
||||||
looking-glass-host.exe UninstallService
|
|
||||||
|
|
||||||
This will also enable the host application to capture the secure desktop which
|
|
||||||
includes things like the lock screen and UAC prompts.
|
|
||||||
|
|
||||||
## Why does this version require Administrator privileges
|
|
||||||
|
|
||||||
This is intentional for several reasons.
|
|
||||||
|
|
||||||
1. NvFBC requires a system wide hook to correctly obtain the cursor position as NVIDIA decided to not provide this as part of the cursor updates.
|
|
||||||
2. NvFBC requires administrator level access to enable the interface in the first place. (WIP)
|
|
||||||
3. DXGI performance can be improved if we have this. (WIP)
|
|
||||||
|
|
||||||
## NvFBC (NVIDIA Frame Buffer Capture)
|
|
||||||
|
|
||||||
### Why isn't there a build with NvFBC support available.
|
|
||||||
|
|
||||||
~~Because NVIDIA have decided to put restrictions on the NvFBC API that simply make it incompatible with the GPL/2 licence. Providing a pre-built binary with NvFBC support would violate the EULA I have agreed to in order to access the NVidia Capture SDK.~~
|
|
||||||
|
|
||||||
Either I miss-read the License Agreement or it has been updated, it is now viable to produce a "derived work" from the capture SDK.
|
|
||||||
|
|
||||||
> 1.1 License Grant. Subject to the terms of this Agreement, NVIDIA hereby grants you a nonexclusive, non-transferable, worldwide,
|
|
||||||
revocable, limited, royalty-free, fully paid-up license during the term of this Agreement to:
|
|
||||||
> (i) install, use and reproduce the Licensed Software delivered by NVIDIA plus make modifications and create derivative
|
|
||||||
works of the source code and header files delivered by NVIDIA, provided that the software is executed only in hardware products as
|
|
||||||
specified by NVIDIA in the accompanying documentation (such as release notes) as supported, to develop, test and service your
|
|
||||||
products (each, a “Customer Product”) that are interoperable with supported hardware products. If the NVIDIA documentation is
|
|
||||||
silent, the supported hardware consists of certain NVIDIA GPUs; and
|
|
||||||
|
|
||||||
To be safe we are still not including the NVIDIA headers in the repository, but I am now providing pre-built binaries with NvFBC support included.
|
|
||||||
|
|
||||||
See: https://looking-glass.hostfission.com/downloads
|
|
||||||
|
|
||||||
### Why can't I compile NvFBC support into the host
|
|
||||||
|
|
||||||
You must download and install the NVidia Capture SDK. Please note that by doing so you will be agreeing to NVIDIA's SDK License agreement.
|
|
||||||
|
|
||||||
_-Geoff_
|
|
Loading…
Reference in a new issue