Skip to main content

The connection to the target device fails.

Requirements

  • The SSH server on the target device is running on a known port (for example, port 22).

  • The correct IP address of the target device is known. The target device can be pinged via the IP address.

Troubleshooting

Tip

Other problems such as a slow network or a network error can also cause the connection to be interrupted.

After connecting to the target device, the Deploy Tool reads some system parameters in order to determine which packages and functions are available. The following aspects of the target device are checked:

Userland architectures

The Deploy Tool detects the available loaders on the target device. The available loaders determine which binary files can be executed. To do this, the Deploy Tool executes the following command:

  • ls -la /lib*/ld-linux*

    If the output contains any of the following values, then the respective architecture is considered available: x86-64, i386, x32, armhf, aarch64.

    • For version 4.14.0.0:

      If none of these values are found, then the connection is disconnected.

    • For version 4.15.0.0 and higher:

      If none of these values are found, then the Deploy Tool prints a log message which states that no Userland architecture has been detected. The following parameters are then checked. However, this should not cause a disconnection.

Device architecture

The Deploy Tool checks which CPU is available on the target device. To do this, the Deploy Tool executes the following commands:

  • lscpu | grep ^Architecture:

    If the output contains any of the following values, then the respective architecture is used: x86_64, i686, aarch64, armv7l, armv6l.

    If the output does not contain any of these values, then the command cat /proc/cpuinfo | grep '^model name' is executed.

  • cat /proc/cpuinfo | grep '^model name'

    If the output contains any of the following values, then the respective architecture is used: x86_64, i686, aarch64, armv7l, armv6l.

    If the output does not contain any of these values, then a log message is printed.

Container engine

The Deploy Tool checks which container engines are available on the target device. To do this, the Deploy Tool executes the following commands:

  • which docker

    If the exit code is 0, then Docker is recognized as an engine.

  • which podman

    If the exit code is 0, then Podman is recognized as an engine.

Note

The simultaneous use of two container engines has not been tested and is not fully supported. As a result, this could lead to problems.

Container architecture

The Deploy Tool checks which architectures the container engine can execute. To do this, the Deploy Tool executes the following command, depending on the detected engine:

  • docker info

    If the Architecture: output contains any of the following values, then the respective architecture is used: x86_64, aarch64, armv7l, armv6l.

    If none of these value are founds, then a log message is printed.

  • podman info

    If the arch: output contains any of the following values, then the respective architecture is used: amd64, aarch64, armv7l, armv6l.

    If none of these value are founds, then a log message is printed.

Init process

The Deploy Tool checks which init processes are available on the target device. To do this, the Deploy Tool executes the following commands:

  • systemctl > /dev/null 2>&1 ; echo $?

    If the exit code is 0 and the output contains 0, then systemd is recognized as an available init process.

  • ls /etc/init.d > /dev/null 2>&1 ; echo $?

    If the exit code is 0 and the output contains 0, then initd is recognized as an available init process.

Package managers

The Deploy Tool checks which package managers are available on the target device. To do this, the Deploy Tool executes the following commands:

  • which dpkg > /dev/null 2>&1; echo $?

    If the exit code is 0 and the output contains 0, then dpkg is registered as an available package manager.

  • which ipkg > /dev/null 2>&1; echo $?

    If the exit code is 0 and the output contains 0, then ipkg is registered as an available package manager.

  • which opkg > /dev/null 2>1; echo $?

    If the exit code is 0 and the output contains 0, then opkg is registered as an available package manager.

  • For version 4.15 and higher:

    which rpm > /dev/null 2>1; echo $?

    If the exit code is 0 and the output contains 0, then rpm is registered as an available package manager.

Note

If a product and your system support dpkg and ipkg or opkg, then dpkg is used.

Python

The Deploy Tool checks whether Python is available on your target device. To do this, the Deploy Tool executes the following command:

  • python3 -v

    If the exit code is 0 and the version is greater-equal than 3.9, then Python is recognized as installed.