在鲲鹏920服务器上编译和安装dpdk踩坑(二)
网卡配置如下
注意: 使用VFIO需要BIOS开启SMMU
[root@localhost dpdk-19.11]# ethtool -i enp6s0 driver: hinic version: firmware-version: expansion-rom-version: bus-info: 0000:06:00.0 supports-statistics: no supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no [root@localhost dpdk-19.11]#
[root@localhost dpdk-19.11]# lspci | grep -i ether 05:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45) 06:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45) 7d:00.0 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller (rev 21) 7d:00.1 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller (rev 21) 7d:00.2 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller (rev 21) 7d:00.3 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller (rev 21)
1、升级驱动
安装依赖包
yum install pciutils -y
支持华为驱动
dpdk-19.11./config/common_base文件中的板载网卡PMD驱动开关:
Line 286: # Compile burst-oriented HNS3 PMD driver
Line 288: CONFIG_RTE_LIBRTE_HNS3_PMD=y
[root@localhost dpdk-19.11]# grep -n CONFIG_RTE_LIBRTE_HNS3_PMD config/common_base 288:CONFIG_RTE_LIBRTE_HNS3_PMD=n
[root@localhost dpdk-19.11]# grep -n CONFIG_RTE_LIBRTE_HNS3_PMD config/common_base
288:CONFIG_RTE_LIBRTE_HNS3_PMD=y
[root@localhost dpdk-19.11]#
1) 编译DPDK19.11版本需要gcc5.0及以上版本,本文推荐使用gcc7.3.0 yum install -y *gcc* yum install -y *glibc* yum install -y *stdc* yum install –y *gfortran* yum install –y m4 yum install -y numactl* yum install -y automake
[root@localhost dpdk-19.11]# ls /sys/kernel/mm/hugepages/ hugepages-2048kB hugepages-524288kB [root@localhost dpdk-19.11]# grep Hugepagesize /proc/meminfo Hugepagesize: 524288 kB [root@localhost dpdk-19.11]# cat /sys/devices/system/node/node*/meminfo |grep -i huge Node 0 AnonHugePages: 0 kB Node 0 ShmemHugePages: 0 kB Node 0 HugePages_Total: 0 Node 0 HugePages_Free: 0 Node 0 HugePages_Surp: 0 Node 1 AnonHugePages: 0 kB Node 1 ShmemHugePages: 0 kB Node 1 HugePages_Total: 0 Node 1 HugePages_Free: 0 Node 1 HugePages_Surp: 0 Node 2 AnonHugePages: 0 kB Node 2 ShmemHugePages: 0 kB Node 2 HugePages_Total: 0 Node 2 HugePages_Free: 0 Node 2 HugePages_Surp: 0 Node 3 AnonHugePages: 0 kB Node 3 ShmemHugePages: 0 kB Node 3 HugePages_Total: 0 Node 3 HugePages_Free: 0 Node 3 HugePages_Surp: 0 [root@localhost dpdk-19.11]#
运行
./usertools/dpdk-setup.sh
选择其中的选项49:设置大页,让每个numa node均分同样的大页数量
[root@localhost dpdk-19.11]# ./usertools/dpdk-setup.sh ------------------------------------------------------------------------------ RTE_SDK exported as /root/dpdk-19.11 ------------------------------------------------------------------------------ ---------------------------------------------------------- Step 1: Select the DPDK environment to build ---------------------------------------------------------- [1] arm64-armada-linuxapp-gcc [2] arm64-armada-linux-gcc [3] arm64-armv8a-linuxapp-clang [4] arm64-armv8a-linuxapp-gcc [5] arm64-armv8a-linux-clang [6] arm64-armv8a-linux-gcc [7] arm64-bluefield-linuxapp-gcc [8] arm64-bluefield-linux-gcc [9] arm64-dpaa-linuxapp-gcc [10] arm64-dpaa-linux-gcc [11] arm64-emag-linuxapp-gcc [12] arm64-emag-linux-gcc [13] arm64-n1sdp-linuxapp-gcc [14] arm64-n1sdp-linux-gcc [15] arm64-octeontx2-linuxapp-gcc [16] arm64-octeontx2-linux-gcc [17] arm64-stingray-linuxapp-gcc [18] arm64-stingray-linux-gcc [19] arm64-thunderx2-linuxapp-gcc [20] arm64-thunderx2-linux-gcc [21] arm64-thunderx-linuxapp-gcc [22] arm64-thunderx-linux-gcc [23] arm64-xgene1-linuxapp-gcc [24] arm64-xgene1-linux-gcc [25] arm-armv7a-linuxapp-gcc [26] arm-armv7a-linux-gcc [27] i686-native-linuxapp-gcc [28] i686-native-linuxapp-icc [29] i686-native-linux-gcc [30] i686-native-linux-icc [31] ppc_64-power8-linuxapp-gcc [32] ppc_64-power8-linux-gcc [33] x86_64-native-bsdapp-clang [34] x86_64-native-bsdapp-gcc [35] x86_64-native-freebsd-clang [36] x86_64-native-freebsd-gcc [37] x86_64-native-linuxapp-clang [38] x86_64-native-linuxapp-gcc [39] x86_64-native-linuxapp-icc [40] x86_64-native-linux-clang [41] x86_64-native-linux-gcc [42] x86_64-native-linux-icc [43] x86_x32-native-linuxapp-gcc [44] x86_x32-native-linux-gcc ---------------------------------------------------------- Step 2: Setup linux environment ---------------------------------------------------------- [45] Insert IGB UIO module [46] Insert VFIO module [47] Insert KNI module [48] Setup hugepage mappings for non-NUMA systems [49] Setup hugepage mappings for NUMA systems [50] Display current Ethernet/Baseband/Crypto device settings [51] Bind Ethernet/Baseband/Crypto device to IGB UIO module [52] Bind Ethernet/Baseband/Crypto device to VFIO module [53] Setup VFIO permissions ---------------------------------------------------------- Step 3: Run test application for linux environment ---------------------------------------------------------- [54] Run test application ($RTE_TARGET/app/test) [55] Run testpmd application in interactive mode ($RTE_TARGET/app/testpmd) ---------------------------------------------------------- Step 4: Other tools ---------------------------------------------------------- [56] List hugepage info from /proc/meminfo ---------------------------------------------------------- Step 5: Uninstall and system cleanup ---------------------------------------------------------- [57] Unbind devices from IGB UIO or VFIO driver [58] Remove IGB UIO module [59] Remove VFIO module [60] Remove KNI module [61] Remove hugepage mappings [62] Exit Script Option:
[root@localhost dpdk-19.11]# echo 256 > /sys/kernel/mm/hugepages/hugepages-524288kB/nr_hugepages [root@localhost dpdk-19.11]# cat /sys/devices/system/node/node*/meminfo |grep -i huge Node 0 AnonHugePages: 0 kB Node 0 ShmemHugePages: 0 kB Node 0 HugePages_Total: 64 Node 0 HugePages_Free: 64 Node 0 HugePages_Surp: 0 Node 1 AnonHugePages: 0 kB Node 1 ShmemHugePages: 0 kB Node 1 HugePages_Total: 64 Node 1 HugePages_Free: 64 Node 1 HugePages_Surp: 0 Node 2 AnonHugePages: 0 kB Node 2 ShmemHugePages: 0 kB Node 2 HugePages_Total: 64 Node 2 HugePages_Free: 64 Node 2 HugePages_Surp: 0 Node 3 AnonHugePages: 0 kB Node 3 ShmemHugePages: 0 kB Node 3 HugePages_Total: 64 Node 3 HugePages_Free: 64 Node 3 HugePages_Surp: 0
[root@localhost dpdk-19.11]# umount /mnt [root@localhost dpdk-19.11]# mkdir -p /mnt/huge [root@localhost dpdk-19.11]# mount -t hugetlbfs none /mnt/huge [root@localhost dpdk-19.11]# grep -i hugepage /proc/meminfo AnonHugePages: 0 kB ShmemHugePages: 0 kB HugePages_Total: 256 HugePages_Free: 256 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 524288 kB
编译报错
输出make日志
yum install kernel-devel
[root@localhost dpdk-19.11]# ln -sf /usr/src/kernels/4.18.0-193.28.1.el7.aarch64/ /lib/modules/4.14.0-115.el7a.0.1.aarch64/build [root@localhost dpdk-19.11]# ls /usr/src/kernels/ -al total 4 drwxr-xr-x. 3 root root 41 Jun 10 02:46 . drwxr-xr-x. 4 root root 34 Jun 9 23:15 .. drwxr-xr-x. 23 root root 4096 Jun 10 02:46 4.18.0-193.28.1.el7.aarch64 [root@localhost dpdk-19.11]#
make -j 64 V=2
[root@localhost dpdk-19.11]# ./usertools/dpdk-devbind.py -s Network devices using kernel driver =================================== 0000:05:00.0 'Hi1822 Family (2*25GE) 0200' if=enp5s0 drv=hinic unused= 0000:06:00.0 'Hi1822 Family (2*25GE) 0200' if=enp6s0 drv=hinic unused= 0000:7d:00.0 'HNS GE/10GE/25GE RDMA Network Controller a222' if=enp125s0f0 drv=hns3 unused=hns_roce_hw_v2 *Active* 0000:7d:00.1 'HNS GE/10GE/25GE Network Controller a221' if=enp125s0f1 drv=hns3 unused= 0000:7d:00.2 'HNS GE/10GE/25GE RDMA Network Controller a222' if=enp125s0f2 drv=hns3 unused=hns_roce_hw_v2 0000:7d:00.3 'HNS GE/10GE/25GE Network Controller a221' if=enp125s0f3 drv=hns3 unused= No 'Baseband' devices detected ============================== No 'Crypto' devices detected ============================ No 'Eventdev' devices detected ============================== No 'Mempool' devices detected ============================= No 'Compress' devices detected ============================== No 'Misc (rawdev)' devices detected =================================== [root@localhost dpdk-19.11]#
[root@localhost dpdk-19.11]# modprobe vfio [root@localhost dpdk-19.11]# modprobe vfio-pci
选择其中的选项53:增加VFIO permission [root@localhost dpdk-19.11]# ./usertools/dpdk-setup.sh
[root@localhost dpdk-19.11]# ethtool enp5s0 Settings for enp5s0: Supported ports: [ ] Supported link modes: Not reported Supported pause frame use: No Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: Not reported Advertised pause frame use: No Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Speed: 40000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on MDI-X: Unknown Link detected: yes [root@localhost dpdk-19.11]# ethtool -i enp5s0 driver: hinic version: firmware-version: expansion-rom-version: bus-info: 0000:05:00.0 supports-statistics: no supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no [root@localhost dpdk-19.11]#
[root@localhost dpdk-19.11]# ./usertools/dpdk-devbind.py -s Network devices using kernel driver =================================== 0000:05:00.0 'Hi1822 Family (2*25GE) 0200' if=enp5s0 drv=hinic unused=vfio-pci 0000:06:00.0 'Hi1822 Family (2*25GE) 0200' if=enp6s0 drv=hinic unused=vfio-pci 0000:7d:00.0 'HNS GE/10GE/25GE RDMA Network Controller a222' if=enp125s0f0 drv=hns3 unused=hns_roce_hw_v2,vfio-pci *Active* 0000:7d:00.1 'HNS GE/10GE/25GE Network Controller a221' if=enp125s0f1 drv=hns3 unused=vfio-pci 0000:7d:00.2 'HNS GE/10GE/25GE RDMA Network Controller a222' if=enp125s0f2 drv=hns3 unused=hns_roce_hw_v2,vfio-pci 0000:7d:00.3 'HNS GE/10GE/25GE Network Controller a221' if=enp125s0f3 drv=hns3 unused=vfio-pci
[root@localhost dpdk-19.11]# ./usertools/dpdk-devbind.py --bind=vfio-pci 0000:05:00.0 0000:06:00.0
绑定成功后用ethtool看不到了
[root@localhost dpdk-19.11]# ethtool -i enp5s0 Cannot get driver information: No such device [root@localhost dpdk-19.11]# ethtool -i enp5s1 Cannot get driver information: No such device [root@localhost dpdk-19.11]#
/sys/class/net/下也没有了
[root@localhost dpdk-19.11]# cat /sys/class/net/enp5s0/device/numa_node cat: /sys/class/net/enp5s0/device/numa_node: No such file or directory
[root@localhost ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp125s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether b0:08:75:5f:b7:d9 brd ff:ff:ff:ff:ff:ff inet 10.10.16.229/24 scope global enp125s0f0 valid_lft forever preferred_lft forever 3: enp125s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 link/ether b0:08:75:5f:b7:da brd ff:ff:ff:ff:ff:ff 4: enp125s0f2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 link/ether b0:08:75:5f:b7:db brd ff:ff:ff:ff:ff:ff 5: enp125s0f3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether b0:08:75:5f:b7:dc brd ff:ff:ff:ff:ff:ff 6: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 44:a1:91:a4:9b:eb brd ff:ff:ff:ff:ff:ff 7: enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 44:a1:91:a4:9b:ec brd ff:ff:ff:ff:ff:ff 绑定后看不到了
[root@localhost ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp125s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether b0:08:75:5f:b7:d9 brd ff:ff:ff:ff:ff:ff inet 10.10.16.229/24 scope global enp125s0f0 valid_lft forever preferred_lft forever 3: enp125s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 link/ether b0:08:75:5f:b7:da brd ff:ff:ff:ff:ff:ff 4: enp125s0f2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 link/ether b0:08:75:5f:b7:db brd ff:ff:ff:ff:ff:ff 5: enp125s0f3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether b0:08:75:5f:b7:dc brd ff:ff:ff:ff:ff:ff [root@localhost ~]#
查看pci 05:00.0 、 06:00.0 的numa
[root@localhost dpdk-19.11]# lspci -vvv | grep '05:00.0' -A 5 05:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45) Subsystem: Huawei Technologies Co., Ltd. Device d139 Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx+ NUMA node: 0 Region 0: [virtual] Memory at 80007b00000 (64-bit, prefetchable) [size=128K] [root@localhost dpdk-19.11]#
[root@localhost dpdk-19.11]# lspci -vvv | grep '06:00.0' -A 5
06:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45)
Subsystem: Huawei Technologies Co., Ltd. Device d139
Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx+
NUMA node: 0
Region 0: [virtual] Memory at 80010400000 (64-bit, prefetchable) [size=128K]
使用numactl -H 查看对应numa node下的CPU核
[root@localhost dpdk-19.11]# numactl -H available: 4 nodes (0-3) node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 node 0 size: 130048 MB node 0 free: 95951 MB node 1 cpus: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 node 1 size: 130937 MB node 1 free: 97039 MB node 2 cpus: 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 node 2 size: 130937 MB node 2 free: 96458 MB node 3 cpus: 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 node 3 size: 130935 MB node 3 free: 95428 MB node distances: node 0 1 2 3 0: 10 16 32 33 1: 16 10 25 32 2: 32 25 10 16 3: 33 32 16 10
[root@localhost dpdk-19.11]# ls arm64-armv8a-linuxapp-gcc/ app build include kmod lib Makefile [root@localhost dpdk-19.11]# ./arm64-armv8a-linuxapp-gcc/app/testpmd -l 64-72 -n 8 -w 0000:05:00.0 -w 0000:06:00.0 -- --rxd=1024 --txd=1024 --rxq=1 --txq=1 --nb-cores=4 -i EAL: Detected 128 lcore(s) EAL: Detected 4 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: Selected IOVA mode 'VA' EAL: No available hugepages reported in hugepages-2048kB EAL: Probing VFIO support... EAL: VFIO support initialized EAL: PCI device 0000:05:00.0 on NUMA socket 0 EAL: probe driver: 19e5:200 net_hinic EAL: using IOMMU type 1 (Type 1) net_hinic: Initializing pf hinic-0000:05:00.0 in primary process net_hinic: Device 0000:05:00.0 hwif attribute: net_hinic: func_idx:0, p2p_idx:0, pciintf_idx:0, vf_in_pf:0, ppf_idx:0, global_vf_id:15, func_type:2 net_hinic: num_aeqs:4, num_ceqs:4, num_irqs:32, dma_attr:2 net_hinic: Get public resource capability: net_hinic: host_id: 0x0, ep_id: 0x0, intr_type: 0x0, max_cos_id: 0x7, er_id: 0x0, port_id: 0x0 net_hinic: host_total_function: 0xf2, host_oq_id_mask_val: 0x8, max_vf: 0x78 net_hinic: pf_num: 0x2, pf_id_start: 0x0, vf_num: 0xf0, vf_id_start: 0x10 net_hinic: Get share resource capability: net_hinic: host_pctxs: 0x0, host_cctxs: 0x0, host_scqs: 0x0, host_srqs: 0x0, host_mpts: 0x0 net_hinic: Get l2nic resource capability: net_hinic: max_sqs: 0x10, max_rqs: 0x10, vf_max_sqs: 0x4, vf_max_rqs: 0x4 net_hinic: Initialize 0000:05:00.0 in primary successfully EAL: PCI device 0000:06:00.0 on NUMA socket 0 EAL: probe driver: 19e5:200 net_hinic net_hinic: Initializing pf hinic-0000:06:00.0 in primary process net_hinic: Device 0000:06:00.0 hwif attribute: net_hinic: func_idx:1, p2p_idx:1, pciintf_idx:0, vf_in_pf:0, ppf_idx:0, global_vf_id:135, func_type:0 net_hinic: num_aeqs:4, num_ceqs:4, num_irqs:32, dma_attr:2 net_hinic: Get public resource capability: net_hinic: host_id: 0x0, ep_id: 0x1, intr_type: 0x0, max_cos_id: 0x7, er_id: 0x1, port_id: 0x1 net_hinic: host_total_function: 0xf2, host_oq_id_mask_val: 0x8, max_vf: 0x78 net_hinic: pf_num: 0x2, pf_id_start: 0x0, vf_num: 0xf0, vf_id_start: 0x10 net_hinic: Get l2nic resource capability: net_hinic: max_sqs: 0x10, max_rqs: 0x10, vf_max_sqs: 0x4, vf_max_rqs: 0x4 net_hinic: Initialize 0000:06:00.0 in primary successfully Interactive-mode selected testpmd: create a new mbuf pool <mbuf_pool_socket_2>: n=211456, size=2176, socket=2 testpmd: preferred mempool ops selected: ring_mp_mc testpmd: create a new mbuf pool <mbuf_pool_socket_0>: n=211456, size=2176, socket=0 testpmd: preferred mempool ops selected: ring_mp_mc Configuring Port 0 (socket 0) net_hinic: Disable vlan filter succeed, device: hinic-0000:05:00.0, port_id: 0 net_hinic: Disable vlan strip succeed, device: hinic-0000:05:00.0, port_id: 0 net_hinic: Set new mac address 44:a1:91:a4:9b:eb net_hinic: Disable promiscuous, nic_dev: hinic-0000:05:00.0, port_id: 0, promisc: 0 net_hinic: Disable allmulticast succeed, nic_dev: hinic-0000:05:00.0, port_id: 0 Port 0: 44:A1:91:A4:9B:EB Configuring Port 1 (socket 0) net_hinic: Disable vlan filter succeed, device: hinic-0000:06:00.0, port_id: 1 net_hinic: Disable vlan strip succeed, device: hinic-0000:06:00.0, port_id: 1 net_hinic: Set new mac address 44:a1:91:a4:9b:ec net_hinic: Disable promiscuous, nic_dev: hinic-0000:06:00.0, port_id: 1, promisc: 0 net_hinic: Disable allmulticast succeed, nic_dev: hinic-0000:06:00.0, port_id: 1 Port 1: 44:A1:91:A4:9B:EC Checking link statuses... Done net_hinic: Enable promiscuous, nic_dev: hinic-0000:05:00.0, port_id: 0, promisc: 0 net_hinic: Enable promiscuous, nic_dev: hinic-0000:06:00.0, port_id: 1, promisc: 0 testpmd>
testpmd 退出
uio
[root@localhost dpdk-19.11]# modprobe uio [root@localhost dpdk-19.11]# find ./ -name igb_uio.ko ./build/build/kernel/linux/igb_uio/igb_uio.ko ./build/kmod/igb_uio.ko ./arm64-armv8a-linuxapp-gcc/build/kernel/linux/igb_uio/igb_uio.ko ----------------另外一个版本的4.18 ./arm64-armv8a-linuxapp-gcc/kmod/igb_uio.ko
[root@localhost dpdk-19.11]# insmod ./arm64-armv8a-linuxapp-gcc/build/kernel/linux/igb_uio/igb_uio.ko insmod: ERROR: could not insert module ./arm64-armv8a-linuxapp-gcc/build/kernel/linux/igb_uio/igb_uio.ko: Invalid module format [root@localhost dpdk-19.11]# uname -a Linux localhost.localdomain 4.14.0-115.el7a.0.1.aarch64 #1 SMP Sun Nov 25 20:54:21 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux [root@localhost dpdk-19.11]# insmod ./build/kmod/igb_uio.ko [root@localhost dpdk-19.11]#
[root@localhost dpdk-19.11]# insmod ./build/kmod/igb_uio.ko [root@localhost dpdk-19.11]# rmmod igb_uio.ko [root@localhost dpdk-19.11]# insmod ./build/build/kernel/linux/igb_uio/igb_uio.ko [root@localhost dpdk-19.11]#
[root@localhost dpdk-19.11]# ./usertools/dpdk-devbind.py --bind=igb_uio 0000:06:00.0
https://bbs.huaweicloud.com/forum/thread-27382-1-1.html
https://bbs.huaweicloud.com/forum/thread-40741-1-1.html
https://bbs.huaweicloud.com/forum/thread-40741-1-1.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律