荣耀之链论坛

 找回密码
 立即注册
搜索
查看: 1562|回复: 6

R6220折腾记录

[复制链接]

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
发表于 2021-6-8 20:06 | 显示全部楼层 |阅读模式
现在是2021-06-08
我总结一下我买了这个路由器以后的折腾过程吧

############################
首先如果想折腾的玩家必须要了解路由器的启动知识

说一下路由器的启动过程:
通电以后路由器会启动引导区
然后这个引导区再根据reset键是否被按住选择操作
如果没有按住reset键,就引导系统启动
如果按住了reset键,就启动高级功能

那种傻瓜式的路由器用牙签按住reset,然后通电,路由器就不会正常的启动系统,而是执行“恢复出厂设置”这个操作
高档一些的路由器用牙签按住reset,然后通电,路由器就会进入一些特殊界面,可以使用各种功能,比如进行刷固件的操作(甚至可以根据按住reset键的时间长短来执行不同的功能)

一些路由器品牌为了限制用户刷第三方系统会修改引导区,导致不能稳定停留在引导区,这个时候就需要把引导区换成别的

############################
这台路由器的第三方bootloader有2种

最开始是有大神发布了PB-BOOT

现在有另外一个大神开发了BREED
这个是开发BREED的大神
https://www.right.com.cn/forum/thread-161906-1-1.html
这个是BREED下载地址
https://breed.hackpascal.net/

R6220用的BREED是breed-mt7621-r6220.bin

############################
然后我说一下我的折腾过程吧

最开始,我想尝试刷刷其他系统,然后就找了很多教程
刷系统第一步是刷第三方的bootloader,当时用的是PB-BOOT

这台路由器官方固件默认没有开启telnet,需要先开启telnet

############## 下面是开启telnet的方法(我改了路由器的LAN口IP为192.168.11.254)
1.打开有root的telnet权限
使用浏览器打开: http://192.168.11.254/setup.cgi?todo=debug  会看到 Debug Enabled ! 字样。说明已经开启了Telnet连接
2.telnet 192.168.11.254
输入root然后回车,这个时候进入的就是具有管理员权限的界面(如果输入路由器的账号密码进入的是普通权限的界面,普通权限不能进行刷机操作)
3.备份本身的固件
输入命令 cat /proc/mtd显示所有固件。
把固件备份到移动硬盘里面
cd /tmp/mnt/shares/U
dd if=/dev/mtd0 of=/tmp/mnt/shares/U/Bootloader.bin
dd if=/dev/mtd1 of=/tmp/mnt/shares/U/SC-PID.bin
dd if=/dev/mtd2 of=/tmp/mnt/shares/U/Kernel.bin
dd if=/dev/mtd3 of=/tmp/mnt/shares/U/Rootfs.bin
dd if=/dev/mtd4 of=/tmp/mnt/shares/U/English-UI.bin
dd if=/dev/mtd5 of=/tmp/mnt/shares/U/ML1.bin
dd if=/dev/mtd6 of=/tmp/mnt/shares/U/ML2.bin
dd if=/dev/mtd7 of=/tmp/mnt/shares/U/ML3.bin
dd if=/dev/mtd8 of=/tmp/mnt/shares/U/ML4.bin
dd if=/dev/mtd9 of=/tmp/mnt/shares/U/ML5.bin
dd if=/dev/mtd10 of=/tmp/mnt/shares/U/Factory.bin
dd if=/dev/mtd11 of=/tmp/mnt/shares/U/SC-Private-Data.bin
dd if=/dev/mtd12 of=/tmp/mnt/shares/U/POT.bin
dd if=/dev/mtd13 of=/tmp/mnt/shares/U/Traffic-Meter.bin
dd if=/dev/mtd14 of=/tmp/mnt/shares/U/DPF.bin
dd if=/dev/mtd15 of=/tmp/mnt/shares/U/SC-Nvram.bin
dd if=/dev/mtd16 of=/tmp/mnt/shares/U/Ralink-Nvram.bin
dd if=/dev/mtd17 of=/tmp/mnt/shares/U/Ralink-Reserved.bin
dd if=/dev/mtd18 of=/tmp/mnt/shares/U/ML6.bin
dd if=/dev/mtd19 of=/tmp/mnt/shares/U/Upgrade-Flag.bin
dd if=/dev/mtd20 of=/tmp/mnt/shares/U/Reserved-Block3.bin
dd if=/dev/mtd21 of=/tmp/mnt/shares/U/Reserved-Block4.bin
##############
把这些备份留着吧
然后就可以刷入PB-BOOT了

