更新
2023年4月14日
第一次接触openwrt用的都是别人二次编译过的固件,在ac2100上很卡,功能略多,这次使用原生的固件,手动安装自己需要的服务,诸如openxxxxx。
本篇文章不能作为教程使用,仅记录过程
注意
注意:将路由器和电脑通过网线连接,避免后续不必要的问题
写入breed之后,断电重启之后,查看电脑获取的IP地址及网关进入breed或者openwrt网页登录界面。
windows中查看本机网卡IP地址
ipconfig /all
找到对应的网卡的IP就行
写入breed固件系统
路由器固件降级
将路由器版本降级为2.0.722
下载地址:
修改完成之后重新连接WiFi,再登录
降级完成
通过注入获取登录ssh登录
- 正常打开路由器登录,将浏览器栏中的stok后面的值记录下来,后面使用
http://192.168.31.1/cgi-bin/luci/;stok=bad54/web/setting/upgrade
- 注入,将下面的链接输入到浏览器中,
<stock>
替换为自己的stock值
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=42b7f49e3ba979b264bfba152416c1f4/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=-h%3B%20echo%20-e%20'admin%5Cnadmin'%20%7C%20passwd%20root%3B
等待10分钟左右重启路由器
用支持ftp的远程软件,诸如xshell,MobaXterm等都可以
登录成功
检查坏块
root@XiaoQiang:/# dmesg | grep NAND
[ 2.940000] # MTK NAND # : Use HW ECC
[ 2.950000] NAND ID [C8 D1 80 95 40, 00809540]
[ 2.950000] NAND ECC: Controller
[ 2.970000] NAND device: Manufacturer ID: 0xc8, Chip ID: 0xd1 (ESMT NAND 128MiB 3,3V 8-bit), 128MiB, page size: 2048, OOB size: 64
[ 2.980000] [NAND]select ecc bit:4, sparesize :64 spare_per_sector=16
[ 3.220000] Creating 14 MTD partitions on "MT7621-NAND":
root@XiaoQiang:/# dmesg | grep '[B|b]ad.*block'
[ 2.980000] Scanning device for bad blocks
root@XiaoQiang:/# dmesg | grep eraseblock
查看当前分区信息
root@XiaoQiang:/# cat /proc/mtd
dev: size erasesize name
mtd0: 07f80000 00020000 "ALL"
mtd1: 00080000 00020000 "Bootloader"
mtd2: 00040000 00020000 "Config"
mtd3: 00040000 00020000 "Bdata"
mtd4: 00040000 00020000 "Factory"
mtd5: 00040000 00020000 "crash"
mtd6: 00040000 00020000 "crash_syslog"
mtd7: 00040000 00020000 "cfg_bak"
mtd8: 00400000 00020000 "kernel0"
mtd9: 00400000 00020000 "kernel1"
mtd10: 01a00000 00020000 "rootfs0"
mtd11: 01a00000 00020000 "rootfs1"
mtd12: 02600000 00020000 "overlay"
mtd13: 01b80000 00020000 "obr"
mtd14: 00c1c000 0001f000 "ubi_rootfs"
mtd15: 021e8000 0001f000 "data"
下载breed
https://breed.hackpascal.net/
文件名:breed-mt7621-xiaomi-r3g.bin
使用WiFi连接的话写入openwrt时候会断开
可以看路由器上面的灯蓝色橘色一起闪烁,然后只有蓝色闪烁。代表成功。
root@XiaoQiang:/tmp# mtd -r write /tmp/breed-mt7621-xiaomi-r3g.bin Bootloader
Unlocking Bootloader ...
Writing from /tmp/breed-mt7621-xiaomi-r3g.bin to Bootloader ...
Rebooting ...
Connection closing...Socket close.
Connection closed by foreign host.
Disconnected from remote host(miwifi) at 19:45:22.
参考恩山论坛帖子:
https://www.right.com.cn/forum/thread-4054150-1-1.html
写入原生openwrt
下载
https://firmware-selector.openwrt.org/?version=21.02.1&target=ramips%2Fmt7621&id=xiaomi_mi-router-ac2100
较新版本
https://firmware-selector.openwrt.org/?version=SNAPSHOT&target=ramips%2Fmt7621&id=xiaomi_mi-router-ac2100
breed控制台中固件更新
写入其他版本的openwrt
通过在官方固件的基础上写入其他版本的openwrt,也可以通过breed固件直接写入openwrt,
忽略错误提示
openwrt使用命令记录
重启网络服务
root@MiRouter:/etc/config# /etc/init.d/network restart
Lan的dns配置
root@MiRouter:/etc/config# cat /etc/config/dhcp
config dnsmasq
option domainneeded '1'
option boguspriv '1'
option filterwin2k '0'
option localise_queries '1'
option rebind_protection '1'
option rebind_localhost '1'
option local '/lan/'
option domain 'lan'
option expandhosts '1'
option nonegcache '0'
option authoritative '1'
option readethers '1'
option leasefile '/tmp/dhcp.leases'
option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
option nonwildcard '1'
option localservice '1'
option ednspacket_max '1232'
option filter_aaaa '0'
option dns_redirect '1'
option cachesize '1500'
option port '53'
config dhcp 'lan'
option interface 'lan'
option start '100'
option limit '150'
option leasetime '12h'
option dhcpv4 'server'
option ra_slaac '1'
list ra_flags 'managed-config'
list ra_flags 'other-config'
option force '1'
option ra 'hybrid'
option ndp 'hybrid'
option dhcpv6 'hybrid'
list dhcp_option 'xxx.xx.xx.xxx,223.5.5.5' # 配置了一个公共dns和一个地方dns,多个dns中间逗号隔开
option ra_management '1'
config dhcp 'wan'
option interface 'wan'
option ignore '1'
config odhcpd 'odhcpd'
option maindhcp '0'
option leasefile '/tmp/hosts/odhcpd'
option leasetrigger '/usr/sbin/odhcpd-update'
option loglevel '4'
自行编译篇
在使用了一波别人写好的openwrt之后,尝试一下自行编译openwrt,