linux下DPDK环境安装

先从官网进行源码的下载
安装一些依赖 libnuma-dev, meson, ninja 等

从源码编译出dpdk并进行安装

cd dpdk-<version>
meson build -Dexamples=all --wipe
cd build
ninja
sudo su 
ninja install
ldconfig

下载安装igb_uio的内核驱动

sudo apt-get install linux-headers-$(uname -r)
sudo apt install dpdk-igb-uio-dkms

安装驱动尝试运行helloworld

  1. 安装uio.ko和igb_uio.ko

    sudo modprobe uio
    sudo modprobe igb_uio
    

    效果如下:

    immortal@Ubuntu22:~/dpdk-21.11.1/examples/helloworld/build$ lsmod | grep uio
    igb_uio                24576  0
    uio                    20480  1 igb_uio
    
  2. 设置hugepage

    sudo su
    echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
    mkdir -p /mnt/huge
    mount -t hugetlbfs pagesize=2MB /mnt/huge
    
  3. 切换网卡驱动

    ./usertools/dpdk-devbind.py --status //查看网卡
    ifconfig 
    sudo ifconfig ens33 down //down掉当前网卡
    ./usertools/dpdk-devbind.py -b igb_uio 02:01.0 //绑定igb_uio为当前网卡驱动
    # ./usertools/dpdk-devbind.py -b e1000 02:01.0  //切换为原网卡驱动
    ./usertools/dpdk-devbind.py --status-dev net
    

    效果如下:

    immortal@Ubuntu22:~/dpdk-21.11.1/examples/helloworld/build$ dpdk-devbind.py --status-dev net
    
    Network devices using DPDK-compatible driver
    ============================================
    0000:02:01.0 '82545EM Gigabit Ethernet Controller (Copper) 100f' drv=igb_uio unused=e1000,vfio-pci
    
    
  4. 编译并运行helloworld

    cd dpdk-<version>/examples/helloworld
    sudo apt install pkg-config
    make 
    cd build
    sudo ./helloworld
    

    效果如下:

    immortal@Ubuntu22:~/dpdk-21.11.1/examples/helloworld/build$ sudo ./helloworld
    EAL: Detected CPU lcores: 16
    EAL: Detected NUMA nodes: 1
    EAL: Detected shared linkage of DPDK
    EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
    EAL: Selected IOVA mode 'PA'
    EAL: No available 1048576 kB hugepages reported
    EAL: VFIO support initialized
    EAL: Probe PCI driver: net_e1000_em (8086:100f) device: 0000:02:01.0 (socket 0)
    EAL: Error reading from file descriptor 76: Input/output error
    TELEMETRY: No legacy callbacks, legacy socket not created
    hello from core 1
    hello from core 2
    hello from core 3
    hello from core 4
    hello from core 5
    hello from core 6
    hello from core 7
    hello from core 8
    hello from core 9
    hello from core 10
    hello from core 11
    hello from core 12
    hello from core 13
    hello from core 14
    hello from core 15
    hello from core 0
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值