刷入pb-boot
wget http://xdd.co/router/pb-boot-r6220.bin (这个命令是获取pb-boot的文件,目前链接已经失效,没有网络的话可以用U盘)
mtd_write write pb-boot-r6220.bin Bootloader
看到 Unlocking Bootloader ...
       Writing from pb-boot-r6220.bin to Bootloader ...  [w]
说明pb-boot 刷好了,我们已经是不死uboot了。 可以随意折腾固件了。

然后重启路由器,用牙签按住reset键,就会进入pb-boot界面(注意:如果你的系统是win10装了hyper-v,是ping不通192.168.1.1的,需要在hyper-v设置界面删除虚拟交换机才行)

然后在pb-boot界面刷入其他固件就行了

##############
继续说我的折腾过程
我先后刷了LEDE 潘多拉  等多个版本的固件
然后最后刷了OPENWRT用了段时间,然后又刷回官方固件
#######
刷回官方的方法是:
下载这个固件 http://xdd.co/router/r6220_v11034.bin (现在这个下载地址已经失效了,而且现在有breed已经不需要这样刷了)
然后在 pb-boot 界面上传刷新即可
#######
刷回官方以后boot还是pb-boot,导致不能在管理界面更新到官方的最新版
解决方法是:
要在telnet下刷入上面备份的几个文件
需要用到U盘

首先把上面备份的文件全部复制到U盘,然后把U盘插到路由器上
然后执行第一步打开telnet权限
然后telnet连接路由器
然后输入命令cd /mnt/shares/U
ls查看一下
必须要有Bootloader.bin Kernel.bin Rootfs.bin这3个文件
然后输入下面的3个命令
mtd_write write Bootloader.bin Bootloader (这个命令的意思是把bootloader还原为官方的,这条命令执行完毕以后pb-boot就没了)
mtd_write write Kernel.bin Kernel (这个命令我也不知道是什么意思,但是我执行完毕了没问题)
mtd_write write Rootfs.bin Rootf (这个命令估计就是还原到备份的文件系统吧,反正执行完毕没问题)

然后重启路由器
然后路由器就还原到了我们之前备份的样子
这个时候就可以检测更新了,就可以自动更新到最新版了
#######
然后我又用了这个官方固件一段时间,感觉又想折腾,就又刷了OP 19.07.5
这个版本R6220基本可以说是完美使用了,我在这个版本里面折腾过smartdns,折腾过提子

以上就是我买了这个路由器的折腾过程



然后就是今天2021-06-08
我又感觉不刷不舒服斯基,我就先把OP更新到19.07.7,然后用了一会,感觉不行,ping LAN口竟然会又丢包
然后就想试试看官网原版的固件怎么样了,就去官网看了看
官网最新版的固件是R6220-V1.1.0.106_1.0.1
我就想着试试看这个最新版的固件如何,就开始刷了
##############
先刷breed的bootloader
openwrt开启了ssh以后就可以用winscp登录了,然后进putty
查看分区名称 cat /proc/mtd
R6220 刷了OPENWRT 19.07.7以后分区名如下
dev:    size   erasesize  name
mtd0: 00100000 00020000 "u-boot"
mtd1: 00100000 00020000 "SC PID"
mtd2: 00400000 00020000 "kernel"
mtd3: 01c00000 00020000 "ubi"
mtd4: 00100000 00020000 "factory"
mtd5: 03c00000 00020000 "reserved"
然后
mtd write /tmp/breed-mt7621-r6220.bin u-boot
提示Could not open mtd device: u-boot
因为op禁止对bootloader区域进行写入
需要先安装kmod-mtd-rw
安装过程如下:
opkg update (这一步需要路由器能正常上网,如果不行,需要下载kmod-mtd-rw的安装包,拷贝进去安装)
opkg list |grep "mtd" 会发现有kmod-mtd-rw
然后opkg install kmod-mtd-rw
就装好了

