intel 12代CPU支持大小核(P核、E核),当前Openwrt默认的内核是5.15,还不支持这个特性,所以想着自己编译Openwrt。
看了Openwrt的源码,发现里面已经有kernel-6-1的文件,想必是已经支持6.1的内核了,正好直接拿来编译了。
在Debian/Ubuntu上编译Openwrt的文章很多了,但是MacOSX下面原生编译的资料比较少,有的也是安装虚拟机或者Docker的方式来编译,官方其实针对OSX系统下编译的说明文件,其实在OSX下面编译的问题更多的是出现在编译各种package的时候,就整体框架而言,出现的问题不多。
这里根据自己的编译过程做一些问题记录,便于以后解决。
安装依赖
按照 lean lede 的仓库提示,MacOS下编译,需要安装一些工具链、依赖包
brew unlink awk
brew install coreutils diffutils findutils gawk gnu-getopt gnu-tar grep make ncurses pkg-config wget quilt xz
brew install gcc@11
我使用的是brew工具。安装好以后,需要将工具放到PATH路径中,以便编译过程中使用到这些工具,lede仓库说明文档中的配置路径是针对之前版本的brew的,新版本的brew安装路径发生了变化,所以需要修改,而且我使用的是zsh,所以变量也需要写到另外的地址。
export PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:$PATH"
export PATH="/opt/homebrew/opt/findutils/libexec/gnubin:$PATH"
export PATH="/opt/homebrew/opt/gnu-getopt/bin:$PATH"
export PATH="/opt/homebrew/opt/gnu-tar/libexec/gnubin:$PATH"
export PATH="/opt/homebrew/opt/grep/libexec/gnubin:$PATH"
export PATH="/opt/homebrew/opt/gnu-sed/libexec/gnubin:$PATH"
export PATH="/opt/homebrew/opt/make/libexec/gnubin:$PATH"
将上面这些PATH设置信息写入到 ~/.zprofile 文件中。
ncurses的错误
按照说明安装完以后,执行
make menuconfig
第一次执行的时候,是没有错误提示的,等编译出现错误后,我在运行这个命令就提示错误了。
* Unable to find the ncurses package.
* Install ncurses (ncurses-devel or libncurses-dev
* depending on your distribution).
提示的错误信息是说找不到ncurses,找到网上一遍关于这个问题的记录,大意是说需要手动指定路径,因为ncurses这个包我是通过brew安装了的。根据这个文件修改一下scripts/config/mconf-cfg.sh文件内容(原文是用的MacPorts包管理器)
# Check Homebrew path
if [ -f /opt/homebrew/opt/ncurses/include/ncurses.h ]; then
echo cflags=\"-D_GNU_SOURCE -I/opt/homebrew/opt/ncurses/include\"
echo libs=\"-lncurses\"
exit 0
fi
在原有文件中查找ncurses的代码下方加入上面这段代码。在执行make menuconfig后,就能正常显示配置对话框了。
评论区