FC2カウンター FPGAの部屋 ikwzm さんの”Ultra96/Ultra96-V2 向け Debian GNU/Linux で XRT(Xilinx Runtime) を動かす”をやってみる3(ビルド編)
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

ikwzm さんの”Ultra96/Ultra96-V2 向け Debian GNU/Linux で XRT(Xilinx Runtime) を動かす”をやってみる3(ビルド編)

ikwzm さんの”Ultra96/Ultra96-V2 向け Debian GNU/Linux で XRT(Xilinx Runtime) を動かす”をやってみる2(Ultra96-V2 に Ubuntu 18.04 環境を構築2)”の続き。

前回は、ikwzm さんの Ultra96-V2 の Ubuntu 18.04 をダウンロードして、MicroSD カードに書いて動作を確認できて、環境を構築した。今回はその Ultra96-V2 の Ubuntu 18.04 で XRT をダウンロードして、ビルドしてみよう。

今回は、”Ultra96/Ultra96-V2 向け Debian GNU/Linux で XRT(Xilinx Runtime) を動かす(ビルド編)”を引用する。

最初に work ディレクトリを作って、Xilinx の XRT をダウンロードしよう。
mkdir work
cd work
git clone https://github.com/Xilinx/XRT

Vitis_Ubuntu_22_200409.png

ビルドに必要な Debian Package をインストールする。
cd XRT
sudo ./src/runtime_src/tools/scripts/xrtdeps.sh

Vitis_Ubuntu_23_200409.png

Vitis_Ubuntu_24_200409.png

XRT を変更する。
git checkout aac1e6871e95da47ccff4392d5849462bbd4ecad
Vitis_Ubuntu_25_200409.png

git checkout -b 2019.2_Ultra96
Vitis_Ubuntu_26_200409.png

パッチファイルをダウンロードし、XRT の上のディレクトリに files ディレクトリ以下のファイルが必要のようなので、コピーする。
cd ..
git clone https://github.com/ikwzm/ZynqMP-FPGA-XRT
cp -r ZynqMP-FPGA-XRT/files .
cd XRT

Vitis_Ubuntu_27_200409.png

パッケージファイル名を変更する。
patch -p1 < ../files/00-xrt.patch
git add --update
git commit -m "[add] linux flavor name to built debian package name"

Vitis_Ubuntu_28_200409.png

依存する Debian Package のバージョンの上限を撤廃する。
patch -p1 < ../files/01-xrt.patch
git add --update
git commit -m "[remove] upper limit of version of depend packages"

Vitis_Ubuntu_29_200409.png

XRT_EDGE_BUILD を追加する。
patch -p1 < ../files/02-xrt.patch
git add --update
git add src/CMake/config/dkms-zocl
git add src/CMake/config/edge
git add src/CMake/dkms-edge.cmake
git commit -m "[add] XRT_EDGE_BUILD for MPSoC Edge"

Vitis_Ubuntu_30_200409.png
Vitis_Ubuntu_31_200409.png

10-zocl.rules を追加する。
patch -p1 < ../files/03-xrt.patch
git add --update
git add src/runtime_src/core/edge/drm/zocl/10-zocl.rules
git commit -m "[add] 10-zocl.rules for udev"

Vitis_Ubuntu_32_200409.png

ビルドを行う。
cd build/
./build.sh -edge

Vitis_Ubuntu_33_200409.png
Vitis_Ubuntu_34_200409.png

ビルドのレポートの一部を示す。

