开始之前#
上学期研究了防止校园网的多设备检测,为自己的红米 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)。
For OrangePi R1 Plus LTS
# 后台启动 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
选择对应的芯片、平台和软件包等。
可以将自己需要的包先克隆到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 许可协议。