我家云粒子云编译并打包Openwrt固件

一个简单的教程,详细教程请参考其他人的分享。

主要是云编译,然后将编译好的固件下载到本地进行打包,然后刷入我家云。

主要用到的网站有:

1
2
3
4
5
6
7
# 打包的代码
https://github.com/unifreq/openwrt_packit

# 内核下载地址
链接:https://pan.baidu.com/s/1BIjHHfi90Oa7Le91Q8gkOg
提取码:02im
# 纯内核下载路径:N1_Openwrt/Armbian_buster_内核5.3.x(N1、贝壳云)/纯内核/58 58为版本号,请选择最新的。

下载这三个文件。

固件准备

编译

具体如何编译不是本文的重点,后续可能出一篇教程进行讲解。注意编译时root分区填大一点,160MB不够,我设置的1024MB。路径为Target Images->Root filesystem partition size

在GitHub Action中编译完成后,将镜像文件下载下来。注意GitHub的文件大小和本地显示大小要大,是正常的,不用在意。

压缩包文件提取

打开压缩包,我们只需要里面的一个文件:openwrt-armvirt-64-rootfs-ext4.img.gz。解压出来备用。

镜像打包准备

文件夹创建

打包需要linux服务器,我使用的是本地虚拟机,其他任何linux服务器都可以。

首先需要创建几个文件夹,路径随意,我是在登录后的默认home目录。

1
mkdir -p pack/opt/kernel

然后进入目录,并克隆脚本文件,完成后显示如图。

1
2
3
4
cd pack
git clone --depth 1 https://github.com/unifreq/openwrt_packit
# 创建一个tmp目录,防止后面出现权限不足问题。
mkdir -p openwrt_packit/tmp

纯内核上传

使用文件上传工具,winscp或者FileZilla均可,进入默认目录下的pack/opt/kernel文件夹,将百度云上下载的三个文件上传。

镜像文件上传

进入pack/openwrt_packit目录,将解压出来的镜像上传。

脚本内容修改

仍然在pack/openwrt_packit目录,我们需要修改一个文件,主要使用的文件都用红框框选了出来。

我们需要修改make.env文件,使用VIM或者nano修改。

黄色框内容可修改可不修改。

红色框1号需要修改为纯内核文件版本号同名,最好是直接复制,不容易出错;

红色框2号修改为远程站点的路径。

打包

上述步骤完成后,就可以进行打包操作了,仍然在pack/openwrt_packit目录下,执行:

1
2
3
# 首先转为root执行
sudo su
./mk_rk3328_l1pro.sh

输出如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
ubuntu@ubuntu:~/pack/openwrt_packit$ sudo su
root@ubuntu:/home/ubuntu/pack/openwrt_packit# ./mk_rk3328_l1pro.sh
Use /home/ubuntu/pack/openwrt_packit/openwrt-armvirt-64-default-rootfs.tar.gz as openwrt rootfs!
/home/ubuntu/pack/openwrt_packit/tmp/tmp.nIjx5bgVXD
DISK SIZE = 896 MB
896+0 records in
896+0 records out
939524096 bytes (940 MB, 896 MiB) copied, 0.61775 s, 1.5 GB/s
Target dev is /dev/loop1
Model: Loopback device (loopback)
Disk /dev/loop1: 940MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
1 16.8MB 185MB 168MB primary
2 185MB 940MB 755MB primary
···
···
···
patching file etc/init.d/sysfixtime
patching file etc/ssl/openssl.cnf
patching file etc/init.d/dockerd
5.10.32-flippy-58+
patching file ./etc/init.d/boot
regulatory.db
regulatory.db.p7s
patching file index.htm
done!

出现done说明成功了。此时可以下载镜像了。

下载镜像

进入pack/openwrt_packit/tmp目录,可以看到打包好的镜像已经存在。

此时我们可以下载下来,该镜像大小较大,如果服务器下载速度较慢,可以压缩后再下载。

1
zip openwrt.zip openwrt_rk3328_l1pro_R21.4.27_k5.10.32-flippy-58+.img

压缩后文件只有原来的五分之一大小,方便传输。

镜像更新或安装

更新可以使用flippy大的更新脚本(顶部百度云网盘内下载一个L1Pro镜像文件可以得到),但是初次使用自己的镜像建议全新刷入,我家云/粒子云可以参考这篇文章

后记

本文理论上适用于所有flippy大大提供了脚本的设备,本文只是用我家云作为示例。