Skip to content

Latest commit

 

History

History
233 lines (169 loc) · 7.16 KB

README.md

File metadata and controls

233 lines (169 loc) · 7.16 KB

NanoPi R4S/R5S/R5C & X86_64 OpenWrt 简易构建脚本存档


基于 Linux 6.6 LTS 固件下载:

NanoPi R5S/R5C: https://r5s.cooluc.com


本地编译环境安装(根据 debian 11 / ubuntu 22)

sudo apt-get update
sudo apt-get install -y build-essential flex bison g++ gawk gcc-multilib g++-multilib gettext git libfuse-dev libncurses5-dev libssl-dev python3 python3-pip python3-ply python3-distutils python3-pyelftools rsync unzip zlib1g-dev file wget subversion patch upx-ucl autoconf automake curl asciidoc binutils bzip2 lib32gcc-s1 libc6-dev-i386 uglifyjs msmtp texinfo libreadline-dev libglib2.0-dev xmlto libelf-dev libtool autopoint antlr3 gperf ccache swig coreutils haveged scons libpython3-dev jq
安装 LLVM/CLANG - 启用 ENABLE_BPF / KERNEL_CLANG_LTO 时需要
# 下载并解压
sudo mkdir -p /opt/clang
curl -LO https://github.com/sbwml/redhat-llvm-project/releases/download/18.1.6/clang-18.1.6-x86_64-redhat-linux.tar.xz
sudo tar --strip-components=1 -C /opt/clang -xf clang-18.1.6-x86_64-redhat-linux.tar.xz
rm -rf clang-18.1.6-x86_64-redhat-linux.tar.xz

# 添加 BIN 到系统变量
export PATH="/opt/clang/bin:$PATH"

# clang 版本验证
clang --version

 clang version 18.1.6 (https://github.com/llvm/llvm-project 1118c2e05e67a36ed8ca250524525cdb66a55256)
 Target: x86_64-redhat-linux
 Thread model: posix
 InstalledDir: /opt/clang/bin

启用 Clang/LLVM 构建内核

脚本支持使用 Clang/LLVM 构建内核,NanoPi & X86_64 设备将同时启用 LLVM LTO 链接时优化,这会增加编译的时间,但会获得更优的性能
编译环境需要安装 Clang/LLVM 工具链,推荐使用 clang 16-18 版本
只需在构建固件前执行以下命令即可启用 Clang/LLVM 构建内核与内核模块
export KERNEL_CLANG_LTO=y

启用 GCC13/GCC14/GCC15 工具链编译

只需在构建固件前执行以下命令即可启用 GCC13/GCC14/GCC15 交叉工具链
# GCC13
export USE_GCC13=y
# GCC14
export USE_GCC14=y
# GCC15
export USE_GCC15=y

启用 LTO 优化

只需在构建固件前执行以下命令即可启用编译器 LTO 优化
export ENABLE_LTO=y

启用 MOLD 现代链接器(需要启用 USE_GCC13=yUSE_GCC14=yUSE_GCC15=y

只需在构建固件前执行以下命令即可启用 MOLD 链接,如果使用它建议同时启用 LTO 优化
export USE_MOLD=y

启用 eBPF 支持

只需在构建固件前执行以下命令即可启用 eBPF 支持
export ENABLE_BPF=y

启用 LRNG

只需在构建固件前执行以下命令即可启用 LRNG 内核随机数支持
export ENABLE_LRNG=y

启用 Glibc 库构建 (实验性)

脚本支持使用 glibc 库进行构建,当启用 glibc 进行构建时,构建的固件将会同时兼容 musl/glibc 的预构建二进制程序
只需在构建固件前执行以下命令即可启用 glibc 构建
export USE_GLIBC=y

快速构建(仅限 Github Actions)

脚本会使用 toolchain 缓存代替源码构建,与常规构建相比能节省大约 60 分钟的编译耗时,仅适用于 Github Actions ubuntu-24.04 环境
只需在构建固件前执行以下命令即可启用快速构建
export BUILD_FAST=y

构建 Minimal 版本

不包含第三方插件,接近官方 OpenWrt 固件
只需在构建固件前执行以下命令即可构建 Minimal 版本
export MINIMAL_BUILD=y

更改 LAN IP 地址

自定义默认 LAN IP 地址
只需在构建固件前执行以下命令即可覆盖默认 LAN 地址(默认:10.0.0.1)
export LAN=10.0.0.1

构建 OpenWrt 23.05 最新 Releases

nanopi-r4s

# linux-6.6
bash <(curl -sS https://init2.cooluc.com/build.sh) rc2 nanopi-r4s

nanopi-r5s/r5c

# linux-6.6
bash <(curl -sS https://init2.cooluc.com/build.sh) rc2 nanopi-r5s

x86_64

# linux-6.6
bash <(curl -sS https://init2.cooluc.com/build.sh) rc2 x86_64

构建 OpenWrt 23.05 开发版(23.05-SNAPSHOT)

nanopi-r4s

# linux-6.6
bash <(curl -sS https://init2.cooluc.com/build.sh) dev nanopi-r4s

nanopi-r5s/r5c

# linux-6.6
bash <(curl -sS https://init2.cooluc.com/build.sh) dev nanopi-r5s

x86_64

# linux-6.6
bash <(curl -sS https://init2.cooluc.com/build.sh) dev x86_64

基于本仓库进行自定义构建 - 本地编译

如果你有自定义的需求,建议不要变更内核版本号,这样构建出来的固件可以直接使用 opkg install kmod-xxxx

一、Fork 本仓库到自己 GitHub 存储库

二、修改构建脚本文件:openwrt/build.sh(使用 Github Actions 构建时无需更改)

将 init.cooluc.com 脚本默认连接替换为你的 github raw 连接(不带 https://),像这样 raw.githubusercontent.com/你的用户名/r4s_build_script/master

 # script url
 if [ "$isCN" = "CN" ]; then
-    export mirror=init.cooluc.com
+    export mirror=raw.githubusercontent.com/你的用户名/r4s_build_script/master
 else
-    export mirror=init2.cooluc.com
+    export mirror=raw.githubusercontent.com/你的用户名/r4s_build_script/master
 fi

三、在本地 Linux 执行基于你自己仓库的构建脚本,即可编译所需固件

nanopi-r4s openwrt-23.05

# linux-6.6
bash <(curl -sS https://raw.githubusercontent.com/你的用户名/r4s_build_script/master/openwrt/build.sh) rc2 nanopi-r4s

nanopi-r5s/r5c openwrt-23.05

# linux-6.6
bash <(curl -sS https://raw.githubusercontent.com/你的用户名/r4s_build_script/master/openwrt/build.sh) rc2 nanopi-r5s

x86_64 openwrt-23.05

# linux-6.6
bash <(curl -sS https://raw.githubusercontent.com/你的用户名/r4s_build_script/master/openwrt/build.sh) rc2 x86_64

使用 Github Actions 构建

一、Fork 本仓库到自己 GitHub 存储库

二、构建固件

  • 在存储库名称下,单击(Actions Actions)。

  • 在左侧边栏中,单击要运行的工作流的名称:Build releases

  • 在工作流运行的列表上方,单击“Run workflow”按钮,选择要构建的设备固件并运行工作流。

    image