您可以通过以下步骤自启动DPDK并给指定网卡加载驱动:
- 配置环境变量:在.bashrc或者.zshrc等文件中添加如下配置(以设置为默认的DPDK路径为例):
export RTE_SDK=/path/to/dpdk
export RTE_TARGET=x86_64-native-linuxapp-gcc # 根据自己的CPU架构选择对应的target,这里以x86-64为例
- 编译安装:进入DPDK根目录,执行以下命令编译和安装DPDK:
make install T=$RTE_TARGET DESTDIR=dpdk-install
- 给网卡绑定驱动:使用dpdk-devbind.py工具将网卡绑定到DPDK的igb_uio驱动上。例如,将eth0绑定到igb_uio驱动上:
$RTE_SDK/usertools/dpdk-devbind.py --bind=igb_uio eth0
自启动脚本:创建一个脚本文件,包含以下内容(注意修改成你自己的参数):
#!/bin/bash # 加载 DPDK模块 modprobe uio_pci_generic # 将网卡绑定到 DPDK igb_uio 驱动上 $RTE_SDK/usertools/dpdk-devbind.py -b igb_uio 00:11.0 # 00:11.0 是你需要绑定的网卡地址 # 设置hugepage mkdir -p /mnt/huge mount -t hugetlbfs nodev /mnt/huge echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages # 启动 DPDK应用 $RTE_SDK/examples/skeleton/build/basicfwd -l 1,2,3 -- -p 0x01 -q 1
给自启动脚本添加执行权限:执行以下命令给自启动脚本添加执行权限:
chmod +x dpdk-startup.sh
- 添加到系统启动项中:将该脚本添加到系统的启动项中,以便开机自动启动DPDK应用。例如,在/etc/rc.local文件中加入以下内容:
sh /path/to/dpdk-startup.sh &
这样,当您重启计算机后,DPDK应用将会自动在指定网卡上运行。