|

楼主 |
发表于 2024-3-18 00:53
|
显示全部楼层
- 这个用户有相同的需求,然后帖子没人回答
- https://forum.openwrt.org/t/software-mod-freeing-60mb-reserved-nand-partition-on-netgear-r6220-questions/56536
- 这个是官方的教程,但是仅仅只是把预留的空间当作另外一个分区用,用户的主分区还是只有可怜的17.1M
- https://openwrt.org/toh/netgear/r6220#make_use_of_reserved_60_mib_partition
- 这个帖子介绍给路由器加了个sata接口 接了个HDD 哈哈 太搞了
- https://forum.openwrt.org/t/r6220-minipcie-mod/25002/7
- 这个帖子也是,有相同的需求,但是没解决
- https://forum.openwrt.org/t/netgear-r6220-use-of-reserved-60-mib-partition/83213
- 这个帖子是需要用户自己编译固件,在编译的时候改参数的,太麻烦了
- https://www.right.com.cn/FORUM/thread-144853-1-1.html
- 这个帖子是另外一个路由器,也是128M的闪存,也是有预留 里面的回答有一些参考
- https://forum.openwrt.org/t/ipq806x-r7800-how-use-entire-area/6862
- 这个帖子是上面这个帖子里面回答的一个链接
- https://forum.openwrt.org/t/netgear-r7800-only-19mb-flash-available/1115/3
- 这个帖子就是操作了,思路貌似是先备份,然后删掉后面的分区,把分区容量合并到根分区 最后重新刷入
- https://eko-one-pl.translate.goog/forum/viewtopic.php?id=15130&_x_tr_sl=pl&_x_tr_tl=en&_x_tr_hl=pl
- 按照上面那个帖子,我整理一下思路
- #########################################################################################分区信息
- root@OpenWrt:~# mount
- /dev/root on /rom type squashfs (ro,relatime,errors=continue)
- proc on /proc type proc (rw,nosuid,nodev,noexec,noatime)
- sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,noatime)
- cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
- tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noatime)
- /dev/ubi0_1 on /overlay type ubifs (rw,noatime,assert=read-only,ubi=0,vol=1)
- overlayfs:/overlay on / type overlay (rw,noatime,lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work)
- tmpfs on /dev type tmpfs (rw,nosuid,noexec,noatime,size=512k,mode=755)
- devpts on /dev/pts type devpts (rw,nosuid,noexec,noatime,mode=600,ptmxmode=000)
- debugfs on /sys/kernel/debug type debugfs (rw,noatime)
- bpffs on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,noatime,mode=700)
- root@OpenWrt:~# df -h
- Filesystem Size Used Available Use% Mounted on
- /dev/root 3.8M 3.8M 0 100% /rom
- tmpfs 58.9M 216.0K 58.7M 0% /tmp
- /dev/ubi0_1 17.1M 3.5M 12.8M 21% /overlay
- overlayfs:/overlay 17.1M 3.5M 12.8M 21% /
- tmpfs 512.0K 0 512.0K 0% /dev
- root@OpenWrt:~# cat /proc/mtd
- 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"
- root@OpenWrt:~# cat /proc/partitions
- major minor #blocks name
- 31 0 1024 mtdblock0
- 31 1 1024 mtdblock1
- 31 2 4096 mtdblock2
- 31 3 28672 mtdblock3
- 31 4 1024 mtdblock4
- 31 5 61440 mtdblock5
- 254 0 3844 ubiblock0_0
- #########################################################################################
- 思路是这样的:
- 先备份mtd3
- 然后把mtd4和mtd5都删掉
- 删掉mtd4的后果貌似就是不能恢复出厂设置了 (应该没多大关系吧,恢复出厂这个操作我直接重新刷机就行了)
- 备份
- dd if=/dev/mtd3 of=/tmp/mtd3.backup
- 然后把备份的文件下载到电脑里面 然后删除tmp目录下的文件 不然路由器内存不够用了
- dd if=/dev/mtd4 of=/tmp/mtd4.backup
- opkg install kmod-mtd-rw #安装这个包
- insmod mtd-rw i_want_a_brick=1 #开启所有分区可写 后面的很有意思,我想要一块砖 哈哈
- ubiattach -p /dev/mtd5 #attach /dev/mtd0 to UBI 把这个分区附加到ubi
- 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
- ubiblock -c /dev/ubi1_0 #create block on top of a volume 创建block -r是删除block 估计后面会用到
- mkdir /tmp/ubi1 #
- mount -t ubifs /dev/ubi1_0 /tmp/ubi1 #
- mtd -h #查看怎么操作mtd
- 貌似mtd就是一个写入的工具 没法删除mtd分区
- ubidetach -d删除 -p卸载
- ubiformat 格式化
- opkg update
- opkg install cfdisk #这个不会用
- opkg install fdisk
- fdisk -l
- 发现这TM是有6个磁盘
- cfdisk -h
- 发现这个也是一样的效果,都是用于linux里面的
- 而路由器的磁盘不是在这里定义的
- 看来只能终极大法,自己编译openwrt镜像
- 编译的时候自定义空间,参照上面那个恩山的帖子
- 自己编译的话,用docker吧
- https://hub.docker.com/r/openwrt/imagebuilder
- https://imciel.com/2021/03/23/build-openwrt-packages-with-docker-openwrt-sdk/
- 这个教程可以看看
- https://www.bilibili.com/video/BV16E411g7oH/?vd_source=43328c480102e390b19318f27bd4ea65
- docker run --rm -v /root/docker/openwrt/bin:/home/build/openwrt/bin -it openwrt/imagebuilder:ramips-mt7621-23.05-SNAPSHOT
- 这就直接进入到了docker的命令行界面了
- 进入构建目录
- cd builder/
- 然后查看
- make info |more
- 找到R6220的信息
- netgear_r6220:
- NETGEAR R6220
- Packages: kmod-mt7603 kmod-usb3 kmod-usb-ledtrig-usbport -uboot-envtools kmod-mt76x2
- hasImageMetadata: 1
- SupportedDevices: netgear,r6220 r6220
- 修改分区信息
- https://forum.openwrt.org/t/tutorial-build-custom-netgear-r7800-firmware-for-a-larger-flash-size-root-space/5989
- https://www.right.com.cn/forum/thread-1319503-1-1.html
- 这个恩山的帖子有
- cat /builder/target/linux/ramips/image/mt7621.mk
- 这个文件里面有定义r6220的镜像空间大小 28672k 把这个数值改为88672k试试
- define Device/netgear_r6220
- $(Device/netgear_sercomm_nand)
- DEVICE_MODEL := R6220
- SERCOMM_HWNAME := R6220
- SERCOMM_HWID := AYA
- SERCOMM_HWVER := A001
- SERCOMM_SWVER := 0x0086
- IMAGE_SIZE := 28672k
- DEVICE_PACKAGES += kmod-mt76x2
- SUPPORTED_DEVICES += r6220
- endef
- TARGET_DEVICES += netgear_r6220
- docker cp 46b0cbab2eaf:/builder/target/linux/ramips/image/mt7621.mk /root/docker/openwrt/
- 然后用notepad++修改
- 把镜像大小改为88672k
- docker cp 本地路径 容器id或者容器名字:容器内路径
- docker cp /root/docker/openwrt/mt7621.mk 46b0cbab2eaf:/builder/target/linux/ramips/image/mt7621.mk
- 开始构建
- make image PROFILE=netgear_r6220 # packages="" #后面的packges估计可以不要,毕竟我不需要安装额外软件包,我只需要改分区大小
- 最后把构建好的bin文件复制出来 刷到路由器里面
- ls /builder/bin/targets/ramips/mt7621
- 可以看到下面的文件
- buildbot@46b0cbab2eaf:~/bin/targets/ramips/mt7621$ ls
- 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
- 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
- openwrt-23.05-snapshot-r23800-100a5606d6-ramips-mt7621-netgear_r6220-squashfs-kernel.bin profiles.json
- 复制出来
- docker cp 46b0cbab2eaf:/builder/bin/targets/ramips/mt7621/ /root/docker/openwrt/
- 然后把固件下载到电脑里面
- openwrt-23.05-snapshot-r23800-100a5606d6-ramips-mt7621-netgear_r6220-squashfs-sysupgrade.bin
- 最后在op网页刷入这个包
- 我晕,刷成功了,但是用户空间还是没变
- 然后貌似我上面编译的时候packages没有添加任何包 路由器没有网页访问了 但是主体功能都有
- 算了,不折腾了
复制代码
|
|