{"id":3192,"date":"2024-04-16T22:44:05","date_gmt":"2024-04-16T14:44:05","guid":{"rendered":"https:\/\/www.aqwu.net\/wp\/?p=3192"},"modified":"2024-04-19T17:59:37","modified_gmt":"2024-04-19T09:59:37","slug":"%e6%a0%91%e8%8e%93%e6%b4%beraspberrypi%e4%b8%8b%e7%bc%96%e8%af%91-openwrt","status":"publish","type":"post","link":"https:\/\/www.aqwu.net\/wp\/?p=3192","title":{"rendered":"\u6811\u8393\u6d3e(raspberrypi)\u4e0b\u7f16\u8bd1 OpenWrt"},"content":{"rendered":"\n<p>\u7f16\u8bd1\u73af\u5883 ubuntu 22.04<\/p>\n\n\n\n<p>\u7f16\u8bd1\u7684\u7248\u672c\u662f openwrt-23.05<\/p>\n\n\n\n<p>\u6811\u8393\u6d3e 4B<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>1. \u5b89\u88c5\u5f00\u53d1\u73af\u5883<\/strong><\/h2>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \">sudo apt update\nsudo apt install build-essential clang flex bison g++ gawk \\\ngcc-multilib g++-multilib gettext git libncurses-dev libssl-dev \\\npython3-distutils rsync unzip zlib1g-dev file wget xsltproc\n<\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2. \u4e0b\u8f7dOpenWrt<\/strong><\/h2>\n\n\n\n<p>\u8fd9\u91cc\u5206 git \u81ea\u52a8\u4e0b\u8f7d\u548c\u624b\u52a8\u4e0b\u8f7d\u4e24\u79cd\u65b9\u6cd5<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2.1 git \u4e0b\u8f7d<\/strong><\/h3>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \" >git clone https:\/\/github.com\/openwrt\/openwrt.git\ncd openwrt\ngit branch -a\ngit tag\ngit checkout v23.05.0\ngit checkout -b openwrt-23.05 origin\/openwrt-23.05\ngit pull<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2.2 \u624b\u52a8\u4e0b\u8f7d<\/strong><\/h3>\n\n\n\n<p>\u6709\u65f6\u5019\uff0cgit clone \u4e0d\u597d\u4f7f\uff0c\u53ef\u4ee5\u624b\u52a8\u53bb\u7f51\u9875\u4e0b\u8f7d\u4e0b\u9762\u7684\u94fe\u63a5\uff1a<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \">https:\/\/github.com\/openwrt\/openwrt\/tree\/openwrt-23.05\n\nhttps:\/\/github.com\/openwrt\/packages\/tree\/openwrt-23.05\nhttps:\/\/github.com\/openwrt\/luci\/tree\/openwrt-23.05\nhttps:\/\/github.com\/openwrt\/telephony\/tree\/openwrt-23.05\nhttps:\/\/github.com\/openwrt\/routing\/tree\/openwrt-23.05\n<\/pre><\/div>\n\n\n\n<p>\u590d\u5236\u5230\u9879\u76ee\u76ee\u5f55\uff0c\u7136\u540e\u89e3\u538b<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \">cd \/home\/tony\/git\nunzip openwrt-openwrt-23.05.zip\nunzip packages-openwrt-23.05.zip\nunzip luci-openwrt-23.05.zip \nunzip routing-openwrt-23.05.zip\nunzip telephony-openwrt-23.05.zip \n<\/pre><\/div>\n\n\n\n<p>\u590d\u5236 feeds.conf<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \">cd openwrt-openwrt-23.05\ncp feeds.conf.default feeds.conf\n<\/pre><\/div>\n\n\n\n<p>\u4fee\u6539 feeds.conf,\u4fee\u6539\u540e\u7684\u5185\u5bb9\uff0c<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \">src-link packages \/home\/tony\/git\/packages-openwrt-23.05\nsrc-link luci \/home\/tony\/git\/luci-openwrt-23.05\nsrc-link routing \/home\/tony\/git\/routing-openwrt-23.05\nsrc-link telephony \/home\/tony\/git\/telephony-openwrt-23.05\n<\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>3. \u66f4\u65b0\u5e76\u5b89\u88c5\u8f6f\u4ef6\u5305\u6e90<\/strong><\/h2>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \">.\/scripts\/feeds update -a\n.\/scripts\/feeds install -a\n<\/pre><\/div>\n\n\n\n<p>\u786e\u4fdd\u8fd0\u884c\u6b63\u5e38<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>4. \u914d\u7f6e firmware image<\/strong><\/h2>\n\n\n\n<p>\u8fd0\u884c\u547d\u4ee4\uff1a<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \">make menuconfig\n<\/pre><\/div>\n\n\n\n<p>\u4e5f\u53ef\u4ee5\u4e0b\u8f7d <a href=\"https:\/\/mirror-03.infra.openwrt.org\/releases\/23.05.3\/targets\/bcm27xx\/bcm2711\/config.buildinfo\">23.05<\/a> \u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u4f5c\u4e3a .config <\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \">cp config.buildinfo .config<\/pre><\/div>\n\n\n\n<p>\u6839\u636e\u81ea\u5df1\u7684\u914d\u7f6e\u4fee\u6539\uff0c\u4e0b\u9762\u662f\u6211\u9700\u8981\u7684\u4fee\u6539\u5185\u5bb9<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \">  Target System (Broadcom BCM27xx)  ---&gt; \n      Broadcom BCM27xx\n      \n  Subtarget (BCM2711 boards (64 bit))  ---&gt; \n      (X) BCM2711 boards (64 bit)\n      \n  Target Profile (Raspberry Pi 4B\/400\/CM4 (64bit))  ---&gt;      \n      (X) Raspberry Pi 4B\/400\/CM4 (64bit) \n        \n  Target Images  ---&gt;\n      (2048) Kernel partition size (in MiB) \n      (26624) Root filesystem partition size (in MiB)\n      [*] Make \/var persistent \n\n  [*] Build the OpenWrt Image Builder\n      [*]   Include package repositories \n      \n  Kernel modules  ---&gt;\n      GPIO support  ---&gt;\n          &lt;*&gt; kmod-gpio-cascade................................... Generic GPIO cascade\n      Network Devices  ---&gt;\n          &lt;*&gt; kmod-wwan............................................... WWAN Driver Core\n\n      Other modules  ---&gt;\n          &lt;*&gt; kmod-gpio-beeper..................................... GPIO beeper support\n          &lt;*&gt; kmod-gpio-button-hotplug............... Simple GPIO Button Hotplug driver\n          &lt;*&gt; kmod-gpio-nxp-74hc164.................. NXP 74HC164 GPIO expander support\n          &lt;*&gt; kmod-gpio-pca953x................ PCA95xx, TCA64xx, and MAX7310 I\/O ports\n          &lt;*&gt; kmod-gpio-pcf857x........ PCX857x, PCA967x and MAX732X I2C GPIO expanders\n\n      USB Support  ---&gt;\n          -*- kmod-usb-core............................................ Support for USB\n          &lt;*&gt; kmod-usb-hid......................... Support for USB Human Input Devices (NEW)\n          &lt;*&gt; kmod-usb-net............... Kernel modules for USB-to-Ethernet convertors\n          &lt;*&gt; kmod-usb-net-cdc-ether.............. Support for cdc ethernet connections\n          &lt;*&gt; kmod-usb-net-qmi-wwan.................................... QMI WWAN driver\n          &lt;*&gt; kmod-usb-net-rndis......................... Support for RNDIS connections\n          &lt;*&gt; kmod-usb-serial..................... Support for USB-to-Serial converters\n          &lt;*&gt; kmod-usb-serial-option................... Support for Option HSDPA modems\n      Libraries  ---&gt;\n          SSL  ---&gt;\n              -*- libopenssl........................... Open source SSL toolkit (libraries)\n      LuCI  ---&gt;\n          1. Collections  ---&gt;\n              &lt;*&gt; luci................... LuCI interface with Uhttpd as Webserver (default)\n              &lt; &gt; luci-lib-docker.................................. LuCI library for docker\n              -*- luci-light............... LuCI interface with Uhttpd as Webserver (light)\n              &lt; &gt; luci-nginx........................ LuCI interface with Nginx as Webserver\n              &lt;*&gt; luci-ssl................ LuCI with HTTPS support (mbedtls as SSL backend)\n              &lt; &gt; luci-ssl-nginx. LuCI with HTTPS support on Nginx (OpenSSL as SSL backend)\n              &lt;*&gt; luci-ssl-openssl........ LuCI with HTTPS support (OpenSSL as SSL backend)\n\n      Network  ---&gt;\n          Web Servers\/Proxies\n              -*- uhttpd........................ uHTTPd - tiny, single threaded HTTP server\n              &lt;*&gt;   uhttpd-mod-lua... uHTTPd - tiny, single threaded HTTP server (Lua plugin)\n              &lt;*&gt;   uhttpd-mod-ubus. uHTTPd - tiny, single threaded HTTP server (ubus plugin)\n              &lt;*&gt;   uhttpd-mod-ucode\n\n<\/pre><\/div>\n\n\n\n<p>Target Images \u7684 \u5206\u533a\u5927\u5c0f\uff0c\u6839\u636e\u60a8\u7684\u5361\u7684\u5927\u5c0f\u6765\uff0c\u5982\u679c\u592a\u5927\uff0c\u53ef\u80fd\u5199\u5165\u4f1a\u6709\u95ee\u9898\u3002<\/p>\n\n\n\n<p>\u8bb0\u5f97\u4fdd\u5b58\u4e3a .config<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>5. \u7f16\u8bd1<\/strong><\/h2>\n\n\n\n<p>\u6839\u636e\u60a8\u7684CPU\u6570\u91cf\uff0c\u5728make \u540e\u9762\u7684\u53c2\u6570j, \u540e\u9762\u53ef\u4ee5\u8ddf\u6570\u91cf\uff0c\u591a\u7ebf\u7a0b\u7f16\u8bd1<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \">make -j$(nproc)<\/pre><\/div>\n\n\n\n<p>\u5728 bin\/ \u76ee\u5f55\u4e0b\u6709 packages \u548c targets \u76ee\u5f55<\/p>\n\n\n\n<p>\u5728\u8fd9\u4e9b\u76ee\u5f55\u91cc\u9762\u53ef\u4ee5\u627e\u5230\u60a8\u60f3\u8981\u7684\u4e1c\u897f<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \">zip -r openwrt_23.05_packages.zip bin\/packages\nzip -r openwrt_23.05_targets.zip bin\/targets<\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>6. \u6e05\u9664\u73af\u5883<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>6.1 \u6e05\u9664\u7f16\u8bd1\u4ea7\u7269<\/strong><\/h3>\n\n\n\n<p><strong>make clean<\/strong>: \u8fd9\u4e2a\u547d\u4ee4\u4f1a\u5220\u9664\u5927\u90e8\u5206\u7f16\u8bd1\u4ea7\u7269\uff0c\u4f46\u4f1a\u4fdd\u7559\u914d\u7f6e\u548c\u5de5\u5177\u94fe\uff0c\u8ba9\u4e0b\u4e00\u6b21\u7f16\u8bd1\u901f\u5ea6\u66f4\u5feb\u3002<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \">make clean<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>6.2 \u5b8c\u5168\u6e05\u9664\u6240\u6709\u7f16\u8bd1\u4ea7\u7269\u548c\u914d\u7f6e<\/strong><\/h3>\n\n\n\n<p><strong>make dirclean<\/strong>: \u4f7f\u7528\u8fd9\u4e2a\u547d\u4ee4\u53ef\u4ee5\u66f4\u5f7b\u5e95\u5730\u6e05\u7406\uff0c\u5b83\u4f1a\u5220\u9664\u6240\u6709\u7f16\u8bd1\u4ea7\u7269\u3001\u914d\u7f6e\u548c\u5de5\u5177\u94fe\u3002\u8fd9\u57fa\u672c\u4e0a\u4f1a\u8ba9\u4f60\u7684\u7f16\u8bd1\u73af\u5883\u6062\u590d\u5230\u514b\u9686\u6e90\u4ee3\u7801\u4e4b\u540e\u7684\u539f\u59cb\u72b6\u6001\u3002<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \">make dirclean<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>6.3 \u6e05\u9664\u6784\u5efa\u76ee\u5f55\u548c\u914d\u7f6e<\/strong><\/h3>\n\n\n\n<p><strong>make distclean<\/strong>: \u8fd9\u4e2a\u547d\u4ee4\u4f1a\u5220\u9664\u6240\u6709\u7f16\u8bd1\u4ea7\u7269\u548c\u5de5\u5177\u94fe\uff0c\u4f46\u4e0e<code>dirclean<\/code>\u4e0d\u540c\u7684\u662f\uff0c\u5b83\u8fd8\u4f1a\u5220\u9664\u914d\u7f6e\u6587\u4ef6\u3002\u8fd9\u610f\u5473\u7740\u4f60\u7684<code>.config<\/code>\u6587\u4ef6\u4e5f\u4f1a\u88ab\u6e05\u9664\uff0c\u4f60\u9700\u8981\u91cd\u65b0\u8fdb\u884c\u914d\u7f6e\u3002<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \">make distclean<\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>7. \u5b89\u88c5 image \u5230 \u5361\u4e0a<\/strong><\/h2>\n\n\n\n<p>\u53ef\u4ee5\u4f7f\u7528\u5b98\u65b9\u7684 imager \u8fdb\u884c\u52a0\u8f7d\u7136\u540e\u5199\u9053 \u5361\u4e0a<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>8. \u5176\u4ed6<\/strong><\/h2>\n\n\n\n<p>\u5982\u679c\u4f60\u662f\u4ece github.com \u4e0a\u76f4\u63a5\u4e0b\u8f7d zip \u5305\u7684\uff0c\u53ef\u4ee5\u901a\u8fc7\u5982\u4e0b\u547d\u4ee4\uff0c\u8f6c\u6362\u4e3a git \u5e93<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>8.1 \u521d\u59cb\u5316Git\u4ed3\u5e93<\/strong><\/h3>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \">cd openwrt-openwrt-23.05\ngit init\n\nhint: Using 'master' as the name for the initial branch. This default branch name\nhint: is subject to change. To configure the initial branch name to use in all\nhint: of your new repositories, which will suppress this warning, call:\nhint:\nhint:   git config --global init.defaultBranch &lt;name&gt;\nhint:\nhint: Names commonly chosen instead of 'master' are 'main', 'trunk' and\nhint: 'development'. The just-created branch can be renamed via this command:\nhint:\nhint:   git branch -m &lt;name&gt;\nInitialized empty Git repository in \/home\/tony\/git\/openwrt-openwrt-23.05\/.git\/\n<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>8.2 \u6dfb\u52a0\u8fdc\u7a0b\u4ed3\u5e93<\/strong><\/h3>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \">git remote add origin https:\/\/github.com\/openwrt\/openwrt.git\n<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>8.3 \u62c9\u53d6\u6700\u65b0\u7684\u4ee3\u7801<\/strong><\/h3>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \">git pull origin openwrt-23.05 --allow-unrelated-histories\n<\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u7f16\u8bd1\u73af\u5883 ubuntu 22.04 \u7f16\u8bd1\u7684\u7248\u672c\u662f openwrt-23.05 \u6811\u8393\u6d3e 4B 1. \u5b89\u88c5\u5f00\u53d1\u73af\u5883 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[103],"tags":[60,427,429,430,428],"class_list":["post-3192","post","type-post","status-publish","format-standard","hentry","category-linux-infoarticle","tag-linux","tag-openwrt","tag-raspberrypi","tag-ubuntu","tag-428"],"views":2526,"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=\/wp\/v2\/posts\/3192","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3192"}],"version-history":[{"count":23,"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=\/wp\/v2\/posts\/3192\/revisions"}],"predecessor-version":[{"id":3225,"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=\/wp\/v2\/posts\/3192\/revisions\/3225"}],"wp:attachment":[{"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3192"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}