fpga@ubuntu-fpga:~/work/XRT/build$ ./build.sh -edge
cmake -DRDI_CCACHE=0 -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ../../src
-- The C compiler identification is GNU 8.4.0
-- The CXX compiler identification is GNU 8.4.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
-- XRT_NATIVE_BUILD is yes
-- XRT_EDGE_BUILD is yes
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") 
-- Checking for module 'libdrm'
--   Found libdrm, version 2.4.99
-- Looking for DRM - found at /usr 2.4.99
-- Checking for module 'OpenCL'
--   Found OpenCL, version 2.1
-- Looking for OPENCL - found at /usr 2.1 /usr/include
-- Found Git: /usr/bin/git (found version "2.17.1") 
-- Looking for GIT - found at /usr/bin/git
-- Boost version: 1.65.1
-- Boost version: 1.65.1
-- Found the following Boost libraries:
--   system
--   filesystem
-- Found Curses: /usr/lib/aarch64-linux-gnu/libcurses.so  
-- XRT CL extension header files
-- include/1_2/CL/cl_ext_xilinx.h
-- include/1_2/CL/cl_ext.h
-- XRT EA eula files  /home/fpga/work/XRT/src/../LICENSE
-- Platform/Linux (Ubuntu) (Kernel 4.19.0-xlnx-v2019.2-zynqmp-fpga)
-- Compiler: /usr/bin/g++-8 /usr/bin/gcc-8
-- kernel-doc downloading
-- Boost version: 1.65.1
-- Found the following Boost libraries:
--   system
--   filesystem
--   program_options
-- Found OpenSSL: /usr/lib/aarch64-linux-gnu/libcrypto.a (found version "1.1.1") 
-- Found ZLIB: /usr/lib/aarch64-linux-gnu/libz.so (found version "1.2.11") 
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE  
-- Could NOT find GTest (missing: GTEST_LIBRARY GTEST_MAIN_LIBRARY) 
-- GTest was not found, skipping generation of test executables
-- XRT xrt++ header files
-- xrt++.hpp
-- xrtexec.hpp
CMake Warning at runtime_src/ert/CMakeLists.txt:49 (message):
  ****************************************************************

  No firmware files built or copied, resulting XRT package will be missing
  ERT scheduler firmware.  Use build.sh -ertfw <dir> to specify path to a
  directory with firmware to copy during XRT build.

  

  ****************************************************************


-- XRT header files
-- ert.h
-- xstream.h
-- types.h
-- xcl_axi_checker_codes.h
-- xclbin.h
-- xclerr.h
-- xclfeatures.h
-- xclhal2.h
-- xrt.h
-- xcl_app_debug.h
-- xcl_macros.h
-- xcl_app_debug.h
-- xclperf.h
-- xclhal2_mem.h
-- xrt_mem.h
-- XRT experimental header files
-- xrt-next.h
-- xrt_aie.h
-- xrt_kernel.h
-- xclbin-util.h
-- XRT OS native header files
-- types.h
-- uuid.h
bfl=/usr/lib/aarch64-linux-gnu/libboost_filesystem.a
-- XRT header files for MPSoC only
-- xclhal2_mpsoc.h
-- sk_types.h
-- Found Protobuf: /usr/lib/aarch64-linux-gnu/libprotobuf.so;-pthread (found version "3.0.0") 
-- Found Protobuf: /usr/lib/aarch64-linux-gnu/libprotobuf.so;-pthread;-pthread (found version "3.0.0") 
-- Found LibXml2: /usr/lib/aarch64-linux-gnu/libxml2.so (found suitable version "2.9.4", minimum required is "2.9.1") 
-- Checking for modules 'json-glib-1.0;glib-2.0'
--   Found json-glib-1.0, version 1.4.2
--   Found glib-2.0, version 2.56.4
-- XRT version: 2.6.0
-- Release DEB package
CMake Warning at CMake/lint.cmake:10 (message):
  -- run-clang-tidy not found, static code analysis disabled
Call Stack (most recent call first):
  CMake/nativeLnx.cmake:144 (include)
  CMakeLists.txt:79 (include)


-- XRT DRIVER SRC BASE DIR /home/fpga/work/XRT/src/runtime_src/core
-- Preparing OpenCL ICD xilinx.icd
-- Preparing XRT pkg-config
CMake Warning at CMake/coverity.cmake:5 (message):
  -- coverity not found
Call Stack (most recent call first):
  CMake/nativeLnx.cmake:167 (include)
  CMakeLists.txt:79 (include)


-- Configuring done
-- Generating done
-- Build files have been written to: /home/fpga/work/XRT/build/Edge

real 0m15.918s
user 0m8.948s
sys 0m2.781s
make -j 4  DESTDIR=/home/fpga/work/XRT/build/Edge
Scanning dependencies of target xclbin
Scanning dependencies of target xrt_docs
Scanning dependencies of target xrt_coreutil
Scanning dependencies of target xocl
[  0%] Generating core/mailbox.rst


...........................


[100%] Linking CXX executable xbtest
[100%] Built target xbtest

real 29m23.585s
user 109m17.732s
sys 3m43.529s
Test project /home/fpga/work/XRT/build/Edge
No tests were found!!!

