跳过正文

为 OrangePi 编译属于自己的 OpenWrt

·1339 字·3 分钟· loading ·
技术教程 OpenWrt OrangePi 开发板
褐瞳さん
作者
褐瞳さん
Everyone is mania in general
目录

开始之前
#

本文主要是教学给 OrangePi R1 Plus LTS 的教程,但是为硬路由编译完全可以参考

上学期研究了防止校园网的多设备检测,为自己的红米 AC2100 硬路由装了 OpenWrt,但是用的的第三方的版本。如果直接使用硬路由的话不知道为什么似乎绿厂的手机连接 WIFI 后就会被检测到。其次是硬路由使用 UA2F 和 SmartDNS 等插件很容易出现性能瓶颈,所以我选择了 OrangePi R1 Plus LTS 作为软路由,然后将红米 AC2100 接在软路由后面,只作为一个无线发射器了。

准备
#

  • Linux 环境
  • 可以随意git的网络环境

Linux 环境这里推荐一下上一篇文章说到的阿里云按量付费服务器,一个通用计算型 4C4G + 东京地区直接完全够用了,不然准备编译这一步就需要很久。当然也可以选择使用 WSL 来进行编译。

开始
#

进入 Linux 主机,首先进行更新和安装必要的软件包。

# 更新软件包
sudo apt-get update && sudo apt-get upgrade -y

# 安装必要的软件
sudo apt-get install gcc binutils bzip2 flex python3 perl make grep unzip swig gawk subversion libz-dev libc-dev rsync libncurses5-dev libncursesw5-dev libpam0g-dev liblzma-dev libsnmp-dev libnetfilter-queue-dev liblzma-dev libpam0g-dev

安装完毕后将所需要的 OpenWrt 源克隆下来,以下是常用的 OpenWrt 版本:

这里我使用从 OrangePi-xunlong fork 下来的仓库进行了(只适用于 OrangePi R1 Plus LTS)。

HeTongRe4per/OPi-R1-Plus-LTS-OpenWrt

For OrangePi R1 Plus LTS

C
0
0
# 后台启动 ssh-agent
eval "$(ssh-agent -s)"

# 添加密钥
ssh-add ~/.ssh/github.pem

# 克隆仓库
git clone --branch origin/openwrt-21.02 [email protected]:HeTongRe4per/OPi-R1-Plus-LTS-OpenWrt.git

# 进入项目文件夹
cd OPi-R1-Plus-LTS-OpenWrt

这里不会使用 ssh 密钥克隆仓库等可以在网上搜搜。

准备编译
#

进入项目文件夹后先进行更新和安装 feed 包(这里下的包大部分都是国外资源,下载慢的话请使用合适的网络环境):

# 更新 feed 包
./scripts/feeds update -a

# 安装 feed 包
./scripts/feeds install -a

然后可以通过make menuconfig选择对应的芯片、平台和软件包等。

可以使用箭头进行选择,可以使用热键:按 Y 包括、N 排除、M 模块化、 按 Esc * 2 退出,按? 用于帮助、/搜索。
图例:[*] 内置、[ ] 排除、<M> 模块化。

make menuconfig

可以将自己需要的包先克隆到packages文件夹中,然后再进入make menuconfig找到对应的包选择就行,选择后在底部选择「SAVE」保存设定。

# 选择想要编译的包
make menuconfig

如果找不到键入/然后输入想找的包的名字,其中Location所指的就是包的位置。例如我搜索 UA2F:

搜索

 Location:
       -> Network
   (2)   -> Routing and Redirection

那么进入Network -> Routing and Redirection就能找到 UA2F。

开始编译
#

选择好所有需要的包后就可以开始编译了,可以先提前下载好需要的 feed 包,其中-j4是使用多少线程进行下载,建议不要超过 8 线程:

# 下载 feed 包
make download -j4

然后开始正式编译,其中-j4是编译使用的线程,推荐多少核的 CPU 使用多少线程;V=s是显示详情编译信息(编译需要的时间非常长,建议使用screen,然后在 screen 中进行编译):

# 正式编译
make -j4 V=s

# 编译出错的话
make -j1 V=s

# 不想看一大堆编译日志输出的
make -j4

编译结果
#

最后编译出来的成品放在<仓库文件夹>/bin/下,其中有两个目录:

  • targets文件夹:包含了针对特定硬件平台(Target)的固件镜像和相关文件。这些文件用于将 OpenWrt 安装到目标设备上。具体内容包括固件镜像文件(例如 .bin 或 .img 格式)、内核、设备树文件等。
  • packages文件夹:包含了编译后的软件包(例如你选择的模块化的包),通常是都.ipk文件。

现在就只需要将编译出来的openwrt-rockchip-armv8-xunlong_orangepi-r1-plus-lts-ext4-sysupgrade.img.gz下载到自己电脑上,然后按照这篇文章安装到开发板上就行了。祝成功!!

成果


本文作者: 褐瞳さん
本文链接: https://hetong-re4per.com/posts/build-own-openwrt-for-orangepi/
版权声明: 本文文字在未特别注明下默认使用 CC BY-NC-SA 4.0 许可协议。

相关文章

使用 OrangePi Zero3搭建 TS3AudioBot
·3107 字·7 分钟· loading
技术教程 Teamspeak3 OrangePi 开发板
记录一下香橙派 Zero3 的使用
·3289 字·7 分钟· loading
日常记录 OrangePi 开发板
校园网防止多设备检测指北
·2551 字·6 分钟· loading
技术教程 校园网 OpenWrt 多设备检测