dnf is a software package manager that installs, updates, and removes packages on RPM-based Linux distributions. It automatically computes dependencies and determines the actions required to install packages

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 repository by running "dnf repolist"
dnf-repolist.png
  • Update package list by running "dnf repoquery"
  • Run dnf search <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, qt-extended to run qt applications on target.
  1. dnf install packagegroup-petalinux-x11
  2. dnf install packagegroup-petalinux-qt
  3. dnf install packagegroup-petalinux-qt-extended
  4. dnf install packagegroup-petalinux-matchbox

Start matchbox

/etc/init.d/xserver-nodm stop
/etc/init.d/xserver-nodm start

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