The Linux community defines best practices on managing the Linux file
system for dynamically deployed applications (https://refspecs.linuxfoundation.org/FHS_3.0/
fhs-3.0.html#optAddonApplicationSoftwarePackages). Many open-source
libraries also make assumptions around the file system structure, including the
AMD on-target management utilities (e.g.,
dfx-mgrd
). Application developers must ensure
that they create package definitions that install the packaged files using the
following file system structures:
- Load the application into /opt/<company_name>/<application>/bin
- Load libraries into /opt/<company_name>/<application>/lib
- Load firmware into /lib/firmware/xilinx/<application>
- Supporting media:
- /opt/<company_name>/<application>/share/movies
- /opt/<company_name>/<application>/share/notebooks
- /opt/<company_name>/<application>/share/images
In all instances, developers should verify names to eliminate any conflicts with existing packages in the Docker registry.
The following example shows how the package must be unpacked to the
file system for the xmutil
and dfx-mgrd
to run in the file structure for an AMD accelerated application.
- Application location: /opt/uncanny/uncanny-kv260-smartcamera-alpr
- Contains executable application
- Contains associated application helper scripts
- Application bitstream: /lib/firmware/xilinx/uncanny-kv260-smartcamera-alpr
- Contains
*.bit.bin
or*.bit
- Contains
*.dtbo
- Contains
*.xclbin
(optional, only required for XRT-based designs) - Contains
shell.json