DPDK install安装配置

在DPDK编译完成之后,默认情况下执行make install会将目标文件安装到系统的/usr/local目录下。通过查看DPDK的安装Makefile文件mk/rte.sdkinstall.mk,可知其将prefix指向了/usr/local目录。

ifdef T # defaults with T= will install an almost flat staging tree
export prefix ?=
kerneldir   ?= $(prefix)/kmod
else
ifeq ($(RTE_EXEC_ENV),linuxapp)
kerneldir   ?= /lib/modules/$(shell uname -r)/extra/dpdk
else
kerneldir   ?= /boot/modules
endif
prefix      ?=     /usr/local
endif

安装install完成之后,/usr/local目录如下,DPDK的目标文件主要安装在了4个大目录下:/usr/local/bin、/usr/local/lib、/usr/local/sbin和/usr/local/share目录。
 

$ ls /usr/local/bin
dpdk-pdump  dpdk-pmdinfo  dpdk-procinfo  dpdk-test-compress-perf  dpdk-test-crypto-perf  dpdk-test-eventdev
$ ls /usr/local/include/
dpdk
$ ls /usr/local/lib
libdpdk.a              librte_eal.a            librte_kvargs.a          librte_net.a
$
$ ls /usr/local/sbin
dpdk-devbind
$
$ ls /usr/local/share/
applications  dpdk  info  man
$
$ ls /usr/local/share/applications/
$ ls /usr/local/share/dpdk/
build  buildtools  examples  mk  usertools

如果要更改默认的安装路径,只需要在make install时指定prefix即可。如将/usr/local修改为指定目录/home/build,命令如下:

$ make install prefix=/home/build

继续查看mk/rte.sdkinstall.mk文件,如下。如果需要更细致的控制DPDK安装路径,以下的参数都可以在install命令行指定。如指定exec_prefix路径可更改DPDK的bin、sbin和lib的安装目录。当然也可单独为每一项指定安装目录,参数分别为bindir、sbindir和libdir。

exec_prefix ?=      $(prefix)
bindir      ?= $(exec_prefix)/bin
sbindir     ?= $(exec_prefix)/sbin
libdir      ?= $(exec_prefix)/lib
includedir  ?=      $(prefix)/include/dpdk
datarootdir ?=      $(prefix)/share
docdir      ?=       $(datarootdir)/doc/dpdk
datadir     ?=       $(datarootdir)/dpdk
mandir      ?=       $(datarootdir)/man
sdkdir      ?=                $(datadir)
targetdir   ?=                $(datadir)/$(RTE_TARGET)

关于内核模块,默认情况下编译出来的内核模块安装在/boot/modules,可通过指定kerneldir变量的值进行修改。


另外一个修改安装顶层目录的方法是,指定DESTDIR变量。文件mk/rte.sdkinstall.mk在定义的最终安装目录规则为:$(DESTDIR)/$(prefix)。如下指定DESTDIR=/home,prefix=test/dpdk:

$ make install DESTDIR=/home prefix=test/dpdk

安装完成之后,DPDK目标文件安装到了/home/test/dpdk目录下:

$ ls /home/test/dpdk/
bin  include  lib  sbin  share

DPDK的examples示例编译的目标程序文件,由mk/rte.app.mk控制安装。默认情况下安装在$(RTE_OUTPUT)/app目录下,即相应example的build/app目录下,如l3fwd示例程序,其安装目录位于:examples/l3fwd/build/app/。

#
# install app in $(RTE_OUTPUT)/app
#
$(RTE_OUTPUT)/app/$(APP): $(APP)
    @echo "  INSTALL-APP $(APP)"
    @[ -d $(RTE_OUTPUT)/app ] || mkdir -p $(RTE_OUTPUT)/app
    $(Q)cp -f $(APP) $(RTE_OUTPUT)/app

示例程序l3fwd编译如下:

root@ubcontainer:~/dpdk-19.02/examples/l3fwd# make
  CC main.o
  CC l3fwd_lpm.o
  CC l3fwd_em.o
  LD l3fwd
  INSTALL-APP l3fwd
  INSTALL-MAP l3fwd.map
root@ubcontainer:~/dpdk-19.02/examples/l3fwd#

最后,将DPDK的编译和安装在一条命令执行,如下。指定T目标变量。由以上文件mk/rte.sdkinstall.mk可知,在指定了T之后,prefix为空,即其默认值不再时/usr/local,所以如下的命令相当于在不指定T的情况下,将prefix指定为空的效果:make install DESTDIR=/home/test/dpdk prefix=。

root@ubcontainer:~/dpdk-19.02# make install DESTDIR=/home/test/dpdk  T=x86_64-native-linuxapp-gcc

 

你可能感兴趣的:(DPDK)