Can I run TeamViewer IoT on Yocto?

barkev
barkev Posts: 12
edited April 2023 in IoT Forum

This article applies to all TeamViewer IoT users.

The Yocto Project enables the creation of custom Linux-based systems for embedded devices. 

The TeamViewer IoT Agent will run on Yocto Linux devices given minimum requirements and configurations are met.

In order to run the TeamViewer IoT Agent, please ensure the device/build satisfies the following: 


System requirements

Required:

  • Arch model: The following are supported:
    • ArmV5
    • ArmV7
    • x86 (32-Bit) (Pentium 4 or newer model)
    • x86_64 (64-Bit) (Pentium 4 or newer model)
    • Note: Older CPU models will cause "Illegal Instruction" error.
  • glibc-utils package (version 2.17 or higher)
  • systemd software suite
  • BASH Unix shell
  • At least 30 MB free disk space on rootfs partition of the device

Additional libraries/packages Recommended for debugging / integration:

  • libavahi-client3
  • libavahi-common3
  • libavahi-common-data
  • avahi-daemon


Build Configuration

When creating your Yocto image, the build configuration, specified in (conf/local.conf), you will need to include additional properties. The example below shows the configuration for preparing an image for a Raspberry Pi 3 device.

  • MACHINE = "raspberrypi3" 
  • PREFERRED_VERSION_linux-raspberrypi = "4.%" 
  • DISTRO_FEATURES_append = " systemd"
  • VIRTUAL-RUNTIME_init_manager = "systemd" 
  • IMAGE_INSTALL_append = " glibc-utils bash"
  • IMAGE_ROOTFS_EXTRA_SPACE = "50000" #50 MB

Installation

The current TeamViewer IoT Agent comes in a Debian package (.deb) format. As your Yocto instance may not support Debian package installation via DPKG, it is suggested that the TeamViewer IoT Agent package be downloaded and unpacked onto a non-Yocto OS (e.g. Ubuntu).

  • Step 1: From a non-Yocto Linux device, download the latest TeamViewer IoT Agent from https://teamviewer-iot.com
  • Step 2: Unpackage the downloaded file to a self-contained folder using "dpkg-deb -R":
    • For example:
      • dpkg-deb -R teamviewer-iot-agent-armv7_1.0.58_armhf.deb ./
      • replace "teamviewer-iot-agent-armv7_1.0.58_armhf.deb" with the filename of the Agent you downloaded
  • Step 3: Mirror folder/file path from self-contained package onto your Yocto build
    • the self-contained folder will contain all the files/folders (binaries/configs) required to run the TeamViewer IoT Agent. These files need to be moved over to your Yocto build preserving their folder structure.
    • As your Yocto build is custom built, some or all of the folder structures may be needed to be created manually
      • For example: the self-contained folder may contain a file global.conf located under "var/lib/teamviewer-iot-agent";
      • you should copy this file to your Yocto build and place it under "/var/lib/teamviewer-iot-agent". If /var or the nested folders do not exist, create them using the mkdir linux command.
      • Repeat the process for all files/folders contained within your self-contained folder
  • Step 4: Start the TeamViewer IoT Agent
    • you will have to start the TeamViewer IoT Agent according to the services you have running on your Yocto device
      • For example:
        • sudo systemctl restart teamviewer-iot-agent.service
        • Note: the example above assumes systemctl exists on your Yocto build

If you have any issues or specific questions, please refer to the TeamViewer IoT knowledge base & support communities.

Comments

  • Hello,

    first of all thank you for the manual.

    We still have a few questions. We have gone through steps 1 to 2 as described. At point 3 we are missing several files. Could you provide us with the complete folder structure or name it?

    Thanks.

  • mircea_c
    mircea_c Posts: 146 Staff member 🤠

    Hi @IOT-KI

    Could you follow  the steps below?

    -Download our image for target architecture. For example ( wget https://download.teamviewer-iot.com/agents/2.7.7/armv7/teamviewer-iot-agent-armv7_2.7.7_armhf.deb)
    -Unpack Debian package. For example ( dpkg -xa teamviewer-iot-agent-armv7_2.7.7_armhf.deb . )
    -Unpack installation scripts ( dpkg -e teamviewer-iot-agent-armv7_2.7.7_armhf.deb ). Scripts will be in DEBIAN directory.
    -Add unpacked package files with structure which used in package...
    -Add preinst and postinst scripts to the target image
    -Run preinst and postinst scripts during first boot

    Our Agent depends on `bash perl dbus glibc glibc-utils libavahi-core libavahi-common libavahi-client procps curl ca-certificates libdbus` libraries.

    Regards

     

     

    Tech Support IoT

  • mircea_c
    mircea_c Posts: 146 Staff member 🤠

    Hi @IOT-KI 

    Could you check your account for private message?

    Thank you

    Tech Support IoT