Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Build)

introduction

L'auteur fournit Debian GNU / Linux pour Ultra96 / Ultra96-V2 (ZynqMP) 1. De plus, XRT (Xilinx Runtime) est un environnement pour exécuter des programmes développés dans l'environnement de développement (Vitis) fourni par Xilinx sur la plateforme 2.

À l'origine, XRT pour MPSoC Edge Device ne fonctionne que dans l'environnement Linux (Petalinux) fourni par Xilinx, mais la procédure pour exécuter XRT sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 est incluse en plusieurs parties. Je vais expliquer séparément.

Cet article décrit les étapes de construction de XRT pour Debian GNU / Linux pour Ultra96 / Ultra96-V2.

Mise en garde

__ Le paquet Debian présenté dans cet article n'est pas officiel par Xilinx. __

Construire XRT

Créer un environnement

Construire XRT pour ZynqMP-FPGA-Linux est un peu fastidieux. La construction de XRT nécessite une distribution Linux telle qu'Ubuntu ou CentOS. Divers outils de développement doivent être installés dans la build. De plus, il est très difficile de faire une compilation croisée pour ARM64 avec un PC comme hôte, probablement pour créer un paquet Debian.

Je lance donc Ubuntu 18.04 sur Ultra96-V2 et je m'auto-construit dessus. Ubuntu 18.04 pour Ultra96-V2 est disponible à l'URL suivante:

Télécharger XRT

Téléchargez le code source XRT à partir de l'URL suivante.

fpga@ubuntu-fpga:~$ cd work
fpga@ubuntu-fpga:~/work$ git clone https://github.com/Xilinx/XRT
Cloning into 'XRT'...
remote: Enumerating objects: 30, done.
remote: Counting objects: 100% (30/30), done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 43591 (delta 13), reused 7 (delta 0), pack-reused 43561
Receiving objects: 100% (43591/43591), 58.10 MiB | 2.57 MiB/s, done.
Resolving deltas: 100% (33849/33849), done.
Checking out files: 100% (1682/1682), done.
fpga@ubuntu-fpga:~/work$ cd XRT
fpga@ubuntu-fpga:~/work/XRT$

Modifiez certains fichiers pour créer XRT pour ZynqMP-FPGA-Linux. Il est donc préférable de bifurquer que de cloner directement https://github.com/Xilinx/XRT.

Installez le paquet Debian requis pour la construction

Installez les packages requis pour la construction. Heureusement, XRT fournit un script qui installe les packages nécessaires à la construction.

Si vous exécutez ./src/runtime_src/tools/scripts/xrtdeps.sh avec les privilèges de super utilisateur, le programme apt installera le paquet Debian manquant.

fpga@ubuntu-fpga:~/work/XRT$ sudo ./src/runtime_src/tools/scripts/xrtdeps.sh
Installing packages...
Reading package lists... Done
Building dependency tree
Reading state information... Done
	:
(Omission)
	:
The following packages were automatically installed and are no longer required:
  libgl2ps1.4 libibverbs1 liblept5 libnetcdf-c++4 libnl-route-3-200
  libopencv-flann-dev libopencv-flann3.2 libopencv-ml-dev libopencv-ml3.2
  libopencv-photo-dev libopencv-photo3.2 libopencv-shape-dev
  libopencv-shape3.2 libopencv-ts-dev libopencv-video-dev libopencv-video3.2
  libtcl8.6 libtesseract4 libtk8.6 libxss1
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 26 not upgraded.

Modifications XRT

Nous allons apporter quelques modifications au fichier de construction XRT, alors créez une branche. Basé sur le dernier commit (aac1e6871e95da47ccff4392d5849462bbd4ecad) de la branche master à ce moment (25 mars 2020).

fpga@ubuntu-fpga:~/work/XRT$ git checkout aac1e6871e95da47ccff4392d5849462bbd4ecad 
fpga@ubuntu-fpga:~/work/XRT$ git checkout -b 2019.2_Ultra96
Switched to a new branch '2019.2_Ultra96'

