跳过正文

为 OrangePi 编译属于自己的 OpenWrt

·1339 字·3 分钟· ·
技术教程 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 git@github.com: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://www.hetong-re4per.com/posts/build-own-openwrt-for-orangepi/
版权声明: 本文文字在未特别注明下默认使用 CC BY-NC-SA 4.0 许可协议。

相关文章

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