Announcements

TeamViewer IoT is hiring! Check out the open positions here!

Posted by TeamViewer Staff
TeamViewer Staff

Can I run TeamViewer IoT on Yocto?

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.
    • At least 30 MB free disk space on rootfs partition of the device
    • BASH Unix shell
    • systemd software suite
    • glibc-utils package (version 2.17 or higher)

    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.