然后使用命令
insmod mtd-rw.ko i_want_a_brick=1
(这个命令的作用是载入kmod-mtd-rw 模块,让用户可以写各个分区)
然后mtd write /tmp/breed-mt7621-r6220.bin u-boot 就刷入breed了
(这个命令是openwrt的命令,u-boot是op的bootloader分区的名称,如果想在官方的固件下直接刷breed
命令是mtd_write write breed-mt7621-r6220.bin Bootloader)

然后把电脑的ip设置为192.168.1.2
重启路由器 牙签按住reset键  
ping 192.168.1.1 -t  通了以后就可以松开牙签
然后就可以打开浏览器访问192.168.1.1 就能看到breed界面了

然后在breed下上传官方的固件R6220-V1.1.0.106_1.0.1.img 就行了

这个版本的官方固件竟然在管理界面插广告,还好影响不大
测试了一会,发现没有LAN口的丢包现象了
至于体验还待考验

以上就是我买了路由器的折腾过程了

回复

使用道具 举报

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
 楼主| 发表于 2021-6-8 20:10 | 显示全部楼层
补充一下,我用电脑虚拟机装OP当软路由 然后用刷了OP的路由器作为AP   电脑连接路由器 会发生莫名其妙的问题,比如在给B站上传作品的时候上传带宽是个位数

不知道双OP系统产生了怎么样的火花  

回复 支持 反对

使用道具 举报

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
 楼主| 发表于 2021-6-15 01:13 | 显示全部楼层
我又刷回OP了  21.02.0-rc4  
在breed界面下刷
需要下载
openwrt-21.02.0-rc4-ramips-mt7621-netgear_r6220-squashfs-kernel.bin
openwrt-21.02.0-rc4-ramips-mt7621-netgear_r6220-squashfs-rootfs.bin
打包成一个zip文件当固件刷入就行了




回复 支持 反对

使用道具 举报

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
 楼主| 发表于 2023-4-17 15:09 | 显示全部楼层
2023-04-17刷breed过程
顺便从官方固件刷到op 22.03.4了

1.http://192.168.11.6/setup.cgi?todo=debug  #会看到 Debug Enabled ! 字样。说明已经开启了Telnet连接
2.telnet 192.168.11.6
cd /tmp #必须这样,不然其他目录不可写 wget会提示失败
3.wget http://192.168.11.3/r6220/breed-mt7621-r6220.bin
4.mtd_write write breed-mt7621-r6220.bin Bootloader #这个几乎一瞬间就刷好了
5.reboot  用牙签按着reset 开着ping 192.168.1.1  一旦通了 就松开牙签
6.浏览器访问192.168.1.1
7.先备份,挨个备份吧
8.刷入固件 选择闪存布局 然后挨个选择kernel 和 rootfs  22.03.4
9.5G的wifi带宽选40 默认选择80这个路由器不支持的
回复 支持 反对

使用道具 举报

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
 楼主| 发表于 2023-4-17 15:10 | 显示全部楼层
最后总结一下吧

还是用openwrt吧  目前的功能足够用了,不需要折腾了

原版的固件有时候莫名的卡
回复 支持 反对

