# Redmi AC2100 刷原版 OpenWRT

> 闲得无聊，给自己创造需求，把路由器的官方系统换成了 OpenWRT，再使用 WireGuard 给外网打通一条连回家的隧道。
>
> 过程也非常简单打算自己也记录一下，教程学自[恩山论坛的一篇帖子](https://www.right.com.cn/forum/thread-8302009-1-1.html)。

## 准备事项

### 环境参考

Redmi AC2100 原来的固件版本是稳定版 2.0.23，使用的 openwrt 是官方原版的 23.05.3，breed 和 openwrt 两个都是使用适用于 XiaoMi 的固件版本。

### 用到的物品

- 网线两条（用于连路由器的 wan 和 lan 接口）

- 带网口可浏览器上网的机器（PC、笔记本……）

- Redmi AC2100 路由器

### 用到的文件

- breed-mt7621-xiaomi-r3g.bin（该文件不用提前下载）
- [openwrt-23.05.3-ramips-mt7621-xiaomi_redmi-router-ac2100-squashfs-kernel1.bin](https://firmware-selector.openwrt.org/?version=23.05.3&target=ramips%2Fmt7621&id=xiaomi_redmi-router-ac2100)（点击跳转下载页）
- [openwrt-23.05.3-ramips-mt7621-xiaomi_redmi-router-ac2100-squashfs-rootfs0.bin](https://firmware-selector.openwrt.org/?version=23.05.3&target=ramips%2Fmt7621&id=xiaomi_redmi-router-ac2100)（点击跳转下载页）

### 下载上面两个 openwrt bin 文件

如果有需要，可以在 PowerShell 中使用以下命令检验文件完整性。

```powershell
Get-FileHash 文件名 | Format-List
```

通过命令输出的文件 Hash 值，对比 openwrt 下载页给出的 sha256sum 是否一致来判断完整性。

## 第一步 ：开启路由器 SSH 功能

首先登录路由器管理页面，在地址栏中找到并复制 stok 值。

```
http://192.168.31.1/cgi-bin/luci/;stok=这个位置的内容/web/home#router
```

用刚才复制的 stok 值粘贴到下面的链接中，然后浏览器直接访问。

```
http://192.168.31.1/cgi-bin/luci/;stok=刚才复制的stok值/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h%3B%20nvram%20set%20ssh_en%3D1%3B%20nvram%20commit%3B%20sed%20-i%20's%2Fchannel%3D.*%2Fchannel%3D%5C%22debug%5C%22%2Fg'%20%2Fetc%2Finit.d%2Fdropbear%3B%20%2Fetc%2Finit.d%2Fdropbear%20start%3B
```

接下来修改 root 用户的密码为 `admin`。

```
http://192.168.31.1/cgi-bin/luci/;stok=刚才复制的stok值/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h%3B%20echo%20-e%20'admin%5Cnadmin'%20%7C%20passwd%20root%3B
```

如果以上两个链接的页面有显示 `{code:0}` 则代表成功。

## 第二步：刷入 Breed 固件

**（此过程需要联网，无需 cd 到其他目录）**

使用 SSH 终端工具或者 CMD `ssh root@192.168.31.1` 登录到路由器 SSH，进入 SSH 界面后执行以下命令。

```bash
curl -o /tmp/breed.bin -O https://breed.hackpascal.net/breed-mt7621-xiaomi-r3g.bin -k
```

通过 `mtd` 命令刷写进 Bootloader。

```bash
mtd -r write /tmp/breed.bin Bootloader
```

以上两条命令执行成功后，路由器断电，拔开 wan 接口的网线，避免 breed 固件的默认 IP 与光猫的 IP 冲突。

接上电源长按大概 5 秒的 reset 按钮直到指示灯快速闪烁即可。

用网线连接带网口可浏览器上网的机器到路由器的 lan 接口，等待机器获取到 IP 后，浏览器进入 192.168.1.1 管理页面。

在环境变量编辑中添加字段为 `xiaomi.r3g.bootfw` 值为 `2`。*（这一步要设置环境变量，否则无法启动 openwrt ）*

## 第三步：刷入 openwrt

在 Breed 管理页面的固件更新中，闪存布局选 openwrt，上传对应的两个 kernel1 和 rootfs0 文件。

勾上自动重启，开始刷入即可。

## 其余：基本使用设置

### 修改 lan 接口的 IP

上方菜单，Network，Interfaces，点击 lan 接口的 Edit，在 IPv4 address 中修改即可，保存然后 Save & Apply 即可，此时可以连回 wan 接口联网了。

### 更换软件镜像源

上方菜单，System，Software，右边 Configure opkg，把以下内容替换到 /etc/opkg/distfeeds.conf 然后保存。

```
src/gz openwrt_core https://mirrors.aliyun.com/openwrt/releases/23.05.3/targets/ramips/mt7621/packages
src/gz openwrt_base https://mirrors.aliyun.com/openwrt/releases/23.05.3/packages/mipsel_24kc/base
src/gz openwrt_luci https://mirrors.aliyun.com/openwrt/releases/23.05.3/packages/mipsel_24kc/luci
src/gz openwrt_routing https://mirrors.aliyun.com/openwrt/releases/23.05.3/packages/mipsel_24kc/routing
src/gz openwrt_packages https://mirrors.aliyun.com/openwrt/releases/23.05.3/packages/mipsel_24kc/packages
src/gz openwrt_telephony https://mirrors.aliyun.com/openwrt/releases/23.05.3/packages/mipsel_24kc/telephony
```

点击 Update lists 更新软件包。

### 安装中文包

在 Filter 输入 luci-i18n-base-zh-cn，点击 Install 即可。

### 设置无线网络

上方菜单，网络，无线，此时我们可以看到无线概况里有四个项目，标有 `radio0 MediaTek MT7603E 802.11b/g/n` 以下的项目是默认的 2.4G 无线网，而标有 `radio1 MediaTek MT7615E 802.11ac/n` 以下的项目是默认的 5G 无线网。

如果只看见 `radio0 ……` 和 `radio1 ……` 没看见其他项目的话，我们可以点击添加进行手动增加无线网络，具体配置的内容可参考下面表格：（没有提到的配置则保持默认）

| 无线配置     |          | 内容                                                |
| ------------ | -------- | --------------------------------------------------- |
| 工作频率     | 模式     | N [（参考）](https://www.nodeseek.com/post-30419-1) |
|              | 信道     | 视情况而定，与 5G 信道分开即可                      |
|              | 通道宽带 | 40MHz                                               |
| 最大传输功率 |          | 20dBm(100mW)                                        |
| 常规设置     | 模式     | 接入点 AP                                           |
|              | ESSID    | 无线网络的名称，自定                                |
|              | 网络     | 选择 lan 接口                                       |
| 无线安全     | 加密     | WPA2-PSK(强安全性)                                  |
|              | 算法     | 自动                                                |
|              | 密钥     | 无线网络的密码，自定                                |

上面的表是 2.4G 无线网的配置，而 5G 无线网配置差不多，不同的地方是工作频率模式改为 AC，信道与 2.4G 不同即可，通道宽带改为 80MHz 或 160 MHz，ESSID 的话我是在 2.4G 的基础上加了 -5G 这个后缀。

然后保存并应用即可。