侧边栏壁纸
  • 累计撰写 46 篇文章
  • 累计创建 23 个标签
  • 累计收到 3 条评论

目 录CONTENT

文章目录

MacOS Ventura (Apple M1 Pro)机器上原生系统编译Openwrt的问题记录

elthon
2023-03-20 / 0 评论 / 0 点赞 / 735 阅读 / 2262 字

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

第一次执行的时候,是没有错误提示的,等编译出现错误后,我在运行这个命令就提示错误了。
image.png

* 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后,就能正常显示配置对话框了。

0

评论区