使用道具 举报

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
 楼主| 发表于 2024-3-18 00:53 | 显示全部楼层
  1. 这个用户有相同的需求,然后帖子没人回答
  2. https://forum.openwrt.org/t/software-mod-freeing-60mb-reserved-nand-partition-on-netgear-r6220-questions/56536


  3. 这个是官方的教程,但是仅仅只是把预留的空间当作另外一个分区用,用户的主分区还是只有可怜的17.1M
  4. https://openwrt.org/toh/netgear/r6220#make_use_of_reserved_60_mib_partition


  5. 这个帖子介绍给路由器加了个sata接口 接了个HDD 哈哈 太搞了
  6. https://forum.openwrt.org/t/r6220-minipcie-mod/25002/7


  7. 这个帖子也是,有相同的需求,但是没解决
  8. https://forum.openwrt.org/t/netgear-r6220-use-of-reserved-60-mib-partition/83213


  9. 这个帖子是需要用户自己编译固件,在编译的时候改参数的,太麻烦了
  10. https://www.right.com.cn/FORUM/thread-144853-1-1.html




  11. 这个帖子是另外一个路由器,也是128M的闪存,也是有预留  里面的回答有一些参考
  12. https://forum.openwrt.org/t/ipq806x-r7800-how-use-entire-area/6862
  13. 这个帖子是上面这个帖子里面回答的一个链接
  14. https://forum.openwrt.org/t/netgear-r7800-only-19mb-flash-available/1115/3
  15. 这个帖子就是操作了,思路貌似是先备份,然后删掉后面的分区,把分区容量合并到根分区 最后重新刷入
  16. https://eko-one-pl.translate.goog/forum/viewtopic.php?id=15130&_x_tr_sl=pl&_x_tr_tl=en&_x_tr_hl=pl



  17. 按照上面那个帖子,我整理一下思路

  18. #########################################################################################分区信息
  19. root@OpenWrt:~# mount
  20. /dev/root on /rom type squashfs (ro,relatime,errors=continue)
  21. proc on /proc type proc (rw,nosuid,nodev,noexec,noatime)
  22. sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,noatime)
  23. cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
  24. tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noatime)
  25. /dev/ubi0_1 on /overlay type ubifs (rw,noatime,assert=read-only,ubi=0,vol=1)
  26. overlayfs:/overlay on / type overlay (rw,noatime,lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work)
  27. tmpfs on /dev type tmpfs (rw,nosuid,noexec,noatime,size=512k,mode=755)
  28. devpts on /dev/pts type devpts (rw,nosuid,noexec,noatime,mode=600,ptmxmode=000)
  29. debugfs on /sys/kernel/debug type debugfs (rw,noatime)
  30. bpffs on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,noatime,mode=700)
  31. root@OpenWrt:~# df -h
  32. Filesystem                Size      Used Available Use% Mounted on
  33. /dev/root                 3.8M      3.8M         0 100% /rom
  34. tmpfs                    58.9M    216.0K     58.7M   0% /tmp
  35. /dev/ubi0_1              17.1M      3.5M     12.8M  21% /overlay
  36. overlayfs:/overlay       17.1M      3.5M     12.8M  21% /
  37. tmpfs                   512.0K         0    512.0K   0% /dev
  38. root@OpenWrt:~# cat /proc/mtd
  39. dev:    size   erasesize  name
  40. mtd0: 00100000 00020000 "u-boot"
  41. mtd1: 00100000 00020000 "SC PID"
  42. mtd2: 00400000 00020000 "kernel"
  43. mtd3: 01c00000 00020000 "ubi"
  44. mtd4: 00100000 00020000 "factory"
  45. mtd5: 03c00000 00020000 "reserved"
  46. root@OpenWrt:~# cat  /proc/partitions
  47. major minor  #blocks  name

  48.   31        0       1024 mtdblock0
  49.   31        1       1024 mtdblock1
  50.   31        2       4096 mtdblock2
  51.   31        3      28672 mtdblock3
  52.   31        4       1024 mtdblock4
  53.   31        5      61440 mtdblock5
  54. 254        0       3844 ubiblock0_0

  55. #########################################################################################
  56. 思路是这样的:
  57. 先备份mtd3
  58. 然后把mtd4和mtd5都删掉
  59. 删掉mtd4的后果貌似就是不能恢复出厂设置了 (应该没多大关系吧,恢复出厂这个操作我直接重新刷机就行了)


  60. 备份
  61. dd if=/dev/mtd3 of=/tmp/mtd3.backup
  62. 然后把备份的文件下载到电脑里面  然后删除tmp目录下的文件 不然路由器内存不够用了
  63. dd if=/dev/mtd4 of=/tmp/mtd4.backup


  64. opkg install kmod-mtd-rw                #安装这个包
  65. insmod mtd-rw i_want_a_brick=1        #开启所有分区可写 后面的很有意思,我想要一块砖 哈哈
  66. ubiattach -p /dev/mtd5                #attach /dev/mtd0 to UBI  把这个分区附加到ubi
  67. ubimkvol /dev/ubi1 -N database -m        # Example: ubimkvol /dev/ubi0 -s 20MiB -N config_data #-create a 20 Megabytes volume named "config_data" on UBI device /dev/ubi0.  创建一个最大的volume 命名为database
  68. ubiblock -c /dev/ubi1_0                #create block on top of a volume 创建block  -r是删除block 估计后面会用到
  69. mkdir /tmp/ubi1                        #
  70. mount -t ubifs /dev/ubi1_0 /tmp/ubi1        #


  71. mtd -h #查看怎么操作mtd
  72. 貌似mtd就是一个写入的工具 没法删除mtd分区


  73. ubidetach -d删除 -p卸载
  74. ubiformat 格式化

  75. opkg update
  76. opkg install cfdisk  #这个不会用

  77. opkg install fdisk       

  78. fdisk -l
  79. 发现这TM是有6个磁盘
  80. cfdisk -h
  81. 发现这个也是一样的效果,都是用于linux里面的
  82. 而路由器的磁盘不是在这里定义的

  83. 看来只能终极大法,自己编译openwrt镜像
  84. 编译的时候自定义空间,参照上面那个恩山的帖子










  85. 自己编译的话,用docker吧
  86. https://hub.docker.com/r/openwrt/imagebuilder
  87. https://imciel.com/2021/03/23/build-openwrt-packages-with-docker-openwrt-sdk/

  88. 这个教程可以看看
  89. https://www.bilibili.com/video/BV16E411g7oH/?vd_source=43328c480102e390b19318f27bd4ea65


  90. docker run --rm -v /root/docker/openwrt/bin:/home/build/openwrt/bin -it openwrt/imagebuilder:ramips-mt7621-23.05-SNAPSHOT
  91. 这就直接进入到了docker的命令行界面了

  92. 进入构建目录
  93. cd builder/

  94. 然后查看
  95. make info |more

  96. 找到R6220的信息
  97. netgear_r6220:
  98.     NETGEAR R6220
  99.     Packages: kmod-mt7603 kmod-usb3 kmod-usb-ledtrig-usbport -uboot-envtools kmod-mt76x2
  100.     hasImageMetadata: 1
  101.     SupportedDevices: netgear,r6220 r6220

  102. 修改分区信息
  103. https://forum.openwrt.org/t/tutorial-build-custom-netgear-r7800-firmware-for-a-larger-flash-size-root-space/5989
  104. https://www.right.com.cn/forum/thread-1319503-1-1.html
  105. 这个恩山的帖子有

  106. cat /builder/target/linux/ramips/image/mt7621.mk
  107. 这个文件里面有定义r6220的镜像空间大小 28672k 把这个数值改为88672k试试

  108. define Device/netgear_r6220
  109.   $(Device/netgear_sercomm_nand)
  110.   DEVICE_MODEL := R6220
  111.   SERCOMM_HWNAME := R6220
  112.   SERCOMM_HWID := AYA
  113.   SERCOMM_HWVER := A001
  114.   SERCOMM_SWVER := 0x0086
  115.   IMAGE_SIZE := 28672k
  116.   DEVICE_PACKAGES += kmod-mt76x2
  117.   SUPPORTED_DEVICES += r6220
  118. endef
  119. TARGET_DEVICES += netgear_r6220


  120. docker cp 46b0cbab2eaf:/builder/target/linux/ramips/image/mt7621.mk /root/docker/openwrt/
  121. 然后用notepad++修改
  122. 把镜像大小改为88672k

  123. docker cp 本地路径 容器id或者容器名字:容器内路径
  124. docker cp /root/docker/openwrt/mt7621.mk 46b0cbab2eaf:/builder/target/linux/ramips/image/mt7621.mk


  125. 开始构建
  126. make image PROFILE=netgear_r6220   # packages=""  #后面的packges估计可以不要,毕竟我不需要安装额外软件包,我只需要改分区大小


  127. 最后把构建好的bin文件复制出来 刷到路由器里面
  128. ls /builder/bin/targets/ramips/mt7621
  129. 可以看到下面的文件
  130. buildbot@46b0cbab2eaf:~/bin/targets/ramips/mt7621$ ls
  131. openwrt-23.05-snapshot-r23800-100a5606d6-ramips-mt7621-netgear_r6220.manifest              openwrt-23.05-snapshot-r23800-100a5606d6-ramips-mt7621-netgear_r6220-squashfs-rootfs.bin      sha256sums
  132. openwrt-23.05-snapshot-r23800-100a5606d6-ramips-mt7621-netgear_r6220-squashfs-factory.img  openwrt-23.05-snapshot-r23800-100a5606d6-ramips-mt7621-netgear_r6220-squashfs-sysupgrade.bin
  133. openwrt-23.05-snapshot-r23800-100a5606d6-ramips-mt7621-netgear_r6220-squashfs-kernel.bin   profiles.json

  134. 复制出来
  135. docker cp 46b0cbab2eaf:/builder/bin/targets/ramips/mt7621/ /root/docker/openwrt/

  136. 然后把固件下载到电脑里面
  137. openwrt-23.05-snapshot-r23800-100a5606d6-ramips-mt7621-netgear_r6220-squashfs-sysupgrade.bin

  138. 最后在op网页刷入这个包

  139. 我晕,刷成功了,但是用户空间还是没变
  140. 然后貌似我上面编译的时候packages没有添加任何包  路由器没有网页访问了 但是主体功能都有

  141. 算了,不折腾了
复制代码

回复 支持 反对

使用道具 举报

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
 楼主| 发表于 2025-6-14 16:24 | 显示全部楼层
  1. opkg install kmod-mtd-rw
  2. insmod mtd-rw i_want_a_brick=1
  3. ubiattach -p /dev/mtd5
  4. ubimkvol /dev/ubi1 -N database -m
  5. ubiblock -c /dev/ubi1_0
  6. mkdir /tmp/ubi1
  7. mount -t ubifs /dev/ubi1_0 /tmp/ubi1
复制代码
利用剩余的60M空间

  1. vi /etc/init.d/ubimount


  2. #!/bin/sh /etc/rc.common
  3. # Copyright (C) 2006-2011 OpenWrt.org

  4. START=10
  5. STOP=98


  6. boot() {

  7.         insmod mtd-rw i_want_a_brick=1
  8.         ubiattach -p /dev/mtd5
  9.         mkdir /tmp/ubi1
  10.         mount -t ubifs /dev/ubi1_0 /tmp/ubi1

  11. }



  12. chmod +x /etc/init.d/ubimount
  13. /etc/init.d/ubimount enable
复制代码


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

荣耀之链

GMT+8, 2025-6-18 07:10 , Processed in 0.016127 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表