This article applies to all TeamViewer IoT users and requires TeamViewer client version 14 or higher.

General

TeamViewer's IoT remote screen feature allows a user to access the screen attached to a remotely accessed device with the TeamViewer IoT agent installed on it.
TeaViewer IoT currently enables screen grabbing in 3 ways

  1. By accessing  the session of an X11 server
  2. By accessing  the framebuffer
  3. By providing access of QT applications through an SDK which can be included in the app.

Access can be either read or write depending on the configuration. For framebuffer only read access is possible.

Note: To use this feature TeamViewer 14 or a higher version must be used to connect to the device

 

X11 Server

Connect with the TeamViewer client to the device and use Remote Terminal

1.png

 

Run these commands:

sudo apt update
sudo apt install xvfb

2.png

 

 

 

Xvfb -ac :1 -screen 0 1280x1024x24 & 

This will start virtual x with specified display parameters

3.png

 

For this command to run after the restart of the device you can add a crontab. From remote terminal run:

sudo nano /etc/crontab

add these lines:

#X virtual desktop
@reboot pi Xvfb -ac :1 -screen 0 1280x1024x24

4.png

 

After you write down the commands press Ctrl + X and input character Y to save the file and then hit enter.

Next, from remote terminal run:

export DISPLAY=:1

5.png


 

NOTE: If you logout from session the export DISPLAY=:1 command will be gone and you will have to execute the command again once you logged in. If you restart the device the process of virtual X will be lost and must be executed again once logged in.

To always run the command from remote terminal:

sudo nano /home/pi/.bashrc

add these lines:

#run export display

export DISPLAY=:1

6.png

 

 

 

After you write down the commands press Ctrl + X and input character Y to save the file and then hit enter.

From command line add:

sudo teamviewer-iot-agent configure set EnableRemoteScreen 1
sudo teamviewer-iot-agent configure set RemoteScreenChannels \"X11\"
sudo teamviewer-iot-agent restart

7.png

 

 

NOTE: If the server has multiple displays, you must specify display number and user like this:

RemoteScreenChannels = \"X11:1:root\"
X11 - protocol
1 - display number
root - user

Example accessing the Firefox browser with X11 grabbing

Open the TeamViewer client and select Remote Terminal

1.png

 

 

 

 

Install Mozilla Firefox using this command:

sudo apt-get install firefox-esr
9.png

 

 

 

 

 

 

 

Then from remote terminal run:

/usr/bin/firefox www.teamviewer.com

In the TeamViewer client click on Remote control and here you will see Mozilla Firefox with the teamviewer.com website open.

10.png

 

 

 

 

 

 

 

 

 

 

Accessing the Framebuffer

In the TeamViewer client connect to the device and use Remote Terminal

1.png

 

 

 

 

 

 


 

You have to find the number of framebuffer therefore enter this command:

 

ls /dev/ | grep fb

 

11.png

 

 

In this example, our framebuffer is fb0

Then, from command line add:

 

sudo teamviewer-iot-agent configure set EnableRemoteScreen 1
sudo teamviewer-iot-agent configure set RemoteScreenChannels \"FBD:/dev/fb0\"
sudo teamviewer-iot-agent restart

 

12.png

 

Note: fb number could be different, so please check with the command above

 

To test it, open the TeamViewer client, select your device click on Remote control and here you will see the desktop interface of the Raspberry.

 

Noteframebuffer only read access is possible so, you will not get control of the desktop using mouse or keyboard

13.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Note: If you want use framebuffer grabbing on a Raspberry Pi 4 follow the extra steps .
Run from  Remote terminal:

sudo nano /boot/config.txt

Go down until you found this line dtoverlay=vc4-kms-v3d and add # in front of them

14.png

 

 

Logo positioning

When using X11 in the channel definition a logo is shown when a remote control is running as user feedback. This is done to prevent that a user is being monitored without his notice.

To configure the placement of the logo you will have to modify the global.conf using the steps above and add this:

Valid values are: 

  • TopLeft
  • TopRight
  • BottomRight
  • BottomLeft

Data protection

To avoid that users can be surveilled without being notified the following measurements have been implemented

  1. An icon is shown in grabbed X11 and framebuffer sessions
  2. For QT applications TeamViewer's EULA requires that this being handled by the application TeamViewer's Remote screen is implemented
  3. In X11 session only non-users sessions can be grabbed, also login screens are not shown
Version history
Revision #:
33 of 33
Last update:
a month ago
Updated by:
 
Tags (1)