DPDK QAT example 빌드하기
Page content
Download dpdk-2.2.0.tar.gz
Refer http://dpdk.org/download
wget http://dpdk.org/browse/dpdk/snapshot/dpdk-2.2.0.tar.gz
Download qat_mux
Refer https://01.org/packet-processing/intel®-quickassist-technology-drivers-and-patches
wget https://01.org/sites/default/files/page/qatmux.l.2.5.0-80.tgz
Getting Started Guide 문서도 받아 둔다.
wget https://01.org/sites/default/files/page/330750-004_qat_gsg.pdf
Configure DPDK
export RTE_SDK=/home/cychong/work/dpdk-2.2.0
export RTE_TARGET=x86_64-native-linuxapp-gcc
make config T=$RTE_TARGET O=$RTE_TARGET
make
Configure QAT
Ubuntu (14.04) 기준으로 몇 개 패키지를 설치해야 QAT를 빌드할 수 있는데 나름 기본적인 패키지들이라 그냥 설치해 놓으면 좋을 듯.
sudo apt-get install zlib1g-dev
sudo apt-get install libssl-dev
적당한 위치에 풀면 되는데 ~/work/qat
에 압축을 푼 경우를 기준으로 정리
cychong@ubuntu:~/work/qat$ ls
LICENSE.GPL QAT1.5 QAT1.6 filelist installer.sh qatmux.l.2.5.0-80.tgz versionfile
QAT HW에 따라사 1.5 혹은 1.6 버전을 사용해야 하는데 만일 이 두 개 버전을 모두 사용해야 하는 경우 qatmux.l.2.5.0-80.tgz도 빌드해야 한다고 한다.
QAT1.5, QAT1.6아래에는 각각 다음과 같은 압축 파일이 있으므로 필요한 QAT 버전 밑에 있는 압축 파일을 풀어준다.
cychong@ubuntu:~/tmp$ tree
.
|-- filelist
|-- installer.sh
|-- LICENSE.GPL
|-- QAT1.5
| `-- QAT1.5.L.1.10.0-80.tar.gz
|-- QAT1.6
| `-- QAT1.6.L.2.5.0-80.tar.gz
|-- qatmux.l.2.5.0-80.tgz
`-- versionfile
2 directories, 7 files
Build QAT
QAT Getting Started Guide를 보면 installer.sh을 이용해서 빌드할 수 있는데 이 스크립트는 빌드하는 머신에 QAT HW가 있는 경우에만 사용할 수 있다.
cychong@ubuntu:~/work/qat$ sudo ./installer.sh
[sudo] password for cychong:
=========================================================
Welcome to Intel(R) QuickAssist Interactive Installer -v2
=========================================================
Please Select Option :
----------------------
1 Build
2 Clean Build
3 Install
4 Uninstall
5 Show Accel Info
6 Change Configuration
7 Dependency List
0 Exit
QAT Devices found: 0 QAT1.6 devices
0 QAT1.5 devices
Configuration: Build Acceleration and Sample Code
No Device detected
And SR-IOV Disabled
Exit and re-enter to set defaults
1
Driver mode auto selected. But no devices detected. Cannot build
QAT HW가 없는 경우 cross compile 방식을 사용해야 하는데 QAT Getting Started Guide 3.6절을 참고해서 수동(?)으로 빌드하면 된다.
export ICP_ROOT=/home/cychong/work/qat/QAT1.6
cd quickassist
export ICP_ENV_DIR=$ICP_ROOT/quickassist/build_system/build_files/env_files
export ICP_BUILDSYSTEM_PATH=$ICP_ROOT/quickassist/build_system
export ICP_BUILD_OUTPUT=$ICP_ROOT/build
export ICP_TOOLS_TARGET=accelcomp
export LD_LIBRARY_PATH=$ICP_ROOT/build
이제 빌드
$ make ICP_ARCH_USER=x86_64
…
Copying QAT-FW Binary
Copying MMP Binary
Copying Install Scripts
Build Done
빌드 결과물은 ../build에
cychong@ubuntu:~/work/qat/QAT1.6/build$ file *
adf_ctl: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=e1b508cd4404dbeaf268d92271ef2ea894a143e7, not stripped
dh895xcc_qa_dev0.conf: ASCII text
icp_qa_al.ko: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), BuildID[sha1]=5dffbaaac6514d161835bf7c9a4b086ff6a42b6b, not stripped
libadf_proxy.a: current ar archive
libicp_qa_al.a: current ar archive
libicp_qa_al_s.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped
libosal.a: current ar archive
mmp_firmware.bin: data
mof_firmware.bin: data
qat_service: Bourne-Again shell script, ASCII text executable
Build DPDK_QAT example
이제 QAT 라이브러리가 준비되었으니 DPDK_QAT example 빌드
cychong@ubuntu:~/work/dpdk-2.2.0/examples/dpdk_qat$ make
LD dpdk_qat
INSTALL-APP dpdk_qat
INSTALL-MAP dpdk_qat.map
QAT 라이브러리를 빌드하기 전에 example을 빌드하면 다음과 같이 에러 발생
cychong@ubuntu:~/work/dpdk-2.2.0/examples/dpdk_qat$ make
LD dpdk_qat
/usr/bin/ld: cannot find /home/cychong/work/qat/QAT1.6/build/libicp_qa_al.a: No such file or directory
/usr/bin/ld: cannot find -losal
/usr/bin/ld: cannot find -ladf_proxy
collect2: error: ld returned 1 exit status
make[1]: *** [dpdk_qat] Error 1
make: *** [all] Error 2