macOS 下编译 OpenWrt (M1 芯片)
新建区分大小写的 APFS 宗卷
磁盘工具 -> 新建
- 名称:Develop
- 格式:APFS(区分大小写)
新建的分区在 /Volumes
目录下
安装编译所需依赖
安装 Homebrew
安装前打开代理工具,并开启增强模式。
1 | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
在终端的配置文件中增加环境变量:
如果使用的终端是 zsh
,使用 vim ~/.zshrc
;如果使用的终端是 bash
,使用 vim ~/.bash_profile
。
1 | export PATH=/opt/homebrew/bin:$PATH |
使环境变量生效:
如果使用的终端是 zsh
,使用 vim ~/.zshrc
;如果使用的终端是 bash
,使用 vim ~/.bash_profile
。
1 | brew -v |
终端输出 Homebrew 4.2.11
版本号,说明安装成功。
安装依赖
1 | brew unlink awk |
添加环境变量
如果使用的终端是 zsh
,使用 vim ~/.zshrc
;如果使用的终端是 bash
,使用 vim ~/.bash_profile
。
添加以下内容:
1 | export PATH=/opt/homebrew/opt/make/libexec/gnubin:$PATH |
使添加的环境变量生效
如果使用的终端是 zsh
,使用 source ~/.zshrc
;如果使用的终端是 bash
,使用 source ~/.bash_profile
。
克隆并编译 OpenWrt
克隆 openwrt 源码
在新建的 APFS 分区中克隆 openwrt 源码:
1 | cd /Volumes/Develop |
为 openwrt 增加常用插件
在 openwrt/package/
目录下增加 my-package
目录,用于保存自己新增的插件。
1 | cd openwrt |
增加 OpenClash
插件
- 克隆
OpenClash
插件源码时,一定要增加--depth=1
参数。
1 | cd ./package/my-package |
更新并安装配置
回到 openwrt
目录
1 | ./scripts/feeds update -a |
配置 openwrt
在 openwrt
目录
1 | make menuconfig |
Target System (MediaTek Ralink MIPS)
Subtarget (MT7621 based boards)
Target Profile (Xiaomi Mi Router 3G)
Base system —>
如果增加了 OpenClash
插件,在 LuCI
中选中 luci-app-openclash
时,会默认增加dnsmasq-full
,此时需要取消选中 dnsmasq
,不然编译时会提示重复,出现编译错误。
< > dnsmasq………………………………………. DNS and DHCP server
LuCI —>
- Collections
<> luci………………. LuCI interface with Uhttpd as Webserver (default)
-- luci-light…………… LuCI interface with Uhttpd as Webserver (light)
- Modules
Translations —>
<*> Chinese Simplified (zh_Hans)
<> luci-compat…………………………… LuCI compatibility libraries
-- luci-lua-runtime………………………… LuCI Lua runtime libraries
<*> luci-mod-dashboard……………………………. LuCI Dashboard Pages
- Applications
<*> luci-app-openclash………………………….. LuCI support for clash
- Themes
- Protocols
- Libraries
Utilities —>
Editors —>
<*> vim-full………………….. Vi IMproved - enhanced vi editor (Normal)
Shells —>
<*> zsh…………………………………………………. The Z shell
编译
1 | make -j$(nproc) V=s |
重新编译
在 openwrt
目录
1 | rm -rf ./tmp && rm -rf .config |