Nous apporterons des modifications à cette branche. Pour des modifications spécifiques, voir «Modifications XRT» dans le chapitre suivant.

Ici, nous avons préparé les modifications sous forme de fichier de correctif, nous allons donc les appliquer. Le fichier de correctif est disponible à l'URL suivante.

Renommer le fichier de package

fpga@ubuntu-fpga:~/work/XRT$ patch -p1 < ../files/00-xrt.patch 
patching file src/CMake/cpackLin.cmake
fpga@ubuntu-fpga:~/work/XRT$ git add --update
fpga@ubuntu-fpga:~/work/XRT$ git commit -m "[add] linux flavor name to built debian package name"
[2019.2_Ultra96 9ff0a408] [add] linux flavor name to built debian package name
 1 file changed, 1 insertion(+), 1 deletion(-)

Suppression du plafond sur les versions de paquet Debian dépendantes

fpga@ubuntu-fpga:~/work/XRT$ patch -p1 < ../files/01-xrt.patch 
patching file src/CMake/cpackLin.cmake
fpga@ubuntu-fpga:~/work/XRT$ git add --update
fpga@ubuntu-fpga:~/work/XRT$ git commit -m "[remove] upper limit of version of depend packages"
[2019.2_Ultra96 7e93ed34] [remove] upper limit of version of depend packages
 1 file changed, 1 insertion(+), 1 deletion(-)

Ajout de XRT_EDGE_BUILD

fpga@ubuntu-fpga:~/work/XRT$ patch -p1 < ../files/02-xrt.patch 
patching file build/build.sh
patching file src/CMake/config/dkms-zocl/dkms.conf.in
patching file src/CMake/config/edge/postinst.in
patching file src/CMake/config/edge/prerm.in
patching file src/CMake/cpackLin.cmake
patching file src/CMake/dkms-edge.cmake
patching file src/CMake/nativeLnx.cmake
patching file src/CMakeLists.txt
patching file src/runtime_src/CMakeLists.txt
patching file src/runtime_src/core/CMakeLists.txt
patching file src/CMake/cpackLin.cmake
fpga@ubuntu-fpga:~/work/XRT$ git add --update
fpga@ubuntu-fpga:~/work/XRT$ git add src/CMake/config/dkms-zocl
fpga@ubuntu-fpga:~/work/XRT$ git add src/CMake/config/edge
fpga@ubuntu-fpga:~/work/XRT$ git add src/CMake/dkms-edge.cmake
fpga@ubuntu-fpga:~/work/XRT$ git commit -m "[add] XRT_EDGE_BUILD for MPSoC Edge"
[2019.2_Ultra96 95287c93] [add] XRT_EDGE_BUILD for MPSoC Edge
 10 files changed, 376 insertions(+), 10 deletions(-)
 create mode 100644 src/CMake/config/dkms-zocl/dkms.conf.in
 create mode 100644 src/CMake/config/edge/postinst.in
 create mode 100644 src/CMake/config/edge/prerm.in
 create mode 100644 src/CMake/dkms-edge.cmake

Ajout de 10-zocl.rules

fpga@ubuntu-fpga:~/work/XRT$ patch -p1 < ../files/03-xrt.patch 
patching file src/CMake/config/edge/postinst.in
patching file src/CMake/dkms-edge.cmake
patching file src/runtime_src/core/edge/drm/zocl/10-zocl.rules
fpga@ubuntu-fpga:~/work/XRT$ git add --update
fpga@ubuntu-fpga:~/work/XRT$ git add src/runtime_src/core/edge/drm/zocl/10-zocl.rules
fpga@ubuntu-fpga:~/work/XRT$ git commit -m "[add] 10-zocl.rules for udev"
[2019.2_Ultra96 04a8069d] [add] 10-zocl.rules for udev
 3 files changed, 3 insertions(+)
 create mode 100644 src/runtime_src/core/edge/drm/zocl/10-zocl.rules

Construire

Allez dans le répertoire build et exécutez build.sh avec l'option "-edge" pour démarrer la build. Ultra96 / Ultra96-V2 prend beaucoup de temps. Cela a pris environ une heure dans mon environnement.

