Tags
Cover Image

在 R4S 上安装 ImmortalWrt / OpenWrt

Zor Chen
Zor
解决在 R4S 上不能使用 ImmortalWrt 24.10.0 的问题,包括扩展分区等初始设置; 以及在希望使用 OpenWrt 时,如何正确安装和配置所需依赖。本文不包括科学上网的相关教程。

准备固件

定制镜像

国内用户的路由器或软路由的固件的最好选择是 ImmortalWrt,因为它默认配置了国内可访问的 opkg 仓库镜像,包含很多第三方的软件包,同时管理后台(LuCI)默认为中文。

但 ImmortalWrt 24.10.0 版本的固件在 R4S 上有一些问题,比如无法正常分配 DHCP 地址或者经常断联,导致无法正常使用。我们需要通过官方提供的自助编译平台来构建一个新的固件镜像。

  1. 访问 ImmortalWrt 固件自助构建网站

  2. 选择对应的设备和版本,这里选择 R4S,版本选择 24.10.0。

  3. 点击“自定义预安装软件包和/或首次启动脚本”选项,在“预安装的软件包”文本框中,将其中的 kmod-r8168 替换为 kmod-r8169,修复网卡驱动问题。

  4. 在“预安装的软件包”文本框中继续填入以下内容,省去后续在本机下载安装这些依赖项的步骤。

    Terminal window
    curl openssh-sftp-server luci-theme-argon luci-app-argon-config luci-i18n-argon-config-zh-cn luci-app-diskman
  5. 点击“请求构建”按钮,等待构建完成。

  6. 下载 SquashFS 版本的固件。

安装 OpenWrt 官方镜像的步骤和 ImmortalWrt 类似,但 OpenWrt 官方仓库提供的软件包较少,很多软件包需要手动安装。以下是准备 OpenWrt 官方镜像的步骤,点击展开查看:

💡 如何准备 OpenWrt 官方镜像

访问 OpenWrt 固件自助构建网站

  1. 选择对应的设备和版本,这里选择 R4S,版本选择 24.10.0。

  2. 展开“自定义预安装软件包和/或首次启动脚本”选项,填入以下内容,省去后续在本机下载安装这些依赖项的步骤。

    Terminal window
    curl openssh-sftp-server luci-i18n-base-zh-cn block-mount luci-compat luci-lib-ipkg
  3. 点击“请求构建”按钮,等待构建完成。

  4. 下载 SquashFS 版本的固件。

烧录镜像

Windows 用户可以下载 Rufus,将下载的镜像刷到一张 TF 卡里。TF 卡不用格式化,直接选择设备和镜像文件,点击开始即可。

Mac 用户可以使用 BalenaEtcher,操作类似。

刷写完成后,将 TF 卡插入机器,通电开机。

配置 SSH

  • 首先将网线接入 LAN 口,等到电脑获取 IP 后,访问 192.168.1.1 登录 LuCI 后台,密码为空。

Windows 下用如下命令刷新 IP,如果还是无法获取 IP,可以尝试禁用再启用网卡。

Terminal window
ipconfig /renew

为保证路由器安全性,在后台的系统 - 控制权页面中:

  • 修改登录密码
  • 添加 SSH公钥(可选)

修改二级路由(可选)

我的环境中有两级路由,一级路由是主路由,二级是 R4S,用于提供代理。为了避免冲突,需要修改二级路由的 IP 地址(如下图中的 192.168.28.1)。

在网络中选择 lan 接口进行编辑在网络中选择 lan 接口进行编辑

修改 IPv4 地址修改 IPv4 地址

应用修改后,刷新 IP 并用新 IP 访问 OpenWrt 后台,系统会提示配置应用成功,并要求重新连接。再次刷新本机 IP,确认 IP 地址更新为新设置的子网 IP 和网关后,用新 IP 再次连接 LuCI 后台,并使用新密码登录后台。

最后插入 WAN 口网线,在状态 - 概览中确认 WAN 口网卡已经识别出了 IPv4 上游地址。如果有 IPv6 也应该会识别出来。

OpenWrt 安装主题

💡 点击展开查看

由于 OpenWrt 官方仓库里没有提供,主题和其他一些工具需要通过下载 ipk 包手动安装。我们需要登录 SSH 来下载和安装它们。

通过 SSH(使用上面设定的新密码;如果上传了公钥,也可以免密码登录)进入 OpenWrt,首先更新 opkg。

Terminal window
opkg update

