Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Install and run applications through Smart on target


smart has been deprecated from 2018.1 and dnf is the new package manager.


Smart is a package manager that manages software upgrades and installation. Smart has been developed with modularity and flexibility in mind. It is completely backend-based and package-manager-agnostic.

Updating packages on target using smart is experimental as of now

Pre-requisites

  • ZCU102 pre-built images from here(Use the latest release).
  • Target board should have an internet connection.
  • Verify channels by running smart channel --show


Image Modified
Output of "smart channel --show"


  • Update package list by running "smart update"
  • Run smart query <package_name> to search for a specific package's availability.

NOTE:
  1. If you are running out of pre-built image, then there is a limit on the rootfs size(limited by the device RAM) as rootfs is on RAM. Depending on the device RAM, you may not be able to install many packages and you will end up seeing errors for low disk space

  1. When installing packages, always install packagegroups over single packages when available. For example:
    1. To run qt, install packagegroup-petalinux-qt instead of qtbase.
    2. To run GCC, install packagegroup-core-sdk instead of GCC
  2. packagegroup-petalinux-xen and packagegroup-petalinux-openamp will not work and should not be installed.

As an example consider how to install Qt and run it.

Qt installation


We need to install packagegroup-petalinux-x11 and packagegroup-petalinux-qt to run qt applications on target.
  1. smart install packagegroup-petalinux-x11
  2. smart install packagegroup-petalinux-qt

Qt testing


  • Set DISPLAY: The DISPLAY environment variable is required to communicate with X11.
    • export DISPLAY=:0.0
  • Set QPA backend to eglfs
    • export QT_QPA_PLATFORM=eglfs
    • export QT_QPA_EGLFS_INTEGRATION=eglfs_x11
  • You can now run qt example applications.
    • /usr/share/qt5/examples/opengl/cube/cube
  • If you see dual mouse pointers while testing, export QT_QPA_EGLFS_HIDECURSOR=1 to hide one cursor and restart your application.
    • export QT_QPA_EGLFS_HIDECURSOR=1

Related Links