fpga@ubuntu-fpga:~/work/XRT$ cd build/
fpga@ubuntu-fpga:~/work/XRT/build$ ./build.sh -edge
cmake -DRDI_CCACHE=0 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_TOOLCHAIN_FILE= ../../src
-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- Check for working C compiler: /usr/bin/gcc-8
-- Check for working C compiler: /usr/bin/gcc-8 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/g++-8
-- Check for working CXX compiler: /usr/bin/g++-8 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Host system processor is aarch64
-- Target system processor is aarch64
	:
(Omission)
	:
fpga@ubuntu-fpga:~/work/XRT/build$ 

Lorsque la construction est terminée, vous aurez un paquet Debian sous le répertoire build / Edge.

fpga@ubuntu-fpga:~/work/XRT$ cd build/
fpga@ubuntu-fpga:~/work/XRT/build$ ls -1 Edge/xrt_*
Edge/xrt_202010.2.6.0_Ubuntu_18.04-arm64-xbtest.deb
Edge/xrt_202010.2.6.0_Ubuntu_18.04-arm64-xbtest.tar.gz
Edge/xrt_202010.2.6.0_Ubuntu_18.04-arm64-xrt.deb
Edge/xrt_202010.2.6.0_Ubuntu_18.04-arm64-xrt.tar.gz

Parmi ceux-ci, le paquet Debian requis pour Ultra96 / Ultra96-V2 est Edge / xrt_202010.2.6.0_Ubuntu_18.04-arm64-xrt.deb.

Modifications XRT

Ce chapitre décrit mes propres modifications apportées au XRT d'origine.

Renommer le fichier de package

Dans le XRT d'origine, le paquet Debian que vous avez construit serait nommé xrt_202010.2.6.0_18.04-arm64-xrt.deb, mais pour préciser qu'il s'agit d'un paquet pour Ubuntu xrt_202010.2.6.0_Ubuntu_18.04- Faites-le arm64-xrt.deb.

ZynqMP-FPGA-XRT/files/00-xrt.patch


diff --git a/src/CMake/cpackLin.cmake b/src/CMake/cpackLin.cmake
index 4f45f97a..9f6eebe4 100644
--- a/src/CMake/cpackLin.cmake
+++ b/src/CMake/cpackLin.cmake
@@ -79,7 +79,7 @@ else ()
   SET (CPACK_GENERATOR "TGZ")
 endif()
 
-SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${XRT_VERSION_RELEASE}.${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}_${CPACK_REL_VER}-${CPACK_ARCH}")
+SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${XRT_VERSION_RELEASE}.${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}_${LINUX_FLAVOR}_${CPACK_REL_VER}-${CPACK_ARCH}")
 
 message("-- ${CMAKE_BUILD_TYPE} ${PACKAGE_KIND} package")
 

Suppression du plafond sur les versions de paquet Debian dépendantes

À l'origine, la version de libboost-dev, libboost-filesystem-dev et libc6 parmi les paquets dont dépend le paquet Debian construit est plafonnée. Si tel est le cas, la distribution à installer peut être trop restrictive et l'installation peut échouer. Par exemple, une tentative d'installation de ce paquet Debian sur Debian 10 échouera.

Donc, ce qui peut être un problème plus tard, modifiez cpackLin.cmake pour supprimer la limite de version comme suit:

ZynqMP-FPGA-XRT/files/01-xrt.patch


diff --git a/src/CMake/cpackLin.cmake b/src/CMake/cpackLin.cmake
index 9f6eebe4..5b056580 100644
--- a/src/CMake/cpackLin.cmake
+++ b/src/CMake/cpackLin.cmake
@@ -49,7 +49,7 @@ if (${LINUX_FLAVOR} MATCHES "^(Ubuntu|Debian)")
   SET(CPACK_DEBIAN_PACKAGE_SHLIBDEPS "OFF")
   SET(CPACK_DEBIAN_AWS_PACKAGE_DEPENDS "xrt (>= ${XRT_VERSION_MAJOR}.${XRT_VERSION_MINOR}.${XRT_VERSION_PATCH})")
   SET(CPACK_DEBIAN_XBTEST_PACKAGE_DEPENDS "xrt (>= ${XRT_VERSION_MAJOR}.${XRT_VERSION_MINOR}.${XRT_VERSION_PATCH}), libjson-glib-dev")
-  SET(CPACK_DEBIAN_XRT_PACKAGE_DEPENDS "ocl-icd-opencl-dev (>= 2.2.0), libboost-dev (>= ${Boost_VER_STR}), libboost-dev (<< ${Boost_VER_STR_ONEGREATER}), libboost-filesystem-dev (>=${Boost_VER_STR}), libboost-filesystem-dev (<<${Boost_VER_STR_ONEGREATER}), uuid-dev (>= 2.27.1), dkms (>= 2.2.0), libprotoc-dev (>=2.6.1), libssl-dev (>=1.0.2), protobuf-compiler (>=2.6.1), libncurses5-dev (>=6.0), lsb-release, libxml2-dev (>=2.9.1), libyaml-dev (>= 0.1.6), libc6 (>= ${GLIBC_VERSION}), libc6 (<< ${GLIBC_VERSION_ONEGREATER}), python (>= 2.7), python-pip, libudev-dev ")
+  SET(CPACK_DEBIAN_XRT_PACKAGE_DEPENDS "ocl-icd-opencl-dev (>= 2.2.0), libboost-dev (>= ${Boost_VER_STR}), libboost-filesystem-dev (>=${Boost_VER_STR}), uuid-dev (>= 2.27.1), dkms (>= 2.2.0), libprotoc-dev (>=2.6.1), libssl-dev (>=1.0.2), protobuf-compiler (>=2.6.1), libncurses5-dev (>=6.0), lsb-release, libxml2-dev (>=2.9.1), libyaml-dev (>= 0.1.6), libc6 (>= ${GLIBC_VERSION}), python (>= 2.7), python-pip, libudev-dev ")
 
 elseif (${LINUX_FLAVOR} MATCHES "^(RedHat|CentOS|Amazon)")
   execute_process(

Ajout de XRT_EDGE_BUILD

À l'origine, la variable XRT_NATIVE_BUILD est définie sur "yes" si les processeurs hôte et cible sont identiques. Et lorsque XRT_NATIVE_BUILD est "yes" (lorsque le processeur hôte et le processeur cible sont identiques), src / runtime_src / core / pcie est quand "no" (lorsque le processeur hôte et le processeur cible sont différents), src / runtime_src / core src / runtime_src / core / CMakeLists.txt est défini sur build / edge.

src/runtime_src/core/CMakeLists.txt


include_directories(
  ${CMAKE_CURRENT_SOURCE_DIR}
  )
add_subdirectory(include)
add_subdirectory(common)
 if (${XRT_NATIVE_BUILD} STREQUAL "yes")
   add_subdirectory(pcie)
   add_subdirectory(tools)
 else()
   add_subdirectory(edge)
 endif()

De plus, src / CMake / nativeLnx.cmake, qui est inclus lorsque XRT_NATIVE_BUILD est "yes" (lorsque le processeur hôte et le processeur cible sont identiques), est conçu pour créer et installer le pilote de l'hôte comme suit. Je vais.

src/CMake/nativeLnx.cmakext


	:
	(Omission)
	:
include (CMake/dkms.cmake)
include (CMake/dkms-aws.cmake)
include (CMake/dkms-azure.cmake)
include (CMake/dkms-container.cmake)
	:
	(Omission)

Si vous exécutez Ubuntu 18.04 sur Ultra96-V2 et que vous construisez vous-même dessus, les processeurs hôte et cible seront les mêmes arm64. Si elle n'est pas cochée, elle sera construite pour pcie au lieu de edge.

Ajoutez donc la variable XRT_EDGE_BUILD à src / CMakfile.txt comme suit:

src/CMakeLists.txt


	:
	(Omission)
	:	
set(XRT_EDGE_BUILD "no")
if (XRT_NATIVE_BUILD STREQUAL "no")
  set(XRT_EDGE_BUILD "no")
endif()
if (DEFINED ENV{XRT_EDGE_BUILD})
  set(XRT_EDGE_BUILD $ENV{XRT_EDGE_BUILD})
endif():
	:
	(Omission)

Et si XRT_EDGE_BUILD est "oui", modifiez chaque fichier à construire pour le bord.

src/runtime_src/core/CMakeLists.txt


include_directories(
  ${CMAKE_CURRENT_SOURCE_DIR}
  )
add_subdirectory(include)
add_subdirectory(common)
 if (${XRT_EDGE_BUILD} STREQUAL "yes")
   add_subdirectory(edge)
 else()
   add_subdirectory(pcie)
   add_subdirectory(tools)
 endif()

src/CMake/nativeLnx.cmakext


	:
	(Omission)
	:
if (${XRT_EDGE_BUILD} STREQUAL "yes")
  include (CMake/dkms-edge.cmake)
else()
  include (CMake/dkms.cmake)
  include (CMake/dkms-aws.cmake)
  include (CMake/dkms-azure.cmake)
  include (CMake/dkms-container.cmake)
endif()
	:
	(Omission)

Ajoutez ensuite le pilote (zocl) pour edge au paquet Debian et ajoutez les fichiers suivants à construire en utilisant dkms lors de l'installation.

En outre, il existe un paramètre dans src / runtime_src / CMakeLists.txt qui ajoute "-Wall" et- "Werror" aux options de compilation lorsque XRT_NATIVE_BUILD est "yes" (lorsque les processeurs hôte et cible sont identiques). ..

src/runtime_src/CMakeLists.txt


	:
	(Omission)
	:
# TODO CL_TARGET_OPENCL_VERSION is not defined..
if (${XRT_NATIVE_BUILD} STREQUAL "yes")
  add_compile_options("-Wall" "-Werror")
endif()
	:
	(Omission)

S'il y a une option "-Werror", une erreur se produira lors de la construction sous src / runtime_src / core / edge et la compilation échouera. Par conséquent, lorsque XRT_EDGE_BUILD est "oui", modifiez src / runtime_src / CMakeLists.txt afin que "-Wall" et "-Werror" ne soient pas ajoutés aux options de compilation.

src/runtime_src/CMakeLists.txt


	:
	(Omission)
	:
# TODO CL_TARGET_OPENCL_VERSION is not defined..
if (${XRT_EDGE_BUILD} STREQUAL "no")
  add_compile_options("-Wall" "-Werror")
endif()	:
	(Omission)

Enfin, modifiez build / build.sh pour que XRT_EDGE_BUILD soit "yes" si le processeur hôte est arm64 et que l'option "-edge" est ajoutée.

build/build/sh


	:
	(Omission)
	:
f [[ $CPU == "aarch64" ]] && [[ $edge == 1 ]]; then
  mkdir -p $edge_dir
  cd $edge_dir
  if [[ $nocmake == 0 ]]; then
    echo "$CMAKE -DRDI_CCACHE=$ccache -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT\\
_COMPILE_COMMANDS=ON ../../src"
    time env XRT_EDGE_BUILD=yes $CMAKE -DRDI_CCACHE=$ccache -DCMAKE_BUILD_TYPE=\\
Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ../../src
  fi
  if [[ $docs == 1 ]]; then
    echo "make xrt_docs"
    make xrt_docs
  else
    echo "make -j $jcore $verbose DESTDIR=$PWD"
    time make -j $jcore $verbose DESTDIR=$PWD
    time ctest --output-on-failure
    time make package
  fi
  cd $BUILDDIR
fi
	:
	(Omission)

Ajout de 10-zocl.rules

Modifiez les autorisations afin que zocl puisse être écrit par l'utilisateur. Plus précisément, ajoutez les règles 10-zocl.rules suivantes à /etc/udev/rule.d.

Shell:/etc/udev/rule.d/10-zocl.rules


KERNEL=="renderD*",MODE="0666"

Assurez-vous que 10-zocl.rules est installé dans /etc/udev/rule.d lorsque vous installez le paquet Debian.

ZynqMP-FPGA-XRT/files/03-xrt.patch


diff --git a/src/CMake/config/edge/postinst.in b/src/CMake/config/edge/postinst.in
index 22136c09..b85a1032 100644
--- a/src/CMake/config/edge/postinst.in
+++ b/src/CMake/config/edge/postinst.in
@@ -48,6 +48,7 @@ echo "Invoking DKMS common.postinst for xrt"
 /usr/lib/dkms/common.postinst xrt @XRT_VERSION_STRING@ "" "" $2
 if [ $? -eq 0 ]; then
     echo "Finished DKMS common.postinst"
+    install -m 644 /usr/src/xrt-@XRT_VERSION_STRING@/driver/edge/drm/zocl/10-zocl.rules /etc/udev/rules.d
     echo "Loading new XRT Linux kernel modules"
     udevadm control --reload-rules
     modprobe zocl
diff --git a/src/CMake/dkms-edge.cmake b/src/CMake/dkms-edge.cmake
index d1d39750..61664945 100644
--- a/src/CMake/dkms-edge.cmake
+++ b/src/CMake/dkms-edge.cmake
@@ -38,6 +38,7 @@ SET (XRT_DKMS_CORE_COMMON_DRV    ${XRT_DKMS_CORE_DIR}/common/drv)
 SET (XRT_DKMS_DRIVER_SRCS
   edge/drm/zocl/LICENSE
   edge/drm/zocl/Makefile
+  edge/drm/zocl/10-zocl.rules
   edge/drm/zocl/sched_exec.c
   edge/drm/zocl/sched_exec.h
   edge/drm/zocl/zocl_bo.c
diff --git a/src/runtime_src/core/edge/drm/zocl/10-zocl.rules b/src/runtime_src/core/edge/drm/zocl/10-zocl.rules
new file mode 100644
index 00000000..11ed38e1
--- /dev/null
+++ b/src/runtime_src/core/edge/drm/zocl/10-zocl.rules
@@ -0,0 +1 @@
+KERNEL=="renderD*",MODE="0666"

référence

[Présentation]: https://qiita.com/ikwzm/items/0d3a8adfe725cd17f932 "Exécution de XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Présentation)" @Qiita " [Build]: https://qiita.com/ikwzm/items/d8013ea91125a3fc46aa "Exécution de XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Build)" @Qiita " [Installation]: https://qiita.com/ikwzm/items/6612eacc4a0d324a0a68 "" Exécution de XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Installation) "@Qiita" [Pratique]: https://qiita.com/ikwzm/items/58cfea3f9d0f42840511 "" Exécution de XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pratique) "@Qiita" [Édition Vitis]: https://qiita.com/ikwzm/items/e70d8d0e44fe3784a708 "" Exécution de XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (édition Vitis) "@Qiita" ["Fourniture d'une image de démarrage pour Debian GNU / Linux (version v2019.2) pour UltraZed / Ultra96 / Ultra96-V2" @Qiita]: https://qiita.com/ikwzm/items/92221c5ea6abbd5e991c "" UltraZed / Ultra96 / Ultra96- Debian GNU / Linux pour V2 (version v2019.2) Fournit l'image de démarrage "@Qiita"

Recommended Posts

Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Build)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Build) [Unfinished]
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Installation)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Installation) [Inachevé]
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (édition Vitis)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Présentation)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pratique)
Exécutez le pilote Lima sur Debian GNU / Linux pour Ultra96 / Ultra96-V2
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (LibMali)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pilote vidéo)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Gnome Desktop)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pilote Mali)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (édition fbdev)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (présentation)
Exécutez bootgen sur Debian GNU / Linux, Ubuntu
Image de démarrage Debian GNU / Linux (version v2019.2) pour UltraZed / Ultra96 / Ultra96-V2
Exécutez Debian (Linux) et LXQt sur Athlon 200GE (AMD)
Compilation du noyau Linux pour DE10nano
Linux sur Windows -1-: Présentation de Debian