前言
博主并非 mac 用户,玩黑苹果大概是5年前的事了,作为一个 Windows 死忠粉,且没有任何艺术创作上的需要,已经很长一段时间没有和 macOS 打交道了。而前段时间博主做了个 GitHub Actions 编译 OpenWrt 的方案是基于 Ubuntu 虚拟环境的,听群内一位大佬说 macOS 的性能配置更高,于是就研究了一下 macOS 搭建 OpenWrt 编译环境。
配置 OpenWrt 编译环境
- 安装 Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- 使用 Homebrew 安装工具链、依赖与基础软件包:
brew install coreutils diffutils findutils gawk gnu-getopt gnu-tar grep wget quilt xz
- 然后把以下两行添加系统路径环境变量的命令添加到 shell 启动文件中,比如
bash
为~/.bashrc
,zsh
为~/.zshrc
。这里以bash
为例子,直接输入以下命令即可:
echo 'export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"' >> ~/.bashrc
echo 'export PATH="/usr/local/opt/findutils/libexec/gnubin:$PATH"' >> ~/.bashrc
echo 'export PATH="/usr/local/opt/gnu-getopt/bin:$PATH"' >> ~/.bashrc
echo 'export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.bashrc
echo 'export PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"' >> ~/.bashrc
echo 'export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"' >> ~/.bashrc
- 最后重新加载一下 shell 启动文件。
source ~/.bashrc
创建大小写敏感的磁盘镜像
OpenWrt 必须在大小写敏感的磁盘分区上进行编译,如果你的 macOS 在安装时没有选择这种磁盘格式,那么就需要进行以下操作,去创建一个区分大小写的 HFS+ 格式的磁盘镜像。
- 创建镜像
hdiutil create -size 50g -type SPARSE -fs "Case-sensitive HFS+" -volname OpenWrt OpenWrt.sparseimage
TIPS: 编译 OpenWrt 至少需要 50G 的大小,请确保你的磁盘空间足够。
- 挂载镜像
hdiutil attach OpenWrt.sparseimage
- 进入挂载路径,进行接下来的拉取源码和编译操作。
cd /Volumes/OpenWrt
开始编译
编译的过程就像复读机,几乎就是复制粘贴的过程。详细的编译步骤可以去看《OpenWrt 编译步骤与命令详解》,这里不做赘述了。
找到编译的固件
以 x86_64 平台为例子,固件所在路径为:
/Volumes/OpenWrt/openwrt/bin/targets/x86/64
尾巴
经过多次的编译尝试,虽然能编译成功,但还是遇到了一些的问题,这在同样编译配置下使用 Ubuntu 编译并没有出现。如果你没有一定的计算机基础和强大的学习能力,这些问题很难得到解决,因为涉及到修改源码,所以博主并不推荐新手朋友使用 macOS 编译 OpenWrt。
参考资料
OpenWrt Buildroot – Installation on macOS
更多 OpenWrt 相关文章点这里
欢迎加入 OpenWrt Telegram 群
本博客已开设 Telegram 频道,欢迎小伙伴们订阅关注。
本文作者:P3TERX
本文链接:https://p3terx.com/archives/compiling-openwrt-with-macos.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。
试了n次,就没有一次成功了,唉~