.. _faq:

Frequently Asked Questions / Troubleshooting
====================================================================

Uninstalling ICE FlexLM on Windows fails to remove application
-----------------------------------------------------------------------------

Microsoft provides a tool that can help automatically repair issues
that prevent existing applications from being uninstalled.  See the
following URL for more information:

https://support.microsoft.com/en-us/topic/fix-problems-that-block-programs-from-being-installed-or-removed-cca7d1b6-65a9-3d98-426b-e9f927e1eb4d

Firefox Snap 113 on Ubuntu 22 can't launch ICE RemoteWare Client when opening ``irw://`` URIs.
----------------------------------------------------------------------------------------------------------

This is a known issue with the Firefox Snap package.  Install and connect
with Chrome to work around this issue.

Why do I get stuck on the loading page when I sign in with Safari?
-----------------------------------------------------------------------------

If the server is using a self-signed certificate, then Safari will
refuse the necessary WebSocket connections from the server.  You may also
see a message in the JavaScript Console that says:

``WebSocket network error: OSStatus Error -9807: Invalid certificate chain``

There are a few workarounds:

1. The most secure option is to contact your system administrator
   about either using a trusted certificate for the server.
2. Add the server's self-signed certificate to your Keychain Access.
   NOTE: This is not recommended if the server is using the
   certificate that is included with ICE RemoteWare™.
3. The simplest and least secure workaround is to use a different
   browser such as Chrome or ICE RemoteWare Client.

Are there any known conflicts with anti-virus software?
-----------------------------------------------------------------------------

Enabling Avast Antivirus can crash or cause unstable with the native
client.  Possible workarounds include creating an exception for the
native client or disabling Avast.

Why does pasting into a MacOS terminal result in "^[[200~" being displayed?
------------------------------------------------------------------------------

Certain terminal-based programs (such as zsh shell) come with a
feature called "bracketed paste mode".  Bracketed paste mode will wrap
your pasted string with a ``^[[200~`` and ``~`` so that the
program can distinguish pasted text from directly typed text.

Please consult the documentation for these terminal-based programs for
more information on bracketed paste mode.

Why is USB Forwarding disabled after updating MacOS Big Sur (or earlier) to MacOS Monterey (or later)?
--------------------------------------------------------------------------------------------------------

When ICE RemoteWare is installed on versions of MacOS older than
Monterey, it deploys the 'VirtualHere' application to support USB
Forwarding.  Monterey will not run this application, however, so it
must be replaced with 'VirtualHereUniversal' to re-enable USB
Forwarding.

Please see: :ref:`UpdateToVirtualHereUniversal` for installation
instructions.

Why do I see two cursors for MacOS with only one user signed in?
--------------------------------------------------------------------

There are two reasons this might occur:

1. When Wacom tablets are connected, we intentionally draw the mouse
   cursor to make stylus navigation easier.
2. MacOS servers that do not have a physical display or display dongle
   attached will always draw the remote cursor.  Installing a display
   dongle or a physical display should resolve this issue.

Why is video performance poor in Chrome, Firefox, or Edge?
--------------------------------------------------------------------

Hardware acceleration for WebGL can be blocked for certain graphics
cards and driver combinations in Microsoft Edge, Google Chrome, and
Mozilla Firefox browsers.

Follow the browser specific steps below to determine if your browser
is blocking WebGL hardware acceleration and force the browser to
enable it.  If you continue to have trouble getting WebGL hardware
acceleration to work after following the steps below you may need to:

* Update your driver (Intel, AMD, or NVIDIA)
* Switch to a compatible browser
* Switch to ICE RemoteWare Client (Recommended!)

.. important:: Forcing WebGL hardware acceleration may cause the
    browser to be unstable.  If you are unsure about any of this,
    please download and install the native client as a workaround
    instead!

Forcing WebGL in Google Chrome
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. Open Chrome and go to URL ``chrome://gpu``
2. Under ``Graphics Feature Status``, look for the lines starting with
   ``WebGL:`` and ``WebGL2:``
3. If those values are NOT: ``Hardware accelerated``, then your browser
   is likely blocking WebGL hardware acceleration.
4. If you suspect WebGL hardware acceleration is blocked, you can
   try forcing this feature by following these steps:

   a. Go to URL ``chrome://flags/#ignore-gpu-blocklist``
   b. Use the dropdown to set its value to ``Enabled``.
   c. Restart the browser by clicking on the ``Relaunch`` button.

Forcing WebGL in Mozilla Firefox
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. Open Firefox and go to URL ``about:support``
2. Scroll down to the ``Graphics`` section.
3. In the ``WebGL 1 Driver Renderer`` section, you may see a message
   about it being ``Blocked for your graphics card``.
4. If you suspect WebGL hardware acceleration is blocked, you can
   try forcing this feature by following these steps:

   a. Go to URL ``about:config``
   b. A warning page may appear. Click ``I accept the risk!`` to go to
      the ``about:config`` page.
   c. Search for ``webgl.force-enabled`` and set the value to ``true``
      by double-clicking on the row.
   d. Search for ``layers.acceleration.force-enabled`` and set the
      value to ``true`` by double-clicking on the row.
   e. Restart Firefox to apply your new settings.

Forcing WebGL in Microsoft Edge
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. Open Microsoft Edge and go to URL ``edge://gpu``
2. Under ``Graphics Feature Status``, look for the lines starting with
   ``WebGL:`` and ``WebGL2:``
3. If those values are NOT: ``Hardware accelerated``, then your browser
   is likely blocking WebGL hardware acceleration.
4. If you suspect WebGL hardware acceleration is blocked, you can
   try forcing this feature by following these steps:

   a. Go to ``edge://flags/#ignore-gpu-denylist``
   b. Use the dropdown to set its value to ``Enabled``.
   c. Restart the browser by clicking on the ``Restart`` button.

Why does my MacOS display not go to sleep?
------------------------------------------------------------------------------------------------------

ICE RemoteWare prevents Display Sleep from happening in MacOS using an
application called caffeinate.  This is to prevent the computer from
going to sleep, which would make ICE RemoteWare inaccessible.

How do I use reserved keyboard shortcuts such as Command-Space?
------------------------------------------------------------------------------------------------------

Command-Space is a common keyboard shortcut in MacOS used to access
Spotlight.  This can conflict with the Linux equivalent keyboard
combination of Super-Space, which is used to a change of the keyboard
layout.

Currently the only workaround that will let you transmit Command-Space
and a few other keyboard shortcuts reserved by the OS is to disable
the keyboard shortcut locally.

Starting the service in Linux results in "X11 connection rejected because of wrong authentication."
------------------------------------------------------------------------------------------------------

The message indicates there's an X permissions issue.  This may be due
to a missing X11 magic cookie in your user's $HOME/.Xauthority file.

To add the missing X11 magic cookie value, first determine the display
number used by ``linuxuser``:

::

  linuxuser@host:~$ echo $DISPLAY
  host:21.0

In this example it is ``21.0``. Next, display linuxuser's list of cookies:

::

  linuxuser@host:~$ xauth list
  host/unix:1  MIT-MAGIC-COOKIE-1  51a3801fd7776704575752f09015c61d
  host/unix:21  MIT-MAGIC-COOKIE-1  0ba2913f8d9df0ee9eda295cad7b1010
  host/unix:22  MIT-MAGIC-COOKIE-1  33cd4803819fca0ef8297dba308ceeee

The cookie for the ``21.0`` display is the second in the list.

Next, log in as root and add this particular cookie to the root's
.Xauthority file with the ``xauth`` command:

::

  root@host:~$ xauth add host/unix:21 MIT-MAGIC-COOKIE-1 0ba2913f8d9df0ee9eda295cad7b1010

Finally, try restarting X and check if ICE RemoteWare is running.

My image is very pixelated.  How do I improve image quality?
-------------------------------------------------------------------------

Increasing the Server.Video.AvgBitRate values will improve image
quality at the cost of higher bandwidth.  For example, if you want to
increase the average bit rate at 1080p to 10 Mbps and you have
sufficient bandwidth on the server and client side, we recommend
setting Server.Video.AvgBitRate to the following:

::

  1280x720=5000k,1920x1080=10000k

You may want to experiment for your particular use case.  Setting this
value too high may render the system slow or unusable for servers and
clients with poor bandwidth.

When I fullscreen the remote desktop in Firefox my screen is cropped!
-------------------------------------------------------------------------

As a workaround, first exit Fullscreen.  Now try using the Firefox
menu to zoom out until the entire remote desktop window fits and then
use the Fullscreen option.

How do I create non-standard resolutions in Windows with an NVIDIA GPU?
--------------------------------------------------------------------------

It is important to use the NVIDA Control Panel to change to a
non-standard resolution.  Using the Windows Display Manager will
result in a corrupt desktop image.

What do I do if Windows shows a black screen instead of a login screen?
-----------------------------------------------------------------------

We've observed in Windows 2012 that the login screen will occasionally
not appear until you hit the 'Escape' key.


Why does Google Chrome 61-62 show inaccurate colors?
------------------------------------------------------

Newer versions of Google Chrome (Chrome 61 and 62) use the ICC profile
provided by the local OS rather than forcing its own color profile.
This may make the colors appear different from what you may see in
other browsers or in the Native Client.

As a workaround you can enter ``chrome://flags/#force-color-profile``
in your Chrome URL bar and select ``sRGB`` from the dropdown.  Then
close and restart Chrome.

How many users can sign in at a time?
------------------------------------------------------

ICE RemoteWare currently supports multiple signed in users at a time.
Currently this defaults to 6.  This value can be
changed in the config XML file via the :ref:`MaxClientCount`
option.

I'm only seeing a gray rectangle.
------------------------------------------------------

This is either caused by caching problems in the browser, an
unsupported screen resolution, or an unexpected error between the
client and server.

Try signing out, opening a new web browser, and trying again.  If the
problem persists, check the web browser's JavaScript Console and the
ICE RemoteWare log file (Linux: ``/var/log/messages``) for errors.

If the JavaScript Console shows an error message containing
``net::ERR_CERT_AUTHORITY_INVALID`` in Chrome, you may want to try
Firefox or reset Chrome to its original factory settings.

If you are a Linux user, verify that Xorg is running on ``DISPLAY
:0`` by running ``ps aux | grep X``.  If you do not see a line that looks
like ``Xorg :0``, you may need to restart X by running ``init 3`` and
``init 5`` on Linux.

How do I press Ctrl+Alt+Del or Print Screen?
-----------------------------------------------------------

There is a shortcut button for this keyboard combination in the
Keyboard Menu in the top control bar.

How do I press Ctrl+N, Ctrl+T, Ctrl+W, Ctrl+Tab, Ctrl+Page Up, or Ctrl+Page Down?
-----------------------------------------------------------------------------------------------

This is typically when web browsers reserve these keyboard shortcuts.
One workaround is to install the latest version of our native client,
ICE RemoteWare Client.  Chrome users can try another workaround, described below.

By default, Google Chrome (aka Chromium) intercepts certain specific
keyboard combinations before ICE RemoteWare can receive them.  There is a
special "app mode" available for Chrome users that can be activated at
the command line by appending the ``--app=<url>`` flag.  For example:

::

  google-chrome --app=https://host/

This will open a borderless Chrome browser that will relay many of
these key combinations to ICE RemoteWare.  If this is something you will
do often, we recommend creating a shortcut with a flag to your
ICE RemoteWare host.

.. note:: Certain keyboard combinations, such as Ctrl+Alt+Del and
  Alt+Tab are intercepted by the client operating system and are not
  relayed to the ICE RemoteWare interface.

What ports do I need to open?
-----------------------------------------------------------

By default, ICE RemoteWare must be able to accept incoming requests over
HTTPS port 443 (or port 80 if you are using HTTP).

Can I run my applications?
-----------------------------------------------------------

ICE RemoteWare is completely unaware of what applications are being run
on the remote operating system.  In other words, if your application
can run directly on the remote host, it can be displayed on
ICE RemoteWare.

Will it run on my iPad / mobile device?
-----------------------------------------------------------

We do not yet officially support iPad or mobile devices, but we have
had some success getting view-only functionality to work with an
iPhone SE.

Is there audio support?
-----------------------------------------------------------

Yes.  As of v10.0 we support dual channel audio.

Can I cut, copy, and paste?
-----------------------------------------------------------

You can copy text from the local desktop to the remote desktop.  See
:ref:`Doc.Usage.KeyboardMenu` for more information.


Linux: Install package without Internet connection
-----------------------------------------------------------

On Fedora based systems, e.g. CentOS and Rocky Linux, installation
without Internet connection is possible by executing:

::

  rpm -ivh [package].rpm


After installing the service does not start
-----------------------------------------------------------

First check the log files, see :ref:`LogOutput`.

When the log files don't show any problems, start the server from
a terminal manually and check for useful messages.

On Windows open a cmd prompt and go to ``C:\Program Files\Penguin Solutions\ICE RemoteWare\run`` and execute:

::

  ice-remoteware.exe /A /logLevel trace

On Linux go to ``/opt/ice-remoteware/bin`` and run:

::

  sudo ice-remoteware -A --logLevel trace

If there is no indication where the problem might come from, save the output
and contact support.


What graphics cards do you support?
-----------------------------------------------------------

See :ref:`ServerHardware`.

How many NVIDIA GRID GPUs do I need?
-----------------------------------------------------------

As of v5.0, NVIDIA GRID GPUs are no longer required to run
ICE RemoteWare.

What Xorg.conf options do I need for an NVIDIA GRID / Tesla card over GPU passthrough?
--------------------------------------------------------------------------------------

First, find the appropriate BusID for your graphics card using the
following command:

::

  nvidia-xconfig --query-gpu-info | awk '/PCI BusID/{print $4}'

  PCI:27:1:0

The BusID in this example is ``PCI:27:1:0``.  (Note: other tools such
as lspci show the bus ID in a hexadecimal format that must be manually
converted to decimal format).

For older NVIDIA GRID cards (K1 or K2) add the BusID and the
"UseDisplayDevice" "none" option.  Modify the Xorg.conf file so that
the Device and Screen sections look similar to the following:

::

  Section "Device"
      Identifier     "Device0"
      Driver         "nvidia"
      VendorName     "NVIDIA Corporation"
      BusID          "PCI:27:01:0"
  EndSection

  Section "Screen"
      Identifier     "Screen0"
      Device         "Device0"
      Monitor        "Monitor0"
      DefaultDepth    24
      Option         "UseDisplayDevice" "none"
      SubSection     "Display"
          Virtual     1440 900
          Depth       24
      EndSubSection
  EndSection

For NVIDIA Tesla M60 users add the BusID (note: the syntax below is
also valid).  You may also want to specify a DPI (as needed) if images
on the screen appear too wide or narrow.  Modify the Xorg.conf file so
that the Device section looks similar to the following:

::

  Section "Device"
      Identifier     "Device0"
      Driver         "nvidia"
      VendorName     "NVIDIA Corporation"
      BoardName      "Tesla M60"
      BusID          "PCI:27:01:0"
      Option         "DPI" "96x96"
  EndSection