如果 opkg 不能正常更新,需要替换成使用国内的仓库镜像。以浙大镜像为例:

  1. 备份 /etc/opkg/distfeeds.conf

    Terminal window
    cp /etc/opkg/distfeeds.conf /etc/opkg/distfeeds.conf.bak
  2. distfeeds.conf 文件内容替换为下面的内容,注意要和当前 OpenWrt 版本匹配,如这里是 24.10.0

    Terminal window
    src/gz openwrt_core https://mirrors.zju.edu.cn/openwrt/releases/24.10.0/targets/rockchip/armv8/packages
    src/gz openwrt_base https://mirrors.zju.edu.cn/openwrt/releases/24.10.0/packages/aarch64_generic/base
    src/gz openwrt_kmods https://mirrors.zju.edu.cn/openwrt/releases/24.10.0/targets/rockchip/armv8/kmods/6.6.73-1-f35e93bc2c89b98d107e57cdea041972
    src/gz openwrt_luci https://mirrors.zju.edu.cn/openwrt/releases/24.10.0/packages/aarch64_generic/luci
    src/gz openwrt_packages https://mirrors.zju.edu.cn/openwrt/releases/24.10.0/packages/aarch64_generic/packages
    src/gz openwrt_routing https://mirrors.zju.edu.cn/openwrt/releases/24.10.0/packages/aarch64_generic/routing
    src/gz openwrt_telephony https://mirrors.zju.edu.cn/openwrt/releases/24.10.0/packages/aarch64_generic/telephony

    也可以在这里找到其他镜像源: OpenWRT 软件源整理 - Oskyla 烹茶室

  3. 再次运行 opkg update,如果能正常更新,说明镜像源替换成功。

更新成功后安装主题。依旧是在 SSH 中,运行以下命令来安装 argon 主题、主题管理工具、以及管理工具的中文包:

Terminal window
curl -OL https://gh-proxy.com/https://github.com/jerrykuku/luci-theme-argon/releases/download/v2.3.2/luci-theme-argon_2.3.2-r20250207_all.ipk
curl -OL https://gh-proxy.com/https://github.com/jerrykuku/luci-app-argon-config/releases/download/v0.9/luci-app-argon-config_0.9_all.ipk
curl -OL https://gh-proxy.com/https://github.com/jerrykuku/luci-app-argon-config/releases/download/v0.9/luci-i18n-argon-config-zh-cn_git-22.114.24542-d1474ba_all.ipk
opkg install luci-theme-argon*.ipk luci-app-argon-config*.ipk luci-i18n-argon-config*.ipk

安装时如果出现找不到 /etc/uci-defaults/*的报错信息可以忽略,目前我还没发现有什么影响。

安装完成后,刷新后台页面,可以看到界面已经改成了新主题,并且在系统里出现新的页面“Argon 主题设置”。可以考虑把壁纸来源换成 Bing 壁纸。

分区扩容

新建分区

OpenWrt 的镜像只分配了 300MB 左右的空间(因为要顾及镜像文件本身的大小)。这对于安装一些第三方软件包来说是远远不够的。我们需要将 TF 卡上剩余的空间分配给 /overlay,这样就可以安装更多的软件包了。

我们将使用 LuCI 界面工具 luci-app-diskman 来扩展分区。

💡 OpenWrt 需手动安装 diskman,点击展开

首先安装luci-app-diskman,这是一个磁盘管理工具,可以用来管理磁盘分区。

Terminal window
curl -OL https://gh-proxy.com/https://github.com/lisaac/luci-app-diskman/releases/download/v0.2.11/luci-app-diskman_v0.2.11_all.ipk
opkg install luci-app-diskman*.ipk

安装后刷新后台页面,就可以在系统看到新的磁盘管理页面。没出现的话可以退出 LuCI 再登录。

在后台界面系统分类下,找到磁盘管理工具。

磁盘列表里只有一项,就是我们的 TF 卡。点击它的“编辑”,将 Free space 创建为新的分区,调整分区大小,并格式化为 ext4格式

注意 如果只有一张 TF 卡,这里建议加两个分区,一个用于系统管理的 /overlay,一个用于 /opt存放第三方数据

可以在“容量”文本框里填入 +15g来轻松设置分区大小。

挂载分区

系统 - 挂载点中,找到底部的挂载点分组,然后点击添加,将两个新设备(即分区)分别挂载到 /mnt/new/opt

注意在选择挂载点时,目标位置是可以自己填任意值的,不一定要在提供的两个选项里选一个。

添加好后,确认挂载点如下所示,然后点击“保存并应用”。

接下来我们要将 /overlay 挂载的新分区上。

由于 /overlay 是系统的关键目录,我们不能直接删除它,所以需要先将它的内容拷贝到新分区上。

在 SSH 中,通过命令行将 /overlay下所有文件拷贝到 /mnt/new:

Terminal window
cp -r /overlay/* /mnt/new

完成后,/mnt/new下应有两个文件夹:upper 和 work。

回到系统 - 挂载点页面,还是找到挂载点分组:

  1. 记住 /mnt/new 是挂载到哪个设备的(如我这里是 /dev/mmcblk1p3),然后删除这个挂载点。
  2. 添加新的挂载点,选择刚才删掉的设备,挂载点选择“作为外部 overlay 使用(/overlay)”,保存。
  3. 把 /overlay 拖到 /opt 上面去,变成如下图的样子,然后保存并应用。

重启设备并祈祷,如果一切顺利,你会在状态-概览-存储空间使用里看到磁盘空间已经变为了你设定的大小。

后续

恭喜!🥳 你已经成功安装了 Immortal/OpenWrt,并且配置了一些常用的功能。接下来你可以:

  • 安装代理软件,如 Nikki。
  • 安装 Docker 或其他服务,开始发挥 R4S 的潜力。