• 从头开始在vmware虚拟机安装dpdk


    1. 打开vmware,选择centos7.6镜像,开始安装操作系统

    2. 安装完毕后,关机,点击“编辑虚拟机设置”按钮,点击“处理器”,在右侧勾选第三个“虚拟化IOMMU”。由于我的宿主机是win11,已经支持了Intel VT-x,所以第一个选项就不必勾选了,win7和win10可能需要勾选。

    另外,我多添加了几个网络适配器,便于测试。

    注意,如果勾选了第一个选项:

     启动虚拟机时报错:.

     

     则需要取消勾选第一个。

    3. 编辑本虚拟机配置文件CentOS 7 64 位.vmx(使用记事本打开),(我新建的这个虚拟机配置文件所在目录是:D:\vmware_machine\machines\CentOS-dpdk)将网卡驱动由e1000改为e1000e,保存后启动虚拟机。

     4. 修改操作系统的/etc/default/grub

     在文件最后一行添加:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash iommu=pt intel_iommu=on"

    保存,执行

    grub2-mkconfig -o /boot/grub2/grub.cfg

    配置大页内存

     
    cat  /etc/sysctl.conf
    
    # For more information, see sysctl.conf(5) and sysctl.d(5).
    vm.nr_hugepages=256

    sysctl -p

    重启操作系统:

    reboot

    重启后,检查配置是否生效:

    运行以下命令检查 IOMMU 支持是否打开:

     dmesg | grep -e IOMMU

    检查 GRUB 中的 IOMMU 相关配置是否生效:

    cat /proc/cmdline

    5. 启动后,通过ifconfig命令查看网卡名称,并且查看/etc/sysconfig/network-scripts/ifcfg-*相应网卡文件,确保文件名、文件内容中的网卡名称与ifconfig命令查看的网卡名称一致,不一致的话需要手动修改并重启网卡:

     6. 安装python3.9,具体安装方式不写了,可自行安装

     wget https://repo.huaweicloud.com/python/3.9.10/Python-3.9.10.tgz
     tar -zxf Python-3.9.10.tgz 
     cd Python-3.9.10
     ./configure --prefix=/usr/local/python3 --with-ssl
      make && make install
     ln -s /usr/local/python3/bin/python3 /usr/bin/
     ln -s /usr/local/python3/bin/pip3 /usr/bin/

    7. python3.9安装完毕后,会有pip3命令,通过pip安装meson、ninja(dpdk20.11以后版本需通过meson+ninja 的编译方式进行编译安装

    pip3 install meson

    pip3 install ninja

    ln -s /usr/local/python3/bin/meson /usr/bin/

    ln -s /usr/local/python3/bin/ninja /usr/bin/

    8. 安装dpdk,我下载的是20.11.4版本

    cd /home/
    wget https://fast.dpdk.org/rel/dpdk-20.11.4.tar.xz
    xz -d dpdk-20.11.4.tar.xz
    tar -xf dpdk-20.11.4.tar
    cd dpdk-stable-20.11.4/
    meson ../dpdk_build
    cd ../dpdk_build/
    meson configure -Dbuildtype=debug -Dexamples=l3fwd-graph
    ninja
    ninja install
    ldconfig
    echo "/usr/local/lib64/" >> /etc/ld.so.conf.d/dpdk.conf  # 将dpdk的lib库添加到系统路径
    ldconfig
    echo "export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig" >>  /etc/profile   # 设置pkg-config路径
    echo "modprobe vfio-pci" >>  /etc/profile                                   # 加载vfio-pci模块
    echo "sysctl -w vm.nr_hugepages=256" >>  /etc/profile                       # 设置大页内存为256G
    source /etc/profile

    9. 验证安装是否成功,输出图片内容即为成功

        ldconfig -p|grep librte|wc -l

        ldconfig -p | grep librte_graph

         pkg-config --variable pc_path pkg-config

        pkg-config --modversion libdpdk

     10. 使用dpdk脚本查看网卡信息

     python3 /home/dpdk-stable-20.11.4/usertools/dpdk-devbind.py -s

    输出以下内容,这是还未绑定网卡的状态,将每个网卡的bus信息记下来(每行0000开头的字符串):

     11. dpdk绑定网卡

        python3 /home/dpdk-stable-20.11.4/usertools/dpdk-devbind.py  -b vfio-pci 0b:00.0   #表示绑定ens192这块网卡

       注意,如果此时输出:

     则需要先将网卡ens192关闭:

     再次执行绑定脚本:

     没有任何输出,则为绑定成功。

    12. 再次查看网卡绑定状态信息,可以看到已经绑定成功

     13. 运行dpdk示例程序,验证dpdk是否可用

    cp -r /home/dpdk-stable-20.11.4/examples/helloworld/ /home/

     cd /home/helloworld/

    make

     执行helloworl二进制文件,输出如下即为成功:

    至此,dpdk安装完毕,可以使用了。

  • 相关阅读:
    btrfs基础
    解决debian编辑器vim没有颜色的问题
    [转载]RHEL-6启动时提示:“/usr/libexec/gconf-sanity-check-2 exited with status 256”
    [转载]vim E667: Fsync failed
    Windows Server 2003修改远程桌面连接数
    [转载]"由于这台计算机没有远程桌面客户端访问许可证,远程会话被中断"的解决方案
    [转载]远程登录提示"*已经被拒绝登录到终端*"
    ESXi开启SSH的方法总结
    glibc 编译安装( version `GLIBC_2.14' not found")
    [转载]Wireshark基本介绍和学习TCP三次握手
  • 原文地址:https://www.cnblogs.com/wt11/p/15936005.html
Copyright © 2020-2023  润新知