# 1. 下载定制版系统

OpenWRT 默认版本是没有开启 WiFi 的,首次连接需要网线。但是官网提供的固件自定义功能,可以直接开启 WiFi 功能。

  1. 点击 https://firmware-selector.openwrt.org,输入 Raspberry Pi 4B/400/CM4 (64bit) ,一定要是 64 位的,不然软件会不兼容,后续性能也会受影响。版本选择最新的稳定版,不要选择 snapshot 版本。

image.png

  1. Github 上的 openwrt 的编译项目,https://github.com/SuLingGG/OpenWrt-Rpi/

image.png

  • factory 版本对应的是卡上没有系统的,初次刷入固件
  • sysupgrade 版本是已经有 openwrt 进行升级的固件
  1. KoolCenter 固件下载服务器 https://fw.koolcenter.com/iStoreOS/

image.png

  1. https://openwrt.ai/?target=bcm27xx%2Fbcm2711&id=rpi-4

image.png

# 2. 刷写镜像

使用树莓派官方提供的 Raspberry Pi Imager 将系统写入。
image.png

# 3. 设置网络

在 OpenWRT 的后台中 网络 - 接口 - LAN :对 LAN 口进行设置
image.png

传输协议:静态地址
IPv4地址:192.168.x.x  //当前路由器网段,IP地址填任意一个主路由的内网IP,只要不是冲突的就可以了
IPv4子网掩码:255.255.255.0
IPv4网关:192.168.x.1  //路由器地址
IPv4广播:192.168.x.255 
使用自定义的DNS服务器:192.168.x.x  //路由器地址或其它DNS地址
//其他设置为默认

如果是 IPv4IPv6 双栈,需要在 “ 接口 > lan > DHCP服务器 > IPv6设置 ” 中,找到本地 IPV6 DNS 服务器 ,将 通告该设备为 IPv6 DNS 服务器 的勾选去掉,否则 IPv6 将优先于 IPv4 继续转发,从而使旁路由功能失效。

# 4. 更新与安装必要软件包

使用 SSH 进入 OpenWRT 进行更新而不是网页,网页有时候可能会因为网络波动而报错。

执行以下命令,更新系统并安装必要软件:

opkg update
opkg install cfdisk fdisk block-mount

# 5. 更换语言为中文

OpenWRT 默认是英文,换成中文需要安装中文包,执行一下命令,然后重启系统

opkg install luci-i18n-base-zh-cn # 安装中文包
reboot # 重启系统

# 6. 分区扩容

连接 SSH 后在 SHELL 命令行下输入以下命令:

#更新软件源
opkg update
#下载所有软件包
opkg install cfdisk resize2fs block-mount fdisk

SSH 中执行:

fdisk -l

将看到类似如下的内容:

Device         Boot   Start      End  Sectors  Size Id Type
/dev/mmcblk0p1 *      65536   131071    65536   64M 83 Linux
/dev/mmcblk0p2       196608  1425407  1228800  100M 83 Linux

以上输出还有很多内容,找到 SD 卡的名字(盘符),比如上述的就是 mmcblk0 ,执行分区和扩容操作:

fdisk /dev/mmcblk0  //fdisk分区工具

image.png
找到空间最大的那个分区,一般是最后一个

n  //表示新建一个分区
p  //选择主分区
1  // 表示这是第一个分区
接受默认的分区起始点
输入分区大小,例如+2G,回车,表示分区大小为2GB
输入wq,回车,保存并退出fdisk分区工具。

image.png
对新分区进行格式化

mkfs.ext4 /dev/mmcblk0p3

在系统的 “ 系统 > 挂载点 ” 里面,先点击 “ 生成配置 ”,随后在下方的 “ 挂载点 ” 部分,选中刚才的新分区,然后点击新增。
在弹出的页面中, 启用 此挂载点, UUID 就选择刚才的新分区,挂载点选择 / ,会弹出一堆命令,复制下来。
点击保存并应用。

mkdir -p /tmp/introot
mkdir -p /tmp/extroot
mount --bind / /tmp/introot
mount /dev/mmcblk0p3 /tmp/extroot
tar -C /tmp/introot -cvf - . | tar -C /tmp/extroot -xf -
umount /tmp/introot
umount /tmp/extroot
mkdir -p /tmp/introot
mkdir -p /tmp/extroot
mount --bind / /tmp/introot
mount /dev/mmcblk0p3 /tmp/extroot
tar -C /tmp/introot -cvf - . | tar -C /tmp/extroot -xf -
umount /tmp/introot
umount /tmp/extroot

依次执行完成后,使用 reboot 命令重启系统。

# 7. 安装 Docker 环境

# 安装准备

#更新软件源
opkg update

# 安装 docker

#安装 docker 进程
opkg install dockerd
#安装 docker
opkg install docker
#安装 dockerman
opkg install luci-app-dockerman

# 安装完整性测试

#显示系统信息
docker info
#显示 docker 版本号
docker version