{"id":1779,"date":"2025-12-16T08:49:27","date_gmt":"2025-12-16T08:49:27","guid":{"rendered":"http:\/\/www.recologypower.com:9080\/?p=1779"},"modified":"2025-12-16T08:49:28","modified_gmt":"2025-12-16T08:49:28","slug":"%e3%80%90dpdk%e4%ba%a4%e5%8f%89%e7%bc%96%e8%af%91","status":"publish","type":"post","link":"http:\/\/www.recologypower.com:9080\/?p=1779","title":{"rendered":"\u3010DPDK]\u4ea4\u53c9\u7f16\u8bd1"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u4e00\u3001\u73af\u5883\u51c6\u5907<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu\nsudo apt install meson ninja pkg-config gcc-multilib<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e8c\u3001\u521b\u5efa\u4ea4\u53c9\u7f16\u8bd1\u914d\u7f6e\u6587\u4ef6<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;binaries]\r\n# \u4ea4\u53c9\u7f16\u8bd1\u5668\u8def\u5f84\uff08\u7edd\u5bf9\u8def\u5f84\/\u7cfb\u7edfPATH\u4e2d\u7684\u522b\u540d\uff09\r\nc = 'aarch64-linux-gnu-gcc'\r\ncpp = 'aarch64-linux-gnu-g++'\r\nar = 'aarch64-linux-gnu-ar'\r\nstrip = 'aarch64-linux-gnu-strip'\r\npkgconfig = 'pkg-config'  # \u82e5\u76ee\u6807\u673a\u6709 pkg-config\uff0c\u53ef\u6307\u5b9a\u76ee\u6807\u673a\u8def\u5f84\r\nninja = '\/usr\/bin\/ninja'\r\n\r\n&#91;host_machine]\r\n# \u76ee\u6807\u67b6\u6784\uff1a\u6839\u636e\u5b9e\u9645\u4fee\u6539\uff08aarch64\/armv7l\/mips64\u7b49\uff09\r\nsystem = 'linux'\r\ncpu_family = 'aarch64'\r\ncpu = 'cortex-a72'  # \u76ee\u6807CPU\u578b\u53f7\uff08\u53ef\u9009\uff0c\u5982 cortex-a53\u3001x86_64\uff09\r\nendian = 'little'\r\n\r\n&#91;properties]\r\n# \u76ee\u6807\u673a\u5185\u6838\u5934\u6587\u4ef6\u8def\u5f84\uff08\u5173\u952e\uff01\u5fc5\u987b\u5339\u914d\u76ee\u6807\u673a\u5185\u6838\u7248\u672c\uff09\r\nc_args = &#91;'-I\/path\/to\/target\/linux-headers-5.15.0-101-arm64\/include']\r\nc_link_args = &#91;'-L\/path\/to\/target\/lib64', '-lpthread', '-ldl']\r\n# \u7981\u7528\u5bbf\u4e3b\u673a\u4f9d\u8d56\u68c0\u6d4b\uff0c\u5f3a\u5236\u4f7f\u7528\u4ea4\u53c9\u7f16\u8bd1\u73af\u5883\r\npkg_config_libdir = &#91;'\/path\/to\/target\/usr\/lib\/aarch64-linux-gnu\/pkgconfig']\r\n# DPDK \u7279\u6709\u914d\u7f6e\uff1a\u7981\u7528\u4e0d\u652f\u6301\u7684\u9a71\u52a8\/\u529f\u80fd\r\ndpdk_cross = true\r\ndpdk_disable_drivers = 'net\/e1000,net\/ixgbe'  # \u7981\u7528\u76ee\u6807\u673a\u65e0\u7684\u7f51\u5361\u9a71\u52a8\r\ndpdk_enable_kmods = false  # \u4ea4\u53c9\u7f16\u8bd1\u65f6\u4e0d\u7f16\u8bd1\u5185\u6838\u6a21\u5757\uff08\u76ee\u6807\u673a\u5355\u72ec\u7f16\u8bd1\uff09<\/code><\/pre>\n\n\n\n<ul>\n<li>\u786e\u4fdd\u914d\u7f6e\u6587\u4ef6\u65e0\u4e2d\u6587\u3001\u7279\u6b8a\u7b26\u53f7\uff08\u5982\u300c\u30fb\u300d\u300c\uffe5\u300d\uff09\uff0c\u4ec5\u7528 ASCII \u5b57\u7b26\uff1b<\/li>\n\n\n\n<li>\u9a8c\u8bc1\u6587\u4ef6\u7f16\u7801\uff1a<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>file -i dpdk_cross_arm64.txt\r\n# \u8f93\u51fa\uff1acharset=utf-8 \u2192 \u6b63\u5e38\uff1b\u82e5\u4e3a gbk\/iso-8859-1\uff0c\u9700\u8f6c\u6362\r\niconv -f GBK -t UTF-8 dpdk_cross_arm64.txt -o dpdk_cross_arm64_utf8.txt<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e09\u3001DPDK \u4ea4\u53c9\u7f16\u8bd1\u5b9e\u64cd<\/h2>\n\n\n\n<p>1. \u6e90\u7801\u51c6\u5907<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u4e0b\u8f7d DPDK \u6e90\u7801\uff08\u4ee5 22.11 \u4e3a\u4f8b\uff09\r\nwget https:\/\/fast.dpdk.org\/rel\/dpdk-22.11.tar.xz\r\ntar -xf dpdk-22.11.tar.xz\r\ncd dpdk-22.11<\/code><\/pre>\n\n\n\n<p>2. \u521d\u59cb\u5316 Meson \u6784\u5efa\u76ee\u5f55<\/p>\n\n\n\n<p>\u901a\u8fc7\u00a0<code>--cross-file<\/code>\u00a0\u6307\u5b9a\u4ea4\u53c9\u914d\u7f6e\u6587\u4ef6\uff0c\u540c\u65f6\u8bbe\u7f6e\u5173\u952e\u53c2\u6570\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u521b\u5efa\u6784\u5efa\u76ee\u5f55\r\nmeson setup build-arm64 \\\r\n  --cross-file=\/path\/to\/dpdk_cross_arm64.txt \\\r\n  --prefix=\/opt\/dpdk-arm64  # \u7f16\u8bd1\u540e\u5b89\u88c5\u8def\u5f84<\/code><\/pre>\n\n\n\n<p>3. \u7f16\u8bd1\u4e0e\u5b89\u88c5<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u7f16\u8bd1\uff08-j \u540e\u8ddf\u6838\u5fc3\u6570\uff0c\u52a0\u901f\u7f16\u8bd1\uff09\r\nninja -C build-arm64 -j$(nproc)\r\n\r\n# \u5b89\u88c5\u5230\u6307\u5b9a\u8def\u5f84\r\nninja -C build-arm64 install<\/code><\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"slide-text-bg2\">\n<h3>\u4e00\u3001\u73af\u5883\u51c6\u5907 \u4e8c\u3001\u521b\u5efa\u4ea4\u53c9\u7f16\u8bd1\u914d\u7f6e\u6587\u4ef6 <\/h3>\n<\/div>\n<div class=\"flex-btn-div\"><a href=\"http:\/\/www.recologypower.com:9080\/?p=1779\" class=\"btn1 flex-btn\">\u9605\u8bfb\u66f4\u591a<\/a><\/div>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[110],"tags":[],"_links":{"self":[{"href":"http:\/\/www.recologypower.com:9080\/index.php?rest_route=\/wp\/v2\/posts\/1779"}],"collection":[{"href":"http:\/\/www.recologypower.com:9080\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.recologypower.com:9080\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.recologypower.com:9080\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.recologypower.com:9080\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1779"}],"version-history":[{"count":1,"href":"http:\/\/www.recologypower.com:9080\/index.php?rest_route=\/wp\/v2\/posts\/1779\/revisions"}],"predecessor-version":[{"id":1780,"href":"http:\/\/www.recologypower.com:9080\/index.php?rest_route=\/wp\/v2\/posts\/1779\/revisions\/1780"}],"wp:attachment":[{"href":"http:\/\/www.recologypower.com:9080\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1779"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.recologypower.com:9080\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1779"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.recologypower.com:9080\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1779"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}