Linux

DPDK 설치

Scottlang 2020. 10. 27. 21:39
728x90

1. 필요 패키지

yum install -y numactl-develyum

install -y libpcap*

yum install -y gcc*

yum install -y kernel-devel-*

 

2. dpdk 설치

wget https://fast.dpdk.org/rel/dpdk-18.11.1.tar.xz

tar xf dpdk-18.11.1.tar.xzcd

/dpdk-stable-18.11.1

export DPDK_DIR=/dpdk-stable-18.08.1

cd $DPDK_DIR

 

3. 환경변수

export DPDK_TARGET=x86_64-native-linuxapp-gcc

export DPDK_BUILD=$DPDK_DIR/$DPDK_TARGET

export RTE_SDK=$DPDK_DIR

export RTE_TARGET=$DPDK_TARGET

##export RTE_TARGET=x86_64-native-linuxapp-gcc

 

4. DPDK 컴파일

make install T=$DPDK_TARGET DESTDIR=install

##make config T=x86_64-native-linuxapp-gcc

##sed -ri 's,(PMD_PCAP=).*,\1y,' build/.config

 

5. 디바이스 드라이버 추가

modprobe uio

insmod ./x86_64-native-linux-gcc/kmod/igb_uio.ko

lsmod | grep uio

##insmod $DPDK_DIR/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko

 

6. NIC 확인

$DPDK_DIR/usertools/dpdk-devbind.py -s

'NetXtreme BCM5720 2-port Gigabit Ethernet PCIe 165f' if=em1 drv=tg3 unused=igb_uio *Active*

'NetXtreme BCM5720 2-port Gigabit Ethernet PCIe 165f' if=em2 drv=tg3 unused=igb_uio *Active*

'Ethernet Controller XXV710 for 25GbE SFP28 158b' if=p6p1 drv=i40e unused=igb_uio

'Ethernet Controller XXV710 for 25GbE SFP28 158b' if=p6p2 drv=i40e unused=igb_uio

'Ethernet Controller XXV710 for 25GbE SFP28 158b' if=p1p1 drv=i40e unused=igb_uio

'Ethernet Controller XXV710 for 25GbE SFP28 158b' if=p1p2 drv=i40e unused=igb_uio

 

7. NIC 바인딩

modprobe uio

insmod /root/POC/dpdk-stable-18.11.1/x86_64-native-linuxapp-igb_uio.ko

dpdk-devbind.py -b igb_uio p1p1

dpdk-devbind.py -b igb_uio p1p1

 

mkdir -p /mnt/huge

mount -t hugetlbfs nodev /mnt/hugemkdir -p /hugepage

 

/etc/fstab 수정

nodev   /hugepage       hugetlbfs       defaults        0       0

 

echo 64 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages