300x250

DPDK 컴파일에 필요한 도구들

Compilation of the Intel DPDK

  • Required Tools• coreutils : cmp, sed, grep, arch • gcc(version 4.5.x 이상)• Linux kernel headers or sources required to build kernel modules• Python(version 2.6 or 2.7)
  • • Additional packages required for 32-bit compilation on 64-bit systems are: glibc.i686, libgcc.i686, libstdc++.i686 and glibc-devel.i686
  • • libc headers(glibc-devel.i686 / libc6-dev-i386; glibc-devel.x86_64)
  • • GNU make
  • Optional Tools• libpcap headers and libraries to compile and use the libpcap-based poll-mode driver This driver is disabled by default and can be enabled by setting CONFIG_RTE_LIBRTE_PMD_PCAP=Y in the build time config file
  • • C++ Compiler(icc)

DPDK 컴파일에 필요한 커널 설정

1. HUGETLBFS

2. UIO support

3. PROC_PAGE_MONITOR support

4. HPET and HPET_MMAP

DPDK 설치와 컴파일 과정

1. Hugepage 설정

(1) hugepages=1024(2) echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages(3) mkdir /mnt/huge(4) mount -t hugetlbfs nodev /mnt/huge(5) vi /etc/fstab(/etc/fstab 파일에 아래와 같은 설정 추가) nodev /mnt/huge hugetlbfs defaults 0 0

2. Hugepage 확인

(1) cat /proc/meminfo | grep Huge

3. 소스를 다운 받아 설치

DPDK를 설치하는 과정은 소스를 압축해제 이후에 각 환경에 따라 컴파일을 달리해주어야 되는데, 실험에 사용한 환경에 맞게 T=x86_64-nativelinuxapp-gcc로 컴파일하고, 기존의 커널 기반의 드라이버인 e1000e(자신의 기존 NIC 드라이버)가 아닌 DPDK를 사용하기 위한 드라이버 모듈인 igb_uio 모듈을 로드하면 기본적인 DPDK를 사용할 환경을 구축할 수 있다.

(1) dpdk.org에서 소스 다운(2) tar zxvf dpdk-2.0.0.tar.gz(3) cd dpdk-2.2.0(4) make install T=x86_64-native-linuxapp-gcc(5) cd x86_64-native-linuxapp-gcc(6) make (7) modprobe igb_uio

4. DPDK 드라이버를 사용할 수 있는 NIC을 bind

(1) dpdk-2.2.0/tools 로 이동

(2) ./dpdk_nic_bind.py --status

(3) sudo ./dpdk_nic_bind.py -bind=igb_uio 01:00.0 01:00.1 01:00.2 0100.3

**1~4 까지의 과정이 귀찮다면,,,,

(1) dpdk.org에서 소스 다운(2) tar zxvf dpdk-2.0.0.tar.gz(3) cd dpdk-2.2.0/tools(4) sudo ./setup.sh

위 화면에서처럼 리스트가 나오거든 각 스텝에 맞게 진행

example) 10번 -> 16번 -> 24번 -> 13번 -> 14번 -> 18번 -> 19번 ->18번

compile -> hugepage setup -> hugepage 확인 -> IGB UIO 모듈 삽입 -> VFIO 모듈 삽입 -> 현재 NIC 리스트 확인 -> IGB_UIO 사용할 NIC Bind -> Bind 여부 확인

5. 애플리케이션 컴파일

자신의 dpdk 설치경로와 컴파일 환경을 환경변수로 지정해 둠

(1) export RTE_SDK=/home/uni/dpdk-2.2.0

(2) export RTE_TARGET=x86_64-native-linuxapp-gcc

(3) cd /dpdk-2.2.0/example/helloworld

(4) make
(5) sudo ./build/helloworld -c 4 -n 4

(이전 "dpdk란?"글의 EAL option 참고)

6. 실행 결과

반응형

'IT > DPDK' 카테고리의 다른 글

DPDK란?  (0) 2016.01.26
basicfwd.c 코드 흐름 분석  (0) 2016.01.26

+ Recent posts