real 0m0.310s
user 0m0.039s
sys 0m0.028s
[  0%] Generating documentation with Sphinx
Running Sphinx v1.6.7
loading pickled environment... done
building [mo]: all of 0 po files
building [html]: all source files
updating environment: 0 added, 33 changed, 0 removed
reading sources... [100%] zocl_ioctl.main                                       
looking for now-outdated files... none found
pickling environment... done
checking consistency... /home/fpga/work/XRT/build/Edge/runtime_src/doc/toc/newxsa-bringup.rst: WARNING: document isn't included in any toctree
done
preparing documents... done
writing output... [100%] zocl_ioctl.main                                        
WARNING: dot command 'dot' cannot be run (needed for graphviz output), check the graphviz_dot setting
generating indices... genindex
writing additional pages... search
copying images... [100%] ap_ctrl_chain_2.PNG                                    
copying static files... done
copying extra files... done
dumping search index in English (code: en) ... done
dumping object inventory... done
build succeeded, 2 warnings.
[  2%] Built target xrt_docs
[  6%] Built target xrt_coreutil
[ 12%] Built target xdp_core
[ 13%] Built target xdp_lop_plugin
[ 14%] Built target xclbin
[ 48%] Built target xocl
[ 50%] Built target xrt++
[ 51%] Built target xilinxopencl
[ 52%] Built target xdp_debug_plugin
[ 59%] Built target xdp
[ 60%] Built target oclxdp
[ 61%] Built target xdp_appdebug_plugin
[ 62%] Built target xdp_hal_plugin
[ 63%] Built target core_edgeuser_plugin_xdp_objects
[ 63%] Built target core_common_objects
[ 64%] Built target core_edge_common_objects
[ 65%] Built target xrt_core
[ 66%] Built target xdp_hal_api_interface_plugin
[ 67%] Built target xclbinsplit
[ 68%] Built target xclbincat
[ 77%] Built target xclbinutil
[ 81%] Built target xrt_coreutil_static
[ 81%] Built target core_edgeuser_plugin_xdp_no_dl_load_objects
[ 82%] Built target xrt_core_static
[ 83%] Built target common_em_objects
[ 83%] Built target generated_code
[ 83%] Built target common_em
[ 85%] Built target hw_emu_objects
[ 85%] Built target xrt_hwemu
[ 86%] Built target sw_emu_objects
[ 87%] Built target xrt_swemu
[ 88%] Built target skd
[ 88%] Built target xbutil
[ 89%] Built target xma2plugin
[ 92%] Built target xma2api
[ 93%] Built target xmaplugin
[ 96%] Built target xmaapi
[100%] Built target xbtest
Run CPack packaging tool...
CPack: Create package using DEB
CPack: Install projects
CPack: - Run preinstall target for: XRT
CPack: - Install project: XRT
CPack: -   Install component: xbtest
CPack: -   Install component: xrt
CPack: Create package
CPack: - package: /home/fpga/work/XRT/build/Edge/xrt_202010.2.6.0_Ubuntu_18.04-arm64-xbtest.deb generated.
CPack: - package: /home/fpga/work/XRT/build/Edge/xrt_202010.2.6.0_Ubuntu_18.04-arm64-xrt.deb generated.
CPack: Create package using TGZ
CPack: Install projects
CPack: - Run preinstall target for: XRT
CPack: - Install project: XRT
CPack: -   Install component: xbtest
CPack: -   Install component: xrt
CPack: Create package
CPack: - package: /home/fpga/work/XRT/build/Edge/xrt_202010.2.6.0_Ubuntu_18.04-arm64-xbtest.tar.gz generated.
CPack: - package: /home/fpga/work/XRT/build/Edge/xrt_202010.2.6.0_Ubuntu_18.04-arm64-xrt.tar.gz generated.

real 2m29.989s
user 2m13.468s
sys 0m6.820s
fpga@ubuntu-fpga:~/work/XRT/build$


XRT/build/Edge ディレクトリに xrt_202010.2.6.0_Ubuntu_18.04-arm64-xrt.deb が生成されている。
Vitis_Ubuntu_35_200409.png

ビルドは成功した。
  1. 2020年04月10日 04:17 |
  2. Vitis
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/4849-bcf5635a
この記事にトラックバックする(FC2ブログユーザー)