在上一個系列中已經介紹了DPDK的原理以及編譯安裝,這個部分開始進行DPDK樣例程序的運行測試以及源代碼分析。
編譯樣例前的設置
一旦創建了dpdk的目標環境目錄(本系統爲x86_64-native-linuxapp-gcc目錄下)現在要做的就是設置軟件編譯需要設置的環境。
RTE_SDK:指向DPDK的安裝目錄
RTE_TARGET:指向DPDK的目標目標環境目錄
進入樣例程序:cd /home/DPDK/dpdk-stable-16.11.1/examples/helloworld
設置RTE_SDK:export RTE_SDK=/home/DPDK/dpdk-stable-16.11.1
設置RTE_TARGET: export RTE_TARGET=x86_64-native-linuxapp-gcc
編譯和執行
編譯程序:sudo make
(注意如果是一般用戶使用sudo make會報錯):Makefile:32: *** "Please define RTE_SDK environment variable"。 停止。
原因在於使用export 一般用戶使用export設置環境變量是可以看到設置的環境變量的,但是使用make需要使用root權限,這樣的情況下在root下是看不到RTE_SDK這個變量的。所還是以前的觀點使用root賬戶吧。
編譯helloworld:make
執行程序: ./build/helloworld
執行結果報錯,原因在於什麼呢?
這就在於上篇文章中說的,沒有設置大頁。
補充:
echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
mkdir /mnt/huge
mount -t hugetlbfs nodev /mnt/huge
最後再一次執行: ./helloworld
現在可以執行了,後期所有的例子都可以按照這樣的方式進行編譯。後期博文開始對具體程序進行分析。