How to control TeamViewer daemon

When TeamViewer is executed on Linux as teamviewer at the shell, it actually runs from this Bash script: /opt/teamviewer/tv_bin/script/tvw_main

The TeamViewer server can be controlled by using the --daemon option. The different actions that are possible are stop, start, restart, enable, disable and status.

For example, to restart the daemon:

$ sudo teamviewer --daemon restart

Tried with: TeamViewer 11.0.53191, Wine 1.6 and Ubuntu 15.10

Dependency is not satisfiable: TeamViewer install error

Problem

I downloaded 64-bit DEB package of TeamViewer to install on my 64-bit Ubuntu 14.04 system. Installing this teamviewer_linux_x64.deb file using gdebi gave this error:

This package is uninstallable
Dependency is not satisfiable: lib32asound2

Though libasound2 was already installed, TeamViewer was giving this error.

Solution

It turns out that the 64-bit TeamViewer install package cannot be correctly installed on recent 64-bit Ubuntu systems due to dependency problems. Instead, download the 32-bit/multiarch package. This teamviewer_linux.deb file installed and worked correctly on my system.

Tried with: TeamViewer 9.0.27891 and Ubuntu 14.04 64-bit

How to remove titlebar button in TeamViewer

Problem

TeamViewer adds an extra button to the titlebar of all active applications. This button with a double-headed arrow is called the QuickConnect button in TeamViewer jargon. It is quite irritating to see this button (and to click it by mistake) if you do not really want to be bothered about the QuickConnect feature.

Solution

The option to hide this button is hidden away in TeamViewer settings. Navigate through Options → Advanced → Show advanced options → QuickConnect button → Configure and uncheck Show QuickConnect button.

Tried with: TeamViewer 7.0.12313

CUDA and Remote Desktop

Problem

If you connect to a CUDA-capable Windows computer using Remote Desktop and run CUDA programs on it, they fail. That is, CUDA programs fail if they are executed under a Remote Desktop Protocol (RDP) session.

Explanation

In the RDP universe, the CUDA-capable computer is the RDP server and the computer connecting to it is the RDP client. When a Windows computer becomes a RDP server, its graphics driver (say, a NVIDIA driver) is replaced with a RDP graphics driver of Windows.

The RDP graphics driver converts display information into RDP packets and sends it to the client. This is why the display of the RDP server goes blank when it is involved in a RDP session.

At the RDP client, the data in these packets are interpreted as Windows Graphics Device Interface (GDI) information and used to draw the corresponding windows. Thus, RDP is somewhat similar to how X works in the Linux world. This is what gives RDP its speed, performance and other capabilities.

But, this is also why CUDA will not work over RDP. Windows replaces the CUDA-capable NVIDIA graphics driver with its RDP graphics driver. Thus, all CUDA programs fail.

Solution

Instead of RDP, pick any alternate solution that does not touch the graphics driver. That is, something that allows the graphics driver to render, and then captures and sends the desktop information as a bitmap to the other end. So, desktop sharing solutions like VNC or TeamViewer work fine with CUDA.

Reference: Remote Desktop Protocol at MSDN