官方文檔查看地址:
http://doc.dpdk.org/guides/linux_gsg/build_dpdk.html
PDF下載地址:
https://www.intel.com/content/www/us/en/embedded/technology/packet-processing/dpdk/dpdk-getting-started-guide.html
本篇難度係數:
翻譯:☆☆☆☆☆
理解:★★☆☆☆
3.從源代碼編譯DPDK目標
請注意
這個過程的某些部分也可以使用本文檔的快速啓動安裝腳本部分中描述的安裝腳本(http://doc.dpdk.org/guides/linux_gsg/quick_start.html#linux-setup-script)來完成。
3.1安裝DPDK並瀏覽源代碼
首先,解壓存檔文件,並移動到未壓縮的DPDK源目錄:
tar xJf dpdk-<version>.tar.xz
cd dpdk-<version>
.zip格式用:
unzip dpdk-<version>.zip
DPDK由以下幾個目錄組成:
- lib: DPDK庫源代碼
- driver:DPDK輪詢模式驅動程序的源代碼
- app: DPDK應用程序源代碼(自動測試)
- examples:DPDK應用程序示例的源代碼
- config、buildtools、mk:與框架相關的makefile、腳本和配置
3.2安裝DPDK目標環境
DPDK目標的格式是:
ARCH-MACHINE-EXECENV-TOOLCHAIN
where:
- ARCH 可以是: i686, x86_64, ppc_64, arm64
- MACHINE 可以是: native, power8, armv8a
- EXECENV 可以是: linux, freebsd
- TOOLCHAIN 可以是: gcc, icc
要安裝的目標取決於安裝在主機上的32位和/或64位包和編譯器。可用的目標可以在DPDK/config目錄中找到。不應該使用defconfig_前綴。
請注意
配置文件提供了RTE_MACHINE優化級別集。在配置文件中,RTE_MACHINE配置值被設置爲native,這意味着編譯後的軟件針對構建它的平臺進行了調優。有關此設置及其可能值的更多信息,請參閱DPDK程序員指南(DPDK Programmers Guide)。
當使用Intel®c++編譯器(icc)時,應分別調用以下命令中的一個,以供64位或32位使用。注意,shell腳本更新了$PATH變量,因此不應該在同一個會話中執行。此外,驗證編譯器的安裝目錄,因爲路徑可能不同:
source /opt/intel/bin/iccvars.sh intel64
source /opt/intel/bin/iccvars.sh ia32
要安裝和生成目標,請使用頂級DPDK目錄中的make install T=<target>
命令。
例如,要使用icc編譯64位目標,請運行:
make install T=x86_64-native-linux-icc
要使用gcc編譯32位構建,make命令應該是:
make install T=i686-native-linux-gcc
例如,如果在編譯之前需要對配置進行更改,可以使用make config T=<target>
命令:
make config T=x86_64-native-linux-gcc
警告
任何要使用的內核模塊,例如igb_uio
、kni
,都必須使用與目標上運行的內核相同的內核編譯。如果DPDK不是在目標機器上構建的,那麼應該使用RTE_KERNELDIR
環境變量將編譯指向目標機器上使用的內核版本的副本。
一旦創建了目標環境,用戶就可以移動到目標環境目錄,並繼續進行代碼更改和重新編譯。用戶還可以通過編輯build目錄中的.config
文件來修改編譯時DPDK配置。(這是從頂級配置目錄中生成的defconfig文件的本地副本)。
cd x86_64-native-linux-gcc
vi .config
make
此外,make clean命令可用於刪除任何已編譯的現有文件,以便隨後對代碼進行完整、乾淨的重新構建。
3.3瀏覽已安裝的DPDK環境目標
一旦創建了目標,它就包含所有庫,包括poll模式驅動程序和用於DPDK環境的頭文件(構建客戶應用程序需要這些頭文件)。此外,test和testpmd應用程序是在build/app目錄下構建的,它可以用於測試。還提供了一個kmod目錄,其中包含內核模塊,如果需要,可以加載這些模塊。