<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>QC3284&apos;s Blog</title><description>乐于分享</description><link>https://blog.3284123.xyz/</link><language>zh_CN</language><item><title>（x-wrt）SSH-open</title><link>https://blog.3284123.xyz/posts/x-wrt_ssh-open/</link><guid isPermaLink="true">https://blog.3284123.xyz/posts/x-wrt_ssh-open/</guid><description>在X-WRT系统中开启SSH登录的简单步骤，解决默认无法登录的问题</description><pubDate>Fri, 09 Aug 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;文章来源：https://github.com/x-wrt/x-wrt.github.io/tree/master/docs/ssh-open&lt;/p&gt;
&lt;h1&gt;X-WRT 开启ssh的方法&lt;/h1&gt;
&lt;p&gt;很多⼈说 X-WRT 的ssh无法登录，这其实是因为默认的ssh没有开启用户登录，大家可以进入界面，进入&lt;a href=&quot;#&quot;&gt;系统-管理权&lt;/a&gt;页面，进入&lt;a href=&quot;#&quot;&gt;SSH访问&lt;/a&gt;标签，开启&lt;strong&gt;密码验证&lt;/strong&gt;和&lt;strong&gt;允许 root 用户凭密码登录&lt;/strong&gt;就可以了。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn-esa-cn-1.3284123.xyz/gh/x-wrt/x-wrt.github.io@master/docs/ssh-open/ssh1.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;注意请使用谷歌浏览器，火狐浏览器，微软的浏览器，其他浏览器存在不可预知的问题。&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title>（x-wrt）多拨和负载均衡配置教程</title><link>https://blog.3284123.xyz/posts/x-wrt%E5%A4%9A%E6%8B%A8%E5%92%8C%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B/</link><guid isPermaLink="true">https://blog.3284123.xyz/posts/x-wrt%E5%A4%9A%E6%8B%A8%E5%92%8C%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B/</guid><description>在X-WRT系统上配置多拨上网与负载均衡的简易教程，适用于支持多拨的运营商网络</description><pubDate>Fri, 09 Aug 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;文章来源：https://github.com/x-wrt/x-wrt.github.io/master/docs/xwan/&lt;/p&gt;
&lt;h1&gt;多拨和负载均衡配置教程&lt;/h1&gt;
&lt;h2&gt;1. 介绍(单网口多拨)&lt;/h2&gt;
&lt;p&gt;很多⼈不知道怎么配置OpenWrt多拨，特写⼀个简易的教程，只要你的运营商⽀持多拨，照着这个教程做都可以多拨叠加⽹速。本教程适用于OpenWrt衍生版本&lt;a href=&quot;https://downloads.x-wrt.com/rom/&quot;&gt;X-WRT的固件&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;注意请使用谷歌浏览器，火狐浏览器，微软的浏览器，其他浏览器存在不可预知的问题。&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;1.1 首先，正常设置好wan口拨号上网&lt;/h3&gt;
&lt;p&gt;在&lt;a href=&quot;#&quot;&gt;网络-接口&lt;/a&gt;页面，编辑&lt;a href=&quot;#&quot;&gt;wan口-基本设置&lt;/a&gt;，选择协议PPPoE，填写宽带账户密码:
&lt;img src=&quot;https://cdn-esa-cn-1.3284123.xyz/gh/x-wrt/x-wrt.github.io@master/docs/xwan/xwan-pppoe1.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;修改&lt;a href=&quot;#&quot;&gt;wan口-高级设置&lt;/a&gt;，使用网关跃点 填写&lt;code&gt;40&lt;/code&gt;，&lt;a href=&quot;#&quot;&gt;防火墙设置&lt;/a&gt; 选择wan
&lt;img src=&quot;https://cdn-esa-cn-1.3284123.xyz/gh/x-wrt/x-wrt.github.io@master/docs/xwan/xwan-pppoe2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;1.2 然后，开启多拨&lt;/h3&gt;
&lt;p&gt;进入&lt;a href=&quot;#&quot;&gt;网络-多拨&lt;/a&gt;页面，开启多拨，填写想要的多拨数，启用自动负载均衡和叠加:
&lt;img src=&quot;https://cdn-esa-cn-1.3284123.xyz/gh/x-wrt/x-wrt.github.io@master/docs/xwan/xwan1.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;开启多拨后，它会自动设置好负载均衡和叠加，对于高级用户，可以进入&lt;a href=&quot;#&quot;&gt;网络-负载均衡&lt;/a&gt;页面进行高级的调整，小白用户可以忽略。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PS: 这里开启多拨，实际上用的网口就是1.1设置的wan口的接口&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title>(x-wrt）luci-app-fakemesh</title><link>https://blog.3284123.xyz/posts/x-wr_luci-app-fakemesh/</link><guid isPermaLink="true">https://blog.3284123.xyz/posts/x-wr_luci-app-fakemesh/</guid><description>介绍了fakemesh这种混合网络拓扑结构的基本概念、配置方法与使用技巧，适用于X-WRT系统</description><pubDate>Fri, 09 Aug 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;文章来源：https://github.com/x-wrt/com.x-wrt/tree/master/luci-app-fakemesh&lt;/p&gt;
&lt;h2&gt;fakemesh简介&lt;/h2&gt;
&lt;p&gt;fakemesh是一种网络拓扑结构，由一个&lt;code&gt;控制器（AC）&lt;/code&gt;和一个或多个&lt;code&gt;有线AP（Wired AP）&lt;/code&gt;和&lt;code&gt;卫星（Agent）&lt;/code&gt;组成。它是一种混合了&lt;code&gt;无线Mesh&lt;/code&gt;和&lt;code&gt;AC+AP&lt;/code&gt;两种组网模式的混合网络，其中，&lt;code&gt;有线AP&lt;/code&gt;通过网线和&lt;code&gt;控制器（AC）&lt;/code&gt;相连，而&lt;code&gt;卫星（Agent）&lt;/code&gt;则通过无线STA方式接入，共同构成一个无线（包括有线）覆盖网络。&lt;/p&gt;
&lt;p&gt;fakemesh的部署确实相对较为方便，只需要将节点设备连接到正确的网络，并设置节点设备的角色，Mesh ID等信息即可。因为fakemesh结合了无线Mesh和AC+AP两种组网模式，所以也可以很方便地进行混合组网，提高了网络的覆盖范围和可靠性。&lt;/p&gt;
&lt;p&gt;目前&lt;a href=&quot;https://github.com/x-wrt/x-wrt&quot;&gt;X-WRT&lt;/a&gt;默认集成了fakemesh功能&lt;/p&gt;
&lt;h2&gt;fakemesh 使用&lt;/h2&gt;
&lt;h3&gt;组网成功后统一的访问设备的地址格式如下:&lt;/h3&gt;
&lt;p&gt;访问控制器的地址: &lt;code&gt;http://controller.fakemesh/&lt;/code&gt;或者&lt;code&gt;http://ac.fakemesh/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;访问AP的地址: &lt;code&gt;http://{mac}.ap.fakemesh/&lt;/code&gt; 或者 &lt;code&gt;http://N.ap.fakemesh/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;其中&lt;code&gt;{mac}&lt;/code&gt;是AP的MAC地址，比如&lt;code&gt;{mac}=1122334455AB&lt;/code&gt;，&lt;code&gt;N&lt;/code&gt;是AP的自动编号，比如 N=1, N=2, N=3, ...&lt;/p&gt;
&lt;p&gt;例子:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;http://1.ap.fakemesh/
http://1122334455AB.ap.fakemesh/
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;故障处理:&lt;/h3&gt;
&lt;p&gt;AP离线3分钟左右进入故障模式，这个模式开启默认SSID，可以提供接入管理重新配置。
故障模式的默认SSID和密码是:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;SSID: X-WRT_XXXX
PASSWD: 88888888
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;故障模式下AP的管理IP地址是DHCP的网关地址，比如电脑获取到&lt;code&gt;192.168.16.x&lt;/code&gt;的IP，那么AP的管理IP就是&lt;code&gt;192.168.16.1&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;fakemesh 基本组成&lt;/h2&gt;
&lt;p&gt;组网由一个&lt;code&gt;控制器(controller)&lt;/code&gt;和一个或者多个&lt;code&gt;AP&lt;/code&gt;组成&lt;/p&gt;
&lt;p&gt;AP包括: &lt;code&gt;卫星(Agent)&lt;/code&gt;和&lt;code&gt;有线AP(Wired AP)&lt;/code&gt;两种&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;控制器(Controller)&lt;/strong&gt;:  作为AC和出口路由器，提供网络出口上网，统一管理下挂的卫星和有线AP，统一管理无线&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;卫星(Agent)&lt;/strong&gt;:  通过Wi-Fi组网接入的AP&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;有线AP(Wired AP)&lt;/strong&gt;:  通过网线组网接入的AP&lt;/p&gt;
&lt;h2&gt;fakemesh 配置参数&lt;/h2&gt;
&lt;h3&gt;1. Mesh ID&lt;/h3&gt;
&lt;p&gt;这个参数是fakemesh网络组网的统一ID，控制器、卫星、有线AP都要设置相同的Mesh ID。&lt;/p&gt;
&lt;h3&gt;2. 密钥(Key)&lt;/h3&gt;
&lt;p&gt;这是组网的统一密钥，组网加密需要，如果不需要加密可以留空白。&lt;/p&gt;
&lt;h3&gt;3. 带宽(Band)&lt;/h3&gt;
&lt;p&gt;这是组网使用的无线频段，要设置相同，5G或者2G。&lt;/p&gt;
&lt;h3&gt;4. 角色(Role)&lt;/h3&gt;
&lt;p&gt;可以是控制器、卫星、有线AP。&lt;/p&gt;
&lt;h3&gt;5. 同步配置(Sync Config)&lt;/h3&gt;
&lt;p&gt;是否统一管理Wi-Fi配置等，Wi-Fi配置由控制器统一配置管理。&lt;/p&gt;
&lt;h3&gt;6. 访问 IP 地址(Access IP address)&lt;/h3&gt;
&lt;p&gt;设置一个特定的IP地址给控制器，可以通过这个IP访问控制器的管理界面。&lt;/p&gt;
&lt;h3&gt;7. 关闭前传(Fronthaul Disabled)&lt;/h3&gt;
&lt;p&gt;这个节点关闭前传无线信号，也就是不允许其他AP节点通过这个节点Wi-Fi接入。&lt;/p&gt;
&lt;h3&gt;8. 漫游组件(Band Steer Helper)&lt;/h3&gt;
&lt;p&gt;目前可以选择&lt;a href=&quot;https://github.com/fakemesh/dawn&quot;&gt;DAWN&lt;/a&gt;或者&lt;a href=&quot;https://github.com/fakemesh/usteer&quot;&gt;usteer&lt;/a&gt;作为漫游辅助控件。&lt;/p&gt;
&lt;h2&gt;无线管理(Wireless Management)&lt;/h2&gt;
&lt;p&gt;可以在控制器界面上统一管理无线，包括增删SSID，设置SSID的加密方式，频宽。&lt;/p&gt;
&lt;h2&gt;控制器(Controller)旁路部署&lt;/h2&gt;
&lt;p&gt;需要注意的是，如果控制器不作为网关出口并且不提供DHCP服务，用户需要手动配置网络设置，包括设置控制器的LAN口IP地址、网关IP和DNS。此外，通常控制器的LAN口会默认启用DHCP客户端，从第三方网关获取IP和网关，如果需要使用静态IP，则需要保证控制器和第三方网关在同一个网段且可以相互通信。否则，就无法实现控制器与其他AP的同步配置。&lt;/p&gt;
</content:encoded></item><item><title>MLinux Minimal 说明文档</title><link>https://blog.3284123.xyz/posts/mlinux-minimal-readme-zh_cn/</link><guid isPermaLink="true">https://blog.3284123.xyz/posts/mlinux-minimal-readme-zh_cn/</guid><description>MLinux Minimal微型Linux发行版的构建指南，包含依赖说明、配置选项与运行方法</description><pubDate>Fri, 09 Aug 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;MLinux Minimal - 微型 Linux 发行版&lt;/h1&gt;
&lt;p&gt;&amp;lt;img src=&quot;https://ghproxy2.xcqcoo.top/https://raw.githubusercontent.com/mlinux-project/.github/main/images/mlinux-minimal.svg&quot; width=&quot;25%&quot; alt=&quot;MLinux Minimal&quot;&amp;gt;&lt;/p&gt;
&lt;h2&gt;依赖项&lt;/h2&gt;
&lt;h3&gt;编译二进制文件所需&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;x86_64 C 运行时、编译器、链接器等&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;可使用系统原生的 &lt;code&gt;cc&lt;/code&gt; 或 GCC 4.2 及以上版本（用于编译 BusyBox 和 Linux 内核）。&lt;/li&gt;
&lt;li&gt;GCC 主页：&lt;br /&gt;
&lt;a href=&quot;https://gcc.gnu.org&quot;&gt;https://gcc.gnu.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载地址：&lt;br /&gt;
&lt;a href=&quot;https://ftp.gnu.org/gnu/gcc&quot;&gt;https://ftp.gnu.org/gnu/gcc&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Shell&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;可使用系统原生的 &lt;code&gt;sh&lt;/code&gt; 或 GNU Bash。&lt;/li&gt;
&lt;li&gt;GNU Bash 主页：&lt;br /&gt;
&lt;a href=&quot;https://www.gnu.org/software/bash&quot;&gt;https://www.gnu.org/software/bash&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载地址：&lt;br /&gt;
&lt;a href=&quot;https://ftp.gnu.org/gnu/bash&quot;&gt;https://ftp.gnu.org/gnu/bash&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Awk&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;可使用系统原生的 awk、mawk、nawk 或 GNU awk。&lt;/li&gt;
&lt;li&gt;GNU awk 主页：&lt;br /&gt;
&lt;a href=&quot;https://www.gnu.org/software/gawk&quot;&gt;https://www.gnu.org/software/gawk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载地址：&lt;br /&gt;
&lt;a href=&quot;https://ftp.gnu.org/gnu/gawk&quot;&gt;https://ftp.gnu.org/gnu/gawk&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Bc&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;可使用系统原生的 bc 或 GNU bc（用于编译 Linux 内核）。&lt;/li&gt;
&lt;li&gt;GNU bc 主页：&lt;br /&gt;
&lt;a href=&quot;https://www.gnu.org/software/bc&quot;&gt;https://www.gnu.org/software/bc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载地址：&lt;br /&gt;
&lt;a href=&quot;https://ftp.gnu.org/gnu/bc&quot;&gt;https://ftp.gnu.org/gnu/bc&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Bison&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;可使用系统原生的 bison 或 GNU Bison（用于编译 Linux 内核）。&lt;/li&gt;
&lt;li&gt;GNU Bison 主页：&lt;br /&gt;
&lt;a href=&quot;https://www.gnu.org/software/bison&quot;&gt;https://www.gnu.org/software/bison&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载地址：&lt;br /&gt;
&lt;a href=&quot;https://ftp.gnu.org/gnu/bison&quot;&gt;https://ftp.gnu.org/gnu/bison&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;核心 POSIX 工具集&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;可使用系统原生工具或 GNU coreutils。&lt;/li&gt;
&lt;li&gt;GNU coreutils 主页：&lt;br /&gt;
&lt;a href=&quot;https://www.gnu.org/software/coreutils&quot;&gt;https://www.gnu.org/software/coreutils&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载地址：&lt;br /&gt;
&lt;a href=&quot;https://ftp.gnu.org/gnu/coreutils&quot;&gt;https://ftp.gnu.org/gnu/coreutils&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Cpio&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;可使用系统原生的 cpio 或 GNU cpio。&lt;/li&gt;
&lt;li&gt;GNU cpio 主页：&lt;br /&gt;
&lt;a href=&quot;https://www.gnu.org/software/cpio&quot;&gt;https://www.gnu.org/software/cpio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载地址：&lt;br /&gt;
&lt;a href=&quot;https://ftp.gnu.org/gnu/cpio&quot;&gt;https://ftp.gnu.org/gnu/cpio&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Flex&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;用于编译 Linux 内核。&lt;/li&gt;
&lt;li&gt;主页：&lt;br /&gt;
&lt;a href=&quot;https://github.com/westes/flex&quot;&gt;https://github.com/westes/flex&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载地址：&lt;br /&gt;
&lt;a href=&quot;https://github.com/westes/flex/releases&quot;&gt;https://github.com/westes/flex/releases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;GNU Make&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;需 GNU Make 3.79.1 或更高版本。&lt;/li&gt;
&lt;li&gt;GNU Make 主页：&lt;br /&gt;
&lt;a href=&quot;https://www.gnu.org/software/make&quot;&gt;https://www.gnu.org/software/make&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载地址：&lt;br /&gt;
&lt;a href=&quot;https://ftp.gnu.org/gnu/make&quot;&gt;https://ftp.gnu.org/gnu/make&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Grep&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;可使用系统原生的 grep 或 GNU grep。&lt;/li&gt;
&lt;li&gt;主页：&lt;br /&gt;
&lt;a href=&quot;https://www.gnu.org/software/grep&quot;&gt;https://www.gnu.org/software/grep&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载地址：&lt;br /&gt;
&lt;a href=&quot;https://ftp.gnu.org/gnu/grep&quot;&gt;https://ftp.gnu.org/gnu/grep&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;libelf&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;需安装 libelf-dev（用于编译 Linux 内核）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;libssl&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;需安装 libssl-dev（用于编译 Linux 内核）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;QEMU 工具集&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;用于创建磁盘镜像。&lt;/li&gt;
&lt;li&gt;主页：&lt;br /&gt;
&lt;a href=&quot;https://www.qemu.org&quot;&gt;https://www.qemu.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载地址：&lt;br /&gt;
&lt;a href=&quot;https://www.qemu.org/download&quot;&gt;https://www.qemu.org/download&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sed&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;可使用系统原生的 sed 或 GNU sed。&lt;/li&gt;
&lt;li&gt;主页：&lt;br /&gt;
&lt;a href=&quot;https://www.gnu.org/software/sed&quot;&gt;https://www.gnu.org/software/sed&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载地址：&lt;br /&gt;
&lt;a href=&quot;https://ftp.gnu.org/gnu/sed&quot;&gt;https://ftp.gnu.org/gnu/sed&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sudo&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;主页：&lt;br /&gt;
&lt;a href=&quot;https://www.sudo.ws&quot;&gt;https://www.sudo.ws&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载地址：&lt;br /&gt;
&lt;a href=&quot;https://www.sudo.ws/dist&quot;&gt;https://www.sudo.ws/dist&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Syslinux&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;用于创建磁盘镜像。&lt;/li&gt;
&lt;li&gt;主页：&lt;br /&gt;
&lt;a href=&quot;https://www.syslinux.org&quot;&gt;https://www.syslinux.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载地址：&lt;br /&gt;
&lt;a href=&quot;https://www.kernel.org/pub/linux/utils/boot/syslinux&quot;&gt;https://www.kernel.org/pub/linux/utils/boot/syslinux&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Util-linux&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;主页：&lt;br /&gt;
&lt;a href=&quot;https://github.com/util-linux/util-linux&quot;&gt;https://github.com/util-linux/util-linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载地址：&lt;br /&gt;
&lt;a href=&quot;https://github.com/util-linux/util-linux/tags&quot;&gt;https://github.com/util-linux/util-linux/tags&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Wget&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;可使用系统原生的 &lt;code&gt;wget&lt;/code&gt; 或 GNU Wget（用于获取源代码）。&lt;/li&gt;
&lt;li&gt;GNU Wget 主页：&lt;br /&gt;
&lt;a href=&quot;https://www.gnu.org/software/wget&quot;&gt;https://www.gnu.org/software/wget&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载地址：&lt;br /&gt;
&lt;a href=&quot;https://ftp.gnu.org/gnu/wget&quot;&gt;https://ftp.gnu.org/gnu/wget&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;XZ Utils&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;用于压缩镜像文件及 Linux 内核。&lt;/li&gt;
&lt;li&gt;XZ Utils 主页：&lt;br /&gt;
&lt;a href=&quot;https://xz.tukaani.org/xz-utils&quot;&gt;https://xz.tukaani.org/xz-utils&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载地址：&lt;br /&gt;
&lt;a href=&quot;https://xz.tukaani.org/xz-utils/#releases&quot;&gt;https://xz.tukaani.org/xz-utils/#releases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;rsync&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;用于安装 Linux 头文件。&lt;/li&gt;
&lt;li&gt;rsync 主页：&lt;br /&gt;
&lt;a href=&quot;https://rsync.samba.org&quot;&gt;https://rsync.samba.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载地址：&lt;br /&gt;
&lt;a href=&quot;https://rsync.samba.org/download.html&quot;&gt;https://rsync.samba.org/download.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;在 Debian 上安装编译依赖项&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install gcc cpio xz-utils gawk make grep qemu-utils sed util-linux wget binutils libelf-dev libssl-dev bc flex bison rsync -y  
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;构建压缩包所需&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;GNU Autoconf&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;主页：&lt;br /&gt;
&lt;a href=&quot;https://www.gnu.org/software/autoconf&quot;&gt;https://www.gnu.org/software/autoconf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载地址：&lt;br /&gt;
&lt;a href=&quot;https://ftp.gnu.org/gnu/autoconf&quot;&gt;https://ftp.gnu.org/gnu/autoconf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;GNU Automake&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必需&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;主页：&lt;br /&gt;
&lt;a href=&quot;https://www.gnu.org/software/automake&quot;&gt;https://www.gnu.org/software/automake&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;下载地址：&lt;br /&gt;
&lt;a href=&quot;https://ftp.gnu.org/gnu/automake&quot;&gt;https://ftp.gnu.org/gnu/automake&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;在 Debian 上安装压缩包构建依赖项&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install autoconf automake -y  
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;构建源代码压缩包&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;需先安装依赖项，并确保位于源代码目录中。&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;make -f Makefile.devel dist  
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;构建根文件系统、Linux 内核及磁盘镜像&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;./configure  
make -j$(nproc)  
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;生成的压缩根文件系统命名为 &lt;code&gt;rootfs.tar.xz&lt;/code&gt;，压缩后的 Linux 内核命名为 &lt;code&gt;vmlinuz.xz&lt;/code&gt;，压缩后的磁盘镜像命名为 &lt;code&gt;disk.img&lt;/code&gt;。&lt;/p&gt;
&lt;h2&gt;配置选项&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;--with-busybox-version=X.X.X&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;指定 Busybox 版本。&lt;/li&gt;
&lt;li&gt;默认值为 &lt;code&gt;1.36.1&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;--with-linux-version=X.X.X&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;指定 Linux 内核版本。&lt;/li&gt;
&lt;li&gt;默认值为 &lt;code&gt;6.7.5&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;--with-busybox-mirror=OFFICIAL | &amp;lt;URL&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;指定 Busybox 镜像源。设置为 &lt;code&gt;OFFICIAL&lt;/code&gt; 使用官方镜像，或输入镜像 URL。&lt;/li&gt;
&lt;li&gt;默认值为 &lt;code&gt;OFFICIAL&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;--with-linux-mirror=OFFICIAL | CDN | TSINGHUA | ALIYUN | USTC | &amp;lt;URL&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;指定 Linux 内核镜像源。例如，使用清华镜像时设置为 &lt;code&gt;TSINGHUA&lt;/code&gt;，或输入镜像 URL。&lt;/li&gt;
&lt;li&gt;默认值为 &lt;code&gt;OFFICIAL&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;示例：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./configure --with-busybox-version=1.36.1 --with-linux-version=6.7.5 --with-busybox-mirror=OFFICIAL --with-linux-mirror=TSINGHUA  
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;运行&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;请使用原始二进制文件，而非 XZ 压缩文件！&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;运行 &lt;code&gt;disk.img&lt;/code&gt; 的命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;qemu-system-x86_64 -m 1024 -hda disk.img  
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;运行 &lt;code&gt;vmlinuz&lt;/code&gt; 的命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;qemu-system-x86_64 -m 1024 -kernel vmlinuz  
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;此内核包含 initramfs，可直接通过 QEMU 运行。&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;版权&lt;/h2&gt;
&lt;p&gt;MLinux Minimal 遵循 &lt;strong&gt;GPL 2.0&lt;/strong&gt; 协议，详见 &lt;a href=&quot;https://ghproxy2.xcqcoo.top/mlinux-project/minimal@main/LICENSE&quot;&gt;LICENSE&lt;/a&gt;。&lt;/p&gt;
&lt;h2&gt;下载&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/mlinux-project/minimal/releases&quot;&gt;https://github.com/mlinux-project/minimal/releases&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;主页&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/mlinux-project/minimal&quot;&gt;https://github.com/mlinux-project/minimal&lt;/a&gt;&lt;br /&gt;
[file content end]&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;翻译说明&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;By Deepseek&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;术语规范&lt;/strong&gt;：技术术语（如 &lt;code&gt;POSIX&lt;/code&gt;、&lt;code&gt;initramfs&lt;/code&gt;）保留原文，通用术语（如 &lt;code&gt;Mandatory&lt;/code&gt; → &lt;strong&gt;必需&lt;/strong&gt;）按标准翻译。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;格式保留&lt;/strong&gt;：Markdown 语法、代码块、链接均未改动，确保文档结构一致。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;错误修正&lt;/strong&gt;：修正原文件中的拼写错误（如 &lt;code&gt;platfrom&lt;/code&gt; → &lt;strong&gt;platform&lt;/strong&gt;），并规范标点使用。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能验证&lt;/strong&gt;：所有命令和链接均保持原样，确保操作有效性。&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title>(x-wrt）install-on-vps2</title><link>https://blog.3284123.xyz/posts/x-wrt_install-on-vps2/</link><guid isPermaLink="true">https://blog.3284123.xyz/posts/x-wrt_install-on-vps2/</guid><description>详细教程：如何将X-WRT系统部署到云服务器（VPS），支持多种主流云服务商</description><pubDate>Fri, 09 Aug 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;文章来源：https://github.com/x-wrt/x-wrt.github.io/tree/master/docs/install-on-vps2&lt;/p&gt;
&lt;h1&gt;X-WRT 安装部署到VPS上(新)&lt;/h1&gt;
&lt;h3&gt;1. 介绍:&lt;/h3&gt;
&lt;p&gt;本教程旨在介绍如何将 X-WRT 系统部署到云服务器（VPS）上。X-WRT 是一个专为路由器设计的开源系统，具有出色的网络转发优化和友好的配置界面。同时，该系统还提供了许多方便的服务，如 OpenVPN 等，可以轻松地一键部署。&lt;/p&gt;
&lt;p&gt;需要注意的是，本教程适用于大多数 VPS，如 vultr、digitalocean、Amazon 的 AWS、Linode、阿里云、腾讯云等。然而，由于不同云服务商的实际情况不同，您需要灵活应对，根据实际情况做出正确的处理。&lt;/p&gt;
&lt;p&gt;本教程只适用于 X-WRT 固件，可以保证几乎 100% 成功地将 X-WRT 系统部署到所有的 VPS 上。&lt;/p&gt;
&lt;h3&gt;2. 教程:&lt;/h3&gt;
&lt;h4&gt;2.1 固件下载&lt;/h4&gt;
&lt;p&gt;我们选择 x86 64 位 (MBR dos) 或 x86 64 位 (UEFI gpt) 的固件进行部署。您可以从以下链接下载所需的文件：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://downloads.x-wrt.com/rom/&quot;&gt;https://downloads.x-wrt.com/rom/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;刷机所需的文件如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;x-wrt-x86-64-generic-initramfs-kernel.bin
x-wrt-x86-64-generic-ext4-combined.img.gz
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果您的系统是 EFI 系统，则还需要下载以下文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;x-wrt-x86-64-generic-ext4-combined-efi.img.gz
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;2.2 VPS系统部署&lt;/h4&gt;
&lt;p&gt;本教程所涉及的 VPS 系统要求比较宽松，可以是 Ubuntu、CentOS、Debian 或其他类 Unix 系统。&lt;/p&gt;
&lt;h4&gt;2.3 VPS系统的网络配置识别&lt;/h4&gt;
&lt;p&gt;在开始部署之前，我们需要了解 VPS 的 IP 地址是如何分配的。有些 VPS 是通过 DHCP 自动获取 IP 地址，有些是静态配置的，还有一些是双网卡或多网卡的。&lt;/p&gt;
&lt;p&gt;登录 VPS 后，可以使用 &lt;code&gt;ifconfig&lt;/code&gt; 或者 &lt;code&gt;ip addr list&lt;/code&gt; 命令查看 VPS 的网卡 IP 地址。然后，使用命令 &lt;code&gt;grep /etc -nre &amp;lt;IP&amp;gt;&lt;/code&gt; 查找包含此 &lt;code&gt;&amp;lt;IP&amp;gt;&lt;/code&gt; 的文件。如果找到了相关文件，并且文件内容包含静态配置的脚本，那么我们可以确定该 VPS 是静态配置的。否则，它是动态配置的。&lt;/p&gt;
&lt;p&gt;此外，我们还需要观察 VPS 是否具有多个网口。如果是，那么在安装过程中需要特别注意。下面将有进一步的说明。&lt;/p&gt;
&lt;h4&gt;2.4 确定磁盘的路径和分区类型&lt;/h4&gt;
&lt;p&gt;使用 &lt;code&gt;df&lt;/code&gt; 和 &lt;code&gt;mount&lt;/code&gt; 命令可以查看 VPS 的磁盘信息，确定磁盘的第一个分区挂载路径，例如 &lt;code&gt;/dev/sda1&lt;/code&gt;、&lt;code&gt;/dev/vda1&lt;/code&gt;、&lt;code&gt;/dev/xvda1&lt;/code&gt; 等等。需要注意的是，此分区的挂载路径以及可用空间大小，通常情况下此分区挂载在 &lt;code&gt;/&lt;/code&gt; 或者 &lt;code&gt;/boot&lt;/code&gt; 下，而我们在刷机过程中需要将固件等文件保存在此路径下。&lt;/p&gt;
&lt;p&gt;使用 &lt;code&gt;fdisk -l&lt;/code&gt; 命令可以查看分区类型，以确定分区是否为 GPT。如果分区为 GPT，则需要刷写 EFI 固件。但通常情况下分区不是 GPT 类型。&lt;/p&gt;
&lt;h4&gt;2.5 开始刷机&lt;/h4&gt;
&lt;p&gt;以下是刷机所需的文件，您可以使用 wget 命令进行下载：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;x-wrt-x86-64-generic-initramfs-kernel.bin
x-wrt-x86-64-generic-ext4-combined.img.gz 或者 x-wrt-x86-64-generic-ext4-combined-efi.img.gz
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在刷机之前，需要确定当前系统运行的内核路径。一般来说，这个路径是 &lt;code&gt;/boot/vmlinuz*&lt;/code&gt;。您可以使用 &lt;code&gt;uname -r&lt;/code&gt; 命令查看内核版本。比如，如果路径是 &lt;code&gt;/boot/vmlinuz-4.15.0-111-generic&lt;/code&gt;，那么我们需要把 &lt;code&gt;x-wrt-x86-64-generic-initramfs-kernel.bin&lt;/code&gt; 替换为这个内核：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cp x-wrt-x86-64-generic-initramfs-kernel.bin /boot/vmlinuz-4.15.0-111-generic
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后我们需要确定第一个分区的路径，假如第一个分区是 &lt;code&gt;/&lt;/code&gt; 我们把固件拷贝到 &lt;code&gt;/&lt;/code&gt; 保存好，注意保存的名字是 &lt;code&gt;x-wrt.img.gz&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cp x-wrt-x86-64-generic-ext4-combined.img.gz /x-wrt.img.gz
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;同时我们还需要一个安装脚本，脚本路径和固件保存的目录相同，这个例子是&lt;code&gt;/&lt;/code&gt; ，脚本名字是 &lt;code&gt;x-wrt-install-vps.sh&lt;/code&gt; 脚本的代码参考如下：（根据情况修改）&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/sh

# install to sda
BDEV=sda

# x-wrt.img.gz in disk part sda1
DDEV=sda1

# static ip
#network=172.21.170.245,255.255.240.0,172.21.175.253,8.8.8.8

# static ip swap eth0 eth1
#network=&quot;117.18.13.159,255.255.255.0,117.18.13.1,8.8.8.8,initscript=dWNpIHNldCBuZXR3b3JrLmxhbi5pZm5hbWU9ZXRoMQp1Y2kgc2V0IG5ldHdvcmsud2FuLmlmbmFtZT1ldGgwCnVjaSBjb21taXQgbmV0d29yawo=&quot;

# dhcp ip
network=dhcp

vmroot=/tmp/block
mkdir -p $vmroot
mount /dev/${DDEV} $vmroot || exit 0
cp $vmroot/x-wrt.img.gz /tmp/x-wrt.img.gz &amp;amp;&amp;amp; {
	cd /
	umount $vmroot
	sync
	(zcat /tmp/x-wrt.img.gz;
	 echo open=443,network=$network;
	) &amp;gt;/dev/$BDEV &amp;amp;&amp;amp; reboot
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这个脚本准备刷机的磁盘是sda，第一个分区是sda1，它是DHCP动态获取IP的。你需要根据情况修改刷机脚本，脚本会在重启后启动initramfs内核并且执行。&lt;/p&gt;
&lt;p&gt;如果磁盘是vda，就修改BDEV的值，注意，如果是静态IP，就注释掉&lt;code&gt;network=dhcp&lt;/code&gt;，启用静态IP那一行的&lt;code&gt;network=&amp;lt;ip&amp;gt;,&amp;lt;mask&amp;gt;,&amp;lt;gateway&amp;gt;,&amp;lt;dns&amp;gt;&lt;/code&gt;，如果VPS有多个网卡，比如有2个&lt;code&gt;eth0 eth1&lt;/code&gt;，我们需要附加一个&lt;code&gt;initscript=&amp;lt;script base64 codes&amp;gt;&lt;/code&gt;来做交换网口，这个&lt;code&gt;&amp;lt;script base64 codes&amp;gt;&lt;/code&gt;其实是如下脚本的base64编码，你要根据情况修改。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;uci set network.lan.ifname=eth1
uci set network.wan.ifname=eth0
uci commit network
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果以上操作正确无误，就执行&lt;code&gt;reboot&lt;/code&gt;重启系统。由于我们使用initramfs-kernel替换了原有内核，重启后系统会进入initramfs-kernel环境。然后，该环境会查找 x-wrt-install-vps.sh 脚本并执行刷机操作。这个脚本执行的内容很简单：挂载第一个分区、将固件拷贝到 /tmp 目录中，然后执行刷机并重启。这个过程大概需要5分钟，看情况了。&lt;/p&gt;
&lt;h3&gt;3. 总结:&lt;/h3&gt;
&lt;p&gt;整个刷机过程，大概就三个步骤:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;下载好两个固件文件，保存到特定的路径&lt;/li&gt;
&lt;li&gt;拷贝并且根据情况修改好一个脚本(&lt;code&gt;x-wrt-install-vps.sh&lt;/code&gt;)，保存到特定路径&lt;/li&gt;
&lt;li&gt;重启(reboot)并等待自动安装完成&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;系统重启后，你将能够通过访问 X-WRT 的管理界面来配置路由器。以本文的例子为例，管理界面的地址(HTTPS)是 &lt;code&gt;https://[VPS_IP]/&lt;/code&gt;。进入管理界面后，你需要立即修改默认的管理密码。默认的账号/密码是 admin/admin。此外，如果需要，你可以进入系统管理页面，启用 SSH 账户密码登录，并设置防火墙以允许来自 WAN 区域的22端口访问。这样可以使你能够远程登录到路由器并进行更多的配置。&lt;/p&gt;
</content:encoded></item><item><title>OpenWrt 说明文档</title><link>https://blog.3284123.xyz/posts/openwrt-%E7%9A%84readme-zh_cn/</link><guid isPermaLink="true">https://blog.3284123.xyz/posts/openwrt-%E7%9A%84readme-zh_cn/</guid><description>OpenWrt官方说明文档中文版，介绍系统特点、下载、编译与社区资源</description><pubDate>Thu, 08 Aug 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://cdn-esa-cn-1.3284123.xyz/gh/openwrt/openwrt@main/include/logo.png&quot; alt=&quot;OpenWrt logo&quot; /&gt;&lt;/p&gt;
&lt;p&gt;OpenWrt 项目是一个面向嵌入式设备的 Linux 操作系统。它并非提供单一的静态固件，而是通过完全可写的文件系统与包管理机制，赋予用户自由选择应用和配置的能力。这意味着您可以摆脱厂商预置的限制，通过安装软件包定制设备功能，满足任何应用场景需求。对于开发者，OpenWrt 提供了一个无需构建完整固件的开发框架；对于用户，则意味着能够以厂商未曾设想的方式实现设备的全面定制。&lt;/p&gt;
&lt;h2&gt;下载&lt;/h2&gt;
&lt;p&gt;我们为多种架构提供了预编译的固件镜像，默认包含适用于家用无线路由器的软件包。若需快速找到从厂商原厂固件迁移至 OpenWrt 的可用出厂镜像，请使用 &lt;strong&gt;固件选择器&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://firmware-selector.openwrt.org/&quot;&gt;OpenWrt 固件选择器&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果您的设备已被支持，请点击 &lt;strong&gt;信息&lt;/strong&gt; 链接查看安装说明，或参考下方列出的支持资源。&lt;/p&gt;
&lt;h2&gt;高级下载&lt;/h2&gt;
&lt;p&gt;高级用户可能需要特定或额外的软件包（如工具链、SDK 等）。除基础固件下载外，其他需求请访问 Wiki 下载页面：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://openwrt.org/downloads&quot;&gt;OpenWrt Wiki 下载页&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;开发&lt;/h2&gt;
&lt;p&gt;要自行编译固件，您需要 GNU/Linux、BSD 或 macOS 系统（需区分大小写的文件系统）。由于缺乏大小写敏感的文件系统支持，Cygwin 不被支持。&lt;/p&gt;
&lt;h3&gt;编译要求&lt;/h3&gt;
&lt;p&gt;编译 OpenWrt 需以下工具，不同发行版的软件包名称可能不同。完整列表及发行版特定依赖项请参阅 &lt;a href=&quot;https://openwrt.org/docs/guide-developer/build-system/install-buildsystem&quot;&gt;构建系统配置文档&lt;/a&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;binutils bzip2 diff find flex gawk gcc-6+ getopt grep install libc-dev libz-dev  
make4.1+ perl python3.7+ rsync subversion unzip which  
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;快速入门&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;运行 &lt;code&gt;./scripts/feeds update -a&lt;/code&gt; 以获取 &lt;code&gt;feeds.conf&lt;/code&gt; 或 &lt;code&gt;feeds.conf.default&lt;/code&gt; 中定义的所有最新软件包信息。&lt;/li&gt;
&lt;li&gt;运行 &lt;code&gt;./scripts/feeds install -a&lt;/code&gt; 将所有软件包的符号链接安装到 &lt;code&gt;package/feeds/&lt;/code&gt; 目录。&lt;/li&gt;
&lt;li&gt;运行 &lt;code&gt;make menuconfig&lt;/code&gt; 配置工具链、目标系统及固件包的选项。&lt;/li&gt;
&lt;li&gt;运行 &lt;code&gt;make&lt;/code&gt; 开始编译固件。此过程将下载所有源码、构建交叉编译工具链，并为目标系统交叉编译 Linux 内核及所选应用程序。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;相关代码库&lt;/h3&gt;
&lt;p&gt;主仓库通过多个子仓库管理不同类别的软件包。所有软件包均通过 OpenWrt 包管理器 &lt;code&gt;opkg&lt;/code&gt; 安装。如需开发网页界面或移植软件包，请参考以下仓库：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/openwrt/luci&quot;&gt;LuCI 网页界面&lt;/a&gt;：通过浏览器控制设备的现代化模块化界面。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/openwrt/packages&quot;&gt;OpenWrt 软件包&lt;/a&gt;：社区维护的移植软件包仓库。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/openwrt/routing&quot;&gt;OpenWrt 路由&lt;/a&gt;：专注于（网状）路由的软件包。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/openwrt/video&quot;&gt;OpenWrt 视频&lt;/a&gt;：专注于显示服务与客户端（Xorg 和 Wayland）的软件包。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;支持信息&lt;/h2&gt;
&lt;p&gt;支持设备列表请查看 &lt;a href=&quot;https://openwrt.org/supported_devices&quot;&gt;OpenWrt 硬件数据库&lt;/a&gt;。&lt;/p&gt;
&lt;h3&gt;文档&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://openwrt.org/docs/guide-quick-start/start&quot;&gt;快速入门指南&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://openwrt.org/docs/guide-user/start&quot;&gt;用户指南&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://openwrt.org/docs/guide-developer/start&quot;&gt;开发者文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://openwrt.org/docs/techref/start&quot;&gt;技术参考&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;支持社区&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://forum.openwrt.org&quot;&gt;论坛&lt;/a&gt;：讨论使用、项目、硬件建议。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://webchat.oftc.net/#openwrt&quot;&gt;支持聊天室&lt;/a&gt;：&lt;strong&gt;oftc.net&lt;/strong&gt; 的 &lt;code&gt;#openwrt&lt;/code&gt; 频道。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;开发者社区&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugs.openwrt.org&quot;&gt;问题报告&lt;/a&gt;：提交 OpenWrt 的 Bug。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lists.openwrt.org/mailman/listinfo/openwrt-devel&quot;&gt;开发邮件列表&lt;/a&gt;：提交代码补丁。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://webchat.oftc.net/#openwrt-devel&quot;&gt;开发聊天室&lt;/a&gt;：&lt;strong&gt;oftc.net&lt;/strong&gt; 的 &lt;code&gt;#openwrt-devel&lt;/code&gt; 频道。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;许可证&lt;/h2&gt;
&lt;p&gt;OpenWrt 遵循 &lt;strong&gt;GPL-2.0&lt;/strong&gt; 协议。&lt;br /&gt;
[file content end]&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;翻译说明&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;By Deepseek&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;术语一致性&lt;/strong&gt;：技术术语（如 &lt;code&gt;package management&lt;/code&gt; → &lt;strong&gt;包管理&lt;/strong&gt;）严格按行业标准翻译，专有名词（如 &lt;code&gt;LuCI&lt;/code&gt;、&lt;code&gt;opkg&lt;/code&gt;）保留原名。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;格式保留&lt;/strong&gt;：Markdown 语法、代码块、链接均未改动，确保文档结构清晰。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;语句优化&lt;/strong&gt;：在保持原意的基础上，调整部分长句结构以提高中文可读性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能验证&lt;/strong&gt;：所有外部链接均未修改，确保跳转功能正常。&lt;/li&gt;
&lt;/ol&gt;
</content:encoded></item><item><title>iStoreOS README</title><link>https://blog.3284123.xyz/posts/istoreos-readme/</link><guid isPermaLink="true">https://blog.3284123.xyz/posts/istoreos-readme/</guid><description>介绍iStoreOS系统的特点、版本区别、支持硬件及使用方法，一个基于OpenWRT的轻NAS与路由系统</description><pubDate>Thu, 08 Aug 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;iStoreOS 固件&lt;/h1&gt;
&lt;p&gt;iStoreOS 目标是提供一个人人会用的路由兼轻 NAS 系统，不管是作为路由还是 NAS，你都有相似的操作体验。&lt;/p&gt;
&lt;p&gt;系统本身开源免费，目前系统代码开源在：&lt;a href=&quot;https://www.github.com/istoreos/istoreos&quot;&gt;Github iStoreOS&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;iStoreOS 来源于 OpenWRT，相较于原版 OpenWRT，iStoreOS 具有以下优势：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;iStoreOS 提供了&lt;strong&gt;软件中心&lt;/strong&gt;：&lt;a href=&quot;https://github.com/linkease/istore&quot;&gt;&lt;strong&gt;iStore&lt;/strong&gt;&lt;/a&gt;，尽可能解决插件之间的依赖关系，可让大家自由自在安装插件。手动安装离线包也是支持的。&lt;/li&gt;
&lt;li&gt;iStoreOS 固件升级时会保留用户安装的插件，避免升级以后还要再安装一遍插件。&lt;/li&gt;
&lt;li&gt;iStoreOS 官方支持的硬件都可以&lt;strong&gt;在线升级&lt;/strong&gt;，无需手动下载固件升级。&lt;/li&gt;
&lt;li&gt;iStoreOS 拥有&lt;strong&gt;沙箱模式&lt;/strong&gt;。通过 U 盘进入沙箱模式，后续的软件安装更新以及系统配置都在沙箱进行。不管安装插件搞坏了系统还是配置错误导致系统故障，拔掉 U 盘就回到进沙箱前的状态。如果对当前状态满意还可以回写到非沙箱环境。沙箱模式本身也是系统扩容的最简单的方法。&lt;/li&gt;
&lt;li&gt;救援模式，即使固件损坏，也可以进入救援模式刷机或恢复出厂设置。目前仅仅自家硬件 &lt;a href=&quot;https://item.taobao.com/item.htm?ft=t&amp;amp;id=655381846734&quot;&gt;ARS2&lt;/a&gt; 支持&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;iStoreOS 还做了很多很多的交互简化，但是即使再简化，对于不同的用户级别，我们还是得提供了三套完全不一样的交互 UI：&lt;/p&gt;
&lt;h2&gt;入门极客版本 UI&lt;/h2&gt;
&lt;p&gt;iStoreOS 入门极客版本 UI 是默认的 UI，目标是提供给懂点技术的入门极客爱好者，或者偷懒极客老手，核心特性：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;首页提供网络向导，磁盘向导，Docker 向导等等众多向导，不管是新手还是老手，都能快速配置自己想要的东西&lt;/li&gt;
&lt;li&gt;修复众多 OpenWRT 不人性的小问题，比如 Samba 设置独立用户名密码很麻烦，磁盘挂载等&lt;/li&gt;
&lt;li&gt;更多首页工具好帮手，比如在线升级，各种错误检测，网口图形化配置等&lt;/li&gt;
&lt;li&gt;其它很多常用的，比如 DDNS 配置，Docker 配置等&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;入门极客版本预览&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://doc.linkease.com/assets/img/geek-preview1.9987f6a0.jpg&quot; alt=&quot;首页&quot; /&gt;
&lt;img src=&quot;https://doc.linkease.com/assets/img/geek-istore-preview2.5e9c0323.jpg&quot; alt=&quot;软件中心&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;小白路由版本&lt;/h2&gt;
&lt;p&gt;最标准的小白路由版本，减去了超多的复杂的眼花缭乱的功能，回归最本质的路由功能。&lt;/p&gt;
&lt;p&gt;对于路由器硬件卖家来说，最好默认帮用户安装此版本。&lt;/p&gt;
&lt;p&gt;安装方法：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在默认的极客版本上，从软件中心，安装 iStoreX&lt;/li&gt;
&lt;li&gt;退出重新登录，就到了小白路由器版本&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;小白路由版本预览&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://doc.linkease.com/assets/img/router-preview1.7729ec63.jpg&quot; alt=&quot;网络向导&quot; /&gt;
&lt;img src=&quot;https://doc.linkease.com/assets/img/router-istore.f031ae04.jpg&quot; alt=&quot;软件中心&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;轻 NAS 版本&lt;/h2&gt;
&lt;p&gt;如果你不是重度的BT下载用户，也不是重度在线看电影需要视频硬解码的用户，那么用个软路由当NAS，是完全没问题的。毕竟网络转发跟硬盘存储不冲突。&lt;/p&gt;
&lt;p&gt;当然，iStoreOS 也会提供给你一个纯正独立的 NAS 系统，底层也完全是 OpenWRT，且软件中心完全互通，你懂的路由器的知识，也可以完全搬到 NAS 系统上。那么我们的 NAS 系统有哪些功能？&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;RAID 磁盘阵列&lt;/li&gt;
&lt;li&gt;S.M.A.R.T 检测&lt;/li&gt;
&lt;li&gt;个人私有网盘，借助&lt;a href=&quot;https://app.linkease.com&quot;&gt;易有云插件&lt;/a&gt; 实现&lt;/li&gt;
&lt;li&gt;相册自动备份，借助&lt;a href=&quot;https://app.linkease.com&quot;&gt;易有云插件&lt;/a&gt; 实现&lt;/li&gt;
&lt;li&gt;异地多设备文件同步，借助&lt;a href=&quot;https://app.linkease.com&quot;&gt;易有云插件&lt;/a&gt; 实现&lt;/li&gt;
&lt;li&gt;异地组网，借助&lt;a href=&quot;https://app.linkease.com&quot;&gt;易有云插件&lt;/a&gt; 实现&lt;/li&gt;
&lt;li&gt;远程域名访问，借助&lt;a href=&quot;https://www.ddnsto.com&quot;&gt;DDNSTO插件&lt;/a&gt; 实现&lt;/li&gt;
&lt;li&gt;软件中心（当然软件中心有 NasTool、Jellyfin 影院、下载等等）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;注意：目前此交互还在活跃开发中&lt;/p&gt;
&lt;h3&gt;轻 NAS 预览&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://doc.linkease.com/assets/img/nas-preview1.3d49cb9a.png&quot; alt=&quot;首页&quot; /&gt;
&lt;img src=&quot;https://doc.linkease.com/assets/img/nas-istore-preview2.902df65b.png&quot; alt=&quot;应用中心&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;支持硬件&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://item.taobao.com/item.htm?ft=t&amp;amp;id=655381846734&quot;&gt;ARS2&lt;/a&gt; [固件最初支持的硬件，没有这个硬件，就没有这个项目]&lt;/li&gt;
&lt;li&gt;X86&lt;/li&gt;
&lt;li&gt;R2S&lt;/li&gt;
&lt;li&gt;R4S&lt;/li&gt;
&lt;li&gt;R5S&lt;/li&gt;
&lt;li&gt;R68S&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;功能组合&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;建议使用&lt;a href=&quot;https://app.linkease.com&quot;&gt;易有云 APP&lt;/a&gt; 做异地组网，相册备份，文件同步，远程应用导航等&lt;/li&gt;
&lt;li&gt;建议用 &lt;a href=&quot;https://www.ddnsto.com&quot;&gt;DDNSTO&lt;/a&gt; 从网页域名远程访问路由器&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;固件下载&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://fw.koolcenter.com/iStoreOS/&quot;&gt;下载地址&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;使用方法&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;默认IP http://192.168.100.1&lt;/li&gt;
&lt;li&gt;默认密码：password&lt;/li&gt;
&lt;li&gt;如果只有一个网口，默认的网口是 LAN；如果大于一个网口，默认 eth0 是 WAN 口，其它都是 LAN。&lt;/li&gt;
&lt;li&gt;如果在 LAN 口修改 IP，或者任何修改之后导致无法连接路由器，都会导致刚才的修改被回滚。所以要修改 LAN/WAN 口 IP，可以选择强制应用，保证修改肯定生效。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;定制固件&lt;/h2&gt;
&lt;p&gt;如果想自己制作固件，也是可以的。&lt;/p&gt;
&lt;p&gt;iStoreOS 来源于官方的 OpenWRT Release 分支源码，都是通过 OpenWRT 标准组件形式实现，100% 兼容 OpenWRT 的源主干分支。我们修改或者开发的部分，都以插件形式，具体源代码如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/istoreos/istoreos&quot;&gt;iStoreOS 固件&lt;/a&gt; 核心固件源代码&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/linkease/nas-packages-luci&quot;&gt;nas-packages-luci&lt;/a&gt; 我们自己开发的插件 UI 代码&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/linkease/nas-packages&quot;&gt;nas-packages&lt;/a&gt; 我们自己开发插件的程序代码，部分程序并不开源&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/linkease/istore&quot;&gt;istore&lt;/a&gt; 软件中心核心代码，包含备份插件功能等，全部开源&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/linkease/istore-packages&quot;&gt;istore-packages&lt;/a&gt; 软件中心的一些非 OpenWRT 官方包&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/linkease/openwrt-app-actions&quot;&gt;openwrt-app-actions&lt;/a&gt; 其他一些软件包&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;iStoreOS 就是在 OpenWRT 最基础最原始的固件基础上，加上了上面插件的能力来实现。&lt;/p&gt;
&lt;h3&gt;编译参考&lt;/h3&gt;
&lt;p&gt;请动手能力强的人自己编译固件，跟标准 OpenWRT 一样。&lt;/p&gt;
&lt;h3&gt;离线包制作&lt;/h3&gt;
&lt;p&gt;iStoreOS离线包不是一个压缩包，也没啥黑科技，而是借助第三方软件实现。原理是&lt;a href=&quot;https://github.com/megastep/makeself&quot;&gt;makeself项目&lt;/a&gt;：&lt;/p&gt;
&lt;p&gt;生成方法例子：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./makeself.sh --nox11 ./xxx ./out/xxx_x86.run &quot;OneClick install&quot; ./install.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;install.sh脚本内容大致为：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;opkg update
opkg install *.ipk
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;把 ipk 跟 install.sh 结合在一起，本质会生成一个包含所有 ipk 跟 install.sh 的自解压自运行的程序。&lt;/p&gt;
&lt;h2&gt;关注更新&lt;/h2&gt;
&lt;p&gt;更多iStoreOS 功能，请关注我们的账号：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://space.bilibili.com/1492058311?spm_id_from=333.788.0.0&quot;&gt;酷友社B站账号&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/channel/UCvENMyIFurJi_SrnbnbyiZw&quot;&gt;酷友社 Youtube&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.koolcenter.com/posts/117&quot;&gt;QQ 群&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://t.me/+QwxW7aimSMeRdQJX&quot;&gt;TG 群&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;微信扫码关注公众号：
&lt;img src=&quot;https://doc.linkease.com/assets/img/istoreos-gongzhong.7b082729.png&quot; alt=&quot;istoreos-gongzhong&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;问题反馈&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/linkease/istoreos/issues&quot;&gt;提交反馈&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;大家也可以选择加入 iStoreOS 固件互助群。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.koolcenter.com/posts/117&quot;&gt;入群&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;精力不足，求助一臂之力&lt;/h2&gt;
&lt;p&gt;因为各种原因，我们维护 iStoreOS 精力不足。如果有大神对本项目感兴趣，欢迎联系我们加入。&lt;/p&gt;
&lt;h2&gt;鸣谢&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/ziguayungui&quot;&gt;ziguayungui&lt;/a&gt;，&lt;a href=&quot;https://github.com/jjm2473&quot;&gt;jjm2473&lt;/a&gt;，&lt;a href=&quot;https://github.com/fw867&quot;&gt;Koolshare LEDE 的作者 fw867&lt;/a&gt;，&lt;a href=&quot;https://github.com/xiangfeidexiaohuo&quot;&gt;xiangfeidexiaohuo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;感谢 LEAN 等相关人员，搞定了 i226 驱动等&lt;/li&gt;
&lt;li&gt;OpenWRT 官方团队&lt;/li&gt;
&lt;li&gt;众多 OpenWRT 的固件或者插件开发者&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.koolcenter.com&quot;&gt;KoolCenter&lt;/a&gt;，&lt;a href=&quot;https://www.linkease.com&quot;&gt;易有云&lt;/a&gt; 团队相关同事&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>OpenWrt：从源码到固件，编译自己的OpenWrt系统</title><link>https://blog.3284123.xyz/posts/openwrt%E4%BB%8E%E6%BA%90%E7%A0%81%E5%88%B0%E5%9B%BA%E4%BB%B6%E7%BC%96%E8%AF%91%E8%87%AA%E5%B7%B1%E7%9A%84openwrt%E7%B3%BB%E7%BB%9F/</link><guid isPermaLink="true">https://blog.3284123.xyz/posts/openwrt%E4%BB%8E%E6%BA%90%E7%A0%81%E5%88%B0%E5%9B%BA%E4%BB%B6%E7%BC%96%E8%AF%91%E8%87%AA%E5%B7%B1%E7%9A%84openwrt%E7%B3%BB%E7%BB%9F/</guid><description>一步步指导如何从源码编译自定义OpenWrt固件，涵盖环境准备、配置与编译全过程</description><pubDate>Thu, 08 Aug 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;本文说明如何一步一步地从源码编译出自己的OpenWrt镜像
文章来源：知乎@小耸&lt;/p&gt;
&lt;h1&gt;准备工作&lt;/h1&gt;
&lt;p&gt;准备一个GNU/Linux, BSD 或 MacOSX 操作系统。并且，在环境中准备好以下官方教程中要求的工具：
https://openwrt.org/docs/guide-developer/toolchain/install-buildsystem&lt;/p&gt;
&lt;p&gt;我的环境是Ubuntu22.04，执行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt update 
sudo apt install build-essential clang flex bison g++ gawk gcc-multilib g++-multilib gettext git libncurses-dev libssl-dev python3-distutils rsync unzip zlib1g-dev file wget
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;编译系统&lt;/h1&gt;
&lt;h2&gt;下载源码&lt;/h2&gt;
&lt;p&gt;下载代码：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/openwrt/openwrt.git
cd openwrt
git pull
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;切换分支，一般选择最新的稳定版本：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git branch -a
git tag
git checkout v23.05.4
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;下载软件包&lt;/h2&gt;
&lt;p&gt;运行&lt;code&gt;./scripts/feeds update -a&lt;/code&gt;命令，下载或更新在&lt;code&gt;feeds.conf/feeds.conf.default&lt;/code&gt;中定义的所有最新软件包。&lt;/p&gt;
&lt;p&gt;！！注意！！
受限于国内的访问国际互联网的环境中，feeds update这一步特别容易失败。可以通过以下几条方式来提高成功率：
&lt;code&gt;git config --global http.postBuffer 524288000&lt;/code&gt; &lt;code&gt;git config --global http.lowSpeedLimit 1000&lt;/code&gt; &lt;code&gt;git config --global http.lowSpeedTime 600 &lt;/code&gt;以上配置的含义为：配置git缓冲区为500M，配置git访问超时的条件为：速率小于1KB/s，且持续600秒
（有条件的可以开代理）&lt;/p&gt;
&lt;p&gt;运行&lt;code&gt;./scripts/feeds install -a&lt;/code&gt;命令使安装上述软件包在后续的&lt;code&gt;make menuconfig&lt;/code&gt;中生效。&lt;/p&gt;
&lt;h1&gt;配置编译选项&lt;/h1&gt;
&lt;h2&gt;使用已有固件的编译配置&lt;/h2&gt;
&lt;p&gt;网络上已编译出的固件通常都会把编译配置一并提供（config.buildinfo或config.seed），可以直接使用。
我的目标机是一台小米WR30U，使用mtk的filogic芯片方案，从OpenWrt官网找到对应的编译配置并下载，置于OpenWrt工程根目录下的&lt;code&gt;.config&lt;/code&gt;文件中：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget https://downloads.openwrt.org/releases/23.05.4/targets/mediatek/filogic/config.buildinfo -O .config
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但这份配置中包含了filogic芯片方案的所有设备的配置，还需进行裁剪和修改。&lt;/p&gt;
&lt;h2&gt;menuconfig&lt;/h2&gt;
&lt;p&gt;在以上配置的基础上，运行&lt;code&gt;make menuconfig&lt;/code&gt;命令来完成进一步的自定义配置。完成后配置会更新至&lt;code&gt;.config&lt;/code&gt;文件中。
&lt;img src=&quot;https://pic1.zhimg.com/v2-2be9869a274b1a4728fce7dbe1ca1770_r.jpg&quot; alt=&quot;v2-2_r&quot; /&gt;&lt;/p&gt;
&lt;p&gt;在Target Profile中，仅保留Xiaomi WR30U的设备支持（我的设备是Xiaomi Mi Router WR30U (112M UBI with NMBM-Enabled layout)），把其它设备的支持删除。&lt;/p&gt;
&lt;h2&gt;编译&lt;/h2&gt;
&lt;p&gt;使用&lt;code&gt;make download&lt;/code&gt;预先下载编译过程中需要的代码和依赖项等资源。&lt;/p&gt;
&lt;p&gt;. . . . . . . 经过漫长的等待下载完成。到此为止，我们已做好了所有的编译准备。
正式开始编译吧，运行&lt;code&gt;make&lt;/code&gt;命令来构建固件。该命令将下载所有源代码和依赖项（即使之前已经&lt;code&gt;make download&lt;/code&gt;，也还有其它包需要下载），构建交叉编译工具链，然后为目标系统交叉编译出OpenWrt内核和应用程序。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;make -j4 V=s
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;编译选项说明&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;-jN&lt;/code&gt;: make命令可以加上-j参数用于指定使用多少cpu核编译，可以加速编译过程。例如：&lt;code&gt;make download -j4，make -j5&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;V=s&lt;/code&gt;：make命令可以加上V=s可以输出更多的编译错误信息。&lt;/p&gt;
&lt;p&gt;如果顺利的话，这里make完就可以编译出镜像了。但是实际不太可能完全顺利。&lt;/p&gt;
&lt;h2&gt;编译输出&lt;/h2&gt;
&lt;p&gt;. . . . . . . 经过漫长的编译过程（我的环境中编了5个小时），编译结果存放于&lt;code&gt;openwrt/bin/targets/&lt;/code&gt;目录下。几类编译产出的镜像说明如下：
1.factory：用于替换厂商的原厂固件，兼容原厂的安装包格式。通常使用原厂的web GUI进行升级或在Uboot中刷入。
2.sysupgrade：用于升级替换已有的OpenWrt版本，这是最常用的镜像。
3.initramfs-kernel：用于开发或特殊情况下的一次性引导，作为安装常规sysupgrade版本的过渡步骤。由于initramfs版本完全运行在RAM中，不会在闪存中存储任何设置，因此不适合用于操作性使用。&lt;/p&gt;
</content:encoded></item><item><title>自己动手编译 OpenWRT</title><link>https://blog.3284123.xyz/posts/%E8%87%AA%E5%B7%B1%E5%8A%A8%E6%89%8B%E7%BC%96%E8%AF%91-openwrt/</link><guid isPermaLink="true">https://blog.3284123.xyz/posts/%E8%87%AA%E5%B7%B1%E5%8A%A8%E6%89%8B%E7%BC%96%E8%AF%91-openwrt/</guid><description>编译自定义OpenWRT固件的过程，包含环境搭建与编译步骤</description><pubDate>Thu, 08 Aug 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;文章来源：https://lgiki.net/post/compile-openwrt/&lt;/p&gt;
&lt;h2&gt;Intro&lt;/h2&gt;
&lt;p&gt;学校最近升级了校园网设备，终于从年久失修的龟速 100Mbps 升级到了 1Gbps，尽管还是使用锐捷的 ePortal 网页认证，还能通过简单的 Shell 脚本在路由器上自动认证，但新设备却限制了每个用户最多只能同时有两台设备在线，使用路由器会被检测出使用多设备，并被加入黑名单，被断网。&lt;/p&gt;
&lt;p&gt;都 2023 年了，随便手机、电脑再加个平板就仨设备了，更不用说可能还有 Kindle、Switch 等其他设备，只能同时两台设备在线怎么可能满足学生正常使用校园网的需求。更何况，计算机专业的学生可能还会使用虚拟机等软件，但虚拟机类的软件也可能被检测为是多设备同时在线，所以你让计算机专业的学生拿啥学习呢，内存条含嘴里脑补画面吗？&lt;/p&gt;
&lt;p&gt;限制校园网的同时在线设备数量无非就两个出发点：（1）如果不限制，一个宿舍只需要开通一个宽带账号，所有人都可以上网了，运营商的收入就减少了；（2）如果学生出现一些非法的上网行为，可以快速准确地定位到具体学生。但我觉得这都不是学校限制学生只能使用两个设备的理由，哪怕提升到 5 个设备我觉得也合理一些。&lt;/p&gt;
&lt;p&gt;对于限制校园网设备数量的学校，我只能说 Shame on you！&lt;/p&gt;
&lt;p&gt;对于限制校园网设备数量的学校，我只能说 Shame on you！&lt;/p&gt;
&lt;p&gt;对于限制校园网设备数量的学校，我只能说 Shame on you！&lt;/p&gt;
&lt;p&gt;那就…只能另辟蹊径，想其他办法了。&lt;/p&gt;
&lt;p&gt;还好，限制同时在线设备数量这件事早已有其他学校实施过了，也已经有人提出了一些对策。
例如，在 https://blog.sunbk201.site/posts/crack-campus-network 这篇博客里就详细列举了校园网检测在线设备可能采用的手段以及相应的应对措施，我们只需要照着做就行了。&lt;/p&gt;
&lt;p&gt;其实主要就是为 OpenWRT 编译 &lt;a href=&quot;https://github.com/CHN-beta/rkp-ipid&quot;&gt;rkp-ipid&lt;/a&gt; 和 &lt;a href=&quot;https://github.com/Zxilly/UA2F&quot;&gt;UA2F&lt;/a&gt; 这两个包，而这两个包需要在编译内核的时候开启一些选项，所以需要重新编译 OpenWRT 固件，也因此写下这篇文章记录一下编译 OpenWRT 的过程。&lt;/p&gt;
&lt;h2&gt;安装编译环境&lt;/h2&gt;
&lt;p&gt;要编译 Linux 当然是使用 Linux 啦！&lt;/p&gt;
&lt;p&gt;如果是 Debian 系的发行版（例如 Ubuntu），可以使用以下指令来安装编译所需的依赖：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt update -y
sudo apt full-upgrade -y
sudo apt install -y ack antlr3 aria2 asciidoc autoconf automake autopoint binutils bison build-essential \
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pip libpython3-dev qemu-utils \
rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;对于 Arch 系的发行版，直接安装 AUR 中的 openwrt-devel 即可：
https://aur.archlinux.org/packages/openwrt-devel&lt;/p&gt;
&lt;h2&gt;获取 OpenWRT 源码&lt;/h2&gt;
&lt;p&gt;如果你的设备是 OpenWRT 官方支持的设备，并且你想编译 OpenWRT 官方源码，则直接：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/openwrt/openwrt.git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;即可。&lt;/p&gt;
&lt;p&gt;但现在有一些国产的路由器 OpenWRT 官方并不支持，可以看看有没有第三方的 OpenWRT 源码支持了你手上的路由器，下载相应的源代码。
可以通过&lt;code&gt;cat /etc/openwrt_release&lt;/code&gt;命令来查看设备的 Arch、Target 信息：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;root@QWRT:~# cat /etc/openwrt_release
DISTRIB_ID=&apos;OpenWrt&apos;
DISTRIB_RELEASE=&apos;19.07-SNAPSHOT&apos;
DISTRIB_TARGET=&apos;ipq60xx/generic&apos;
DISTRIB_ARCH=&apos;aarch64_cortex-a53+crypto&apos;
DISTRIB_TAINTS=&apos;no-all busybox override&apos;
DISTRIB_REVISION=&apos;R23.1.20&apos;
DISTRIB_DESCRIPTION=&apos;QWRT &apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;获取了 OpenWRT 源代码之后需要更新 Feeds：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd openwrt
./scripts/feeds update -a
./scripts/feeds install -a
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;添加想要编译的第三方包 (可选)&lt;/h2&gt;
&lt;p&gt;因为我需要编译 rkp-ipid 和 UA2F，因此我还需要将这些包的源码下载下来：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/CHN-beta/rkp-ipid package/rkp-ipid
git clone https://github.com/Zxilly/UA2F package/UA2F
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;配置编译目标&lt;/h2&gt;
&lt;p&gt;一切准备就绪，接下来就是设定编译目标了，执行以下命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;make menuconfig
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后会出现一个命令行 UI，首先需要重点设定好&lt;code&gt;Target System&lt;/code&gt;,&lt;code&gt;Subtarget&lt;/code&gt;,&lt;code&gt;Target Profile&lt;/code&gt;，将这几个项目设定为你的路由器。 然后就可以选择你需要编译的包啦，使用空格可以选择要编译的包，设定为 &amp;lt;*&amp;gt; 的包将会内置到固件里，刷好就能直接用，设定为 &amp;lt;M&amp;gt; 的包将会编译成 ipk 文件，需要上传到路由器，然后使用&lt;code&gt;opkg install package_name.ipk&lt;/code&gt;进行安装。&lt;/p&gt;
&lt;p&gt;设定好了之后，将配置文件保存为&lt;code&gt;.config&lt;/code&gt;即可，如果有一些包需要对内核做一些自定义，也可以直接使用文本编辑器编辑保存下来的&lt;code&gt;.config&lt;/code&gt;文件，例如&lt;code&gt;UA2F&lt;/code&gt;就需要添加&lt;code&gt;CONFIG_NETFILTER_NETLINK_GLUE_CT=y&lt;/code&gt;。&lt;/p&gt;
&lt;h2&gt;开始编译&lt;/h2&gt;
&lt;p&gt;一切准备完毕，接下来开始编译！&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;make download -j8
make V=s -j8
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其中&lt;code&gt;V=s&lt;/code&gt;表示输出&lt;code&gt;stdout&lt;/code&gt;和&lt;code&gt;stderr&lt;/code&gt;，方便在编译失败的时候根据输出信息确定是哪里的错误，&lt;code&gt;-jn&lt;/code&gt;的&lt;code&gt;n&lt;/code&gt;表示使用&lt;code&gt;n&lt;/code&gt;个线程同时编译，对于核心数较多的机器可以将该数值设置得大一些，加快编译过程。&lt;/p&gt;
&lt;p&gt;编译完成之后，在&lt;code&gt;./bin/targets&lt;/code&gt;下就可以找到固件以及相应的&lt;code&gt;ipk&lt;/code&gt;包了。&lt;/p&gt;
&lt;h2&gt;UA2F 的注意事项&lt;/h2&gt;
&lt;p&gt;要使 UA2F 正常工作需要关闭 “网络”——“Turbo ACC 网络加速设置” 下的所有选项，否则 UA2F 无法正常工作，具体表现为：重启路由器防火墙之后，第一次 HTTP 请求的 User-Agent 成功修改，但后续 HTTP 请求的 User-Agent 没有被修改。&lt;/p&gt;
</content:encoded></item><item><title>如何编译X-WRT</title><link>https://blog.3284123.xyz/posts/%E5%A6%82%E4%BD%95%E7%BC%96%E8%AF%91x-wrt/</link><guid isPermaLink="true">https://blog.3284123.xyz/posts/%E5%A6%82%E4%BD%95%E7%BC%96%E8%AF%91x-wrt/</guid><description>从环境准备到编译完成的完整指南，帮助用户编译自定义的X-WRT固件</description><pubDate>Thu, 08 Aug 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;文章来源：https://github.com/x-wrt/x-wrt.github.io/tree/master/docs/build&lt;/p&gt;
&lt;h1&gt;编译教程&lt;/h1&gt;
&lt;p&gt;很多人不知道怎样编译一个自己的固件，这里主要简单介绍大概的编译打包流程，具体的情况还需要大家自己发挥，情况千变万化，大家随机应变。&lt;/p&gt;
&lt;h2&gt;1 编译准备&lt;/h2&gt;
&lt;p&gt;我们建议使用&lt;a href=&quot;https://www.ubuntu.com/&quot;&gt;Ubuntu&lt;/a&gt;系统作为编译环境，这里以Ubuntu 22.04作为例子，其他版本也是可以的。特别注意的是，整个编译过程，都是用普通用户操作，不要用&lt;code&gt;root&lt;/code&gt;用户操作。&lt;/p&gt;
&lt;p&gt;首先要安装编译所需要的软件包:
&lt;code&gt;sudo apt install build-essential ecj fastjar file flex g++ gcc-multilib g++-multilib gawk gettext git git-core java-propose-classpath libelf-dev libncurses5-dev libncursesw5-dev libssl-dev swig python3 python3-dev python3-distutils python3-pyelftools subversion unzip wget zlib1g-dev rsync qemu-utils&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;下载源码:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/x-wrt/x-wrt.git
cd x-wrt

#更新代码tag:
git fetch origin
git fetch origin --tags

#列出可以使用的版本tag:
git tag
#注意摁 q 键结束
#或者直接获取最新发布版本
git describe --tags $(git rev-list --tags --max-count=1)

#选择并切换到指定的版本tag:
git checkout -f &amp;lt;tag-name&amp;gt;
#例如
git checkout -f 21.10_b202112032317
#或者
git checkout -f $(git describe --tags $(git rev-list --tags --max-count=1))

#更新代码:
./scripts/feeds update -a
./scripts/feeds install -a
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;配置固件的命令&lt;code&gt;make menuconfig&lt;/code&gt; 但是我们可以从配置模版开始会更轻松一些。&lt;/p&gt;
&lt;p&gt;比如ramips-mt7621的设备可以用拷贝这个模版&lt;code&gt;feeds/x/rom/lede/config.ramips-mt7621&lt;/code&gt;
内核分区限制小的设备，选用 &lt;code&gt;-nosymbol&lt;/code&gt; 结尾的&lt;code&gt;config&lt;/code&gt;配置模版&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cp feeds/x/rom/lede/config.ramips-mt7621 .config
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;由于这些模版是用来编译大量设备的，copy过来后，可以直接编译，不做任何改变。
但是如果需要改变，需要&lt;code&gt;make menuconfig&lt;/code&gt;自定义，就要做下面的操作:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 上面已经cp 拷贝了模版配置到 .config
# 例如 cp feeds/x/rom/lede/config.ramips-mt7621 .config
# 下面继续操作和修改

#1 执行
make menuconfig

#2 进入 Target Profile 选择需要编译打包的设备型号，选择型号后立刻退出，保存
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn-esa-cn-1.3284123.xyz/gh/x-wrt/x-wrt.github.io@master/docs/build/build-target.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#3 执行下面的命令修复 .config
sh feeds/x/rom/lede/fix-config.sh

#4 再次执行 make menuconfig 然后立刻退出保存

#5 最后一次 执行 make menuconfig 自定义选择你需要的软件包

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;还有更多配置模版，请参考目录下的&lt;code&gt;config.*&lt;/code&gt;文件:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;feeds/x/rom/lede/config.ath79-generic
feeds/x/rom/lede/config.ath79-generic-nosymbol
feeds/x/rom/lede/config.ath79-nand
feeds/x/rom/lede/config.bcm27xx-bcm2709
feeds/x/rom/lede/config.bcm27xx-bcm2710
feeds/x/rom/lede/config.bcm27xx-bcm2711
feeds/x/rom/lede/config.bcm4908-generic
feeds/x/rom/lede/config.bcm53xx-generic
feeds/x/rom/lede/config.ipq40xx-generic
feeds/x/rom/lede/config.ipq806x-generic
feeds/x/rom/lede/config.kirkwood-generic
feeds/x/rom/lede/config.mediatek-mt7622
feeds/x/rom/lede/config.mvebu-cortexa53
feeds/x/rom/lede/config.mvebu-cortexa9
feeds/x/rom/lede/config.ramips-mt7620
feeds/x/rom/lede/config.ramips-mt7620-nosymbol
feeds/x/rom/lede/config.ramips-mt7621
feeds/x/rom/lede/config.ramips-mt76x8
feeds/x/rom/lede/config.ramips-mt76x8-nosymbol
feeds/x/rom/lede/config.ramips-rt305x
feeds/x/rom/lede/config.ramips-rt3883-nosymbol
feeds/x/rom/lede/config.rockchip-armv8
feeds/x/rom/lede/config.sunxi-cortexa7
feeds/x/rom/lede/config.x86_64
feeds/x/rom/lede/config.x86_64-docker
feeds/x/rom/lede/config.x86_generic
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;2. 配置目标&lt;/h2&gt;
&lt;p&gt;在上述准备好的模版配置文件的基础上，执行&lt;code&gt;make menuconfig&lt;/code&gt;命令进行个性化定制，增删应用。&lt;/p&gt;
&lt;p&gt;定位到各个子菜单，选择对应的软件包
&lt;img src=&quot;https://cdn-esa-cn-1.3284123.xyz/gh/x-wrt/x-wrt.github.io@master/docs/build//build-m.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;3. 执行编译&lt;/h2&gt;
&lt;p&gt;命令:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;make
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;或者&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;make -j1 V=s
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;生成的包在&lt;code&gt;bin/targets/&lt;/code&gt;下面&lt;/p&gt;
&lt;p&gt;如果需要再次修改配置编译，只要不是换设备，都可以直接 &lt;code&gt;make menuconfig&lt;/code&gt; 修改后就编译，如果需要修改设备，请从拷贝模版配置的地方重新开始配置。&lt;/p&gt;
&lt;h2&gt;3. 高阶配置&lt;/h2&gt;
&lt;p&gt;为了得到满意的固件，下面对编译配置选项做更多的详细说明，但是更多的可能并不局限于这些说明内容，还有更多期待大家自己探索。&lt;/p&gt;
&lt;h3&gt;3.1 选择应用&lt;/h3&gt;
&lt;p&gt;首先，进入&lt;code&gt;make menuconfig&lt;/code&gt;菜单&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;要编译到固件里面，就要选择&lt;code&gt;&amp;lt;*&amp;gt;&lt;/code&gt;，如果只选择&lt;code&gt;&amp;lt;M&amp;gt;&lt;/code&gt;只是编译成软件包&lt;code&gt;ipk&lt;/code&gt;，不会打包进入固件。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;进入&lt;code&gt;LuCI - Applications&lt;/code&gt;子菜单下面，选择自己想要的应用&lt;/p&gt;
&lt;p&gt;常见的软件包:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;luci-app-aria2 ARRIA2下载工具
luci-app-ddns DDNS工具
luci-app-mwan3 MWAN3负载均衡
luci-app-openvpn OPENVPN
luci-app-ksmbd Ksmbd文件网络共享（samba文件共享）
luci-app-upnp UPNP设置
luci-app-wireguard WireGuard配置界面
luci-app-natcap 远程界面管理模块和全锥形nat实现模块
luci-app-natflow-users 用户认证（用户流量显示）模块
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;进入&lt;code&gt;Kernel modules - USB Support&lt;/code&gt;菜单，选择USB支持的驱动&lt;/p&gt;
&lt;p&gt;进入&lt;code&gt;Kernel modules - Filesystems&lt;/code&gt;菜单，选择需要支持的文件系统，比如&lt;code&gt;ext4,ntfs,vfat&lt;/code&gt;等&lt;/p&gt;
&lt;p&gt;进入&lt;code&gt;Kernel modules - Wireless Drivers&lt;/code&gt;菜单，选择无线支持的驱动，如果需要挂卡的驱动，也是在这里找&lt;/p&gt;
&lt;h3&gt;3.2 关于natcap远程管理模块&lt;/h3&gt;
&lt;p&gt;这个模块包含这几个方面功能的实现：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;远程界面管理(http://x-wrt.dev/) 模块&lt;/li&gt;
&lt;li&gt;全锥形nat实现模块&lt;/li&gt;
&lt;li&gt;一键VPN功能易用功能&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;鉴于有些朋友不喜欢远程管理，这里说明下如何去掉这个模块，请自行选择是否需要这个模块。删除后就删除了这个功能包括全锥形nat功能和一键VPN功能，抱歉这些暂时是耦合的无法分离，远程管理界面需要连接中转服务器和报告动态DNS数据，才能生成根据mac地址匹配的动态域名，如果有公网IP才会生成对应的mac域名给一键VPN功能使用。&lt;/p&gt;
&lt;p&gt;编译选择不集成这个模块，可以:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 修改.config文件，删去掉这几个模块
CONFIG_PACKAGE_luci-app-natcap=y
CONFIG_PACKAGE_natcapd-client=y
CONFIG_PACKAGE_natcapd-server=y
CONFIG_PACKAGE_natcapd=y
CONFIG_PACKAGE_kmod-natcap=y

# 为了单独让natflow软件加速功能工作，选择下面的包
CONFIG_PACKAGE_natflow-boot=y
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item></channel></rss>