我这个斐讯k2p a1
路由器也有8年历史了,很久很久以前我想体验一下路由器刷机,于是买了一台在家里作为主路由器,但是后边又因为各种原因忘了这件事。直到几天前休息时候把在我学校用的路由器替换了k2p,于是它退役了,现在我可以名正言顺地给它刷机了。
买的时候rom已经是官改版本,也已经装了breed,因此刷openwrt比较简单。
成功刷机后我迫不及待地进入了openwrt的web界面,发现设备可用的存储空间/dev/mtdblock7
只有4M
左右,实在太小了,基本装不了什么东西。经过搜索后发现设备上保留了USB2.0的触点,技术上可以引出来usb接口,然后将usb设备直接挂载到/
,我不就有很大的存储空间了吗?正好我有焊接设备和USB母头,因此打算尝试一下这个想法。
硬件部分
我跟随的教程是这个:https://www.right.com.cn/forum/thread-218768-1-1.html。整个过程还是不太美好的,作为一个纯写软件的人, 在阵亡了两个usb母头后,才勉强熟练地弄出来了个接线没有问题、usb母头塑料没有被我融化的接了线的usb母头。
接下来是把另一端线焊在主板上,不得不说主板上的触点是真小,而且数据传输的那两个触点旁边还有一堆非常小的元件,很容易忽略掉然后焊接短路或者碰掉元件之类的。所幸最终焊接成功了。接下来给他插上一块能用的u盘,然后准备软件部分操作。注意这个u盘应该小一点,就像上文的教程中提到的那种样式的,如果外壳导电还要缠上胶带,从而便于藏在主板上层。
硬件最终效果
软件部分
我安装的是官方版本的openwrt 24.10
,默认没有usb相关的驱动,需要手动安装配置,根据测试和以下两篇文章:
- https://openwrt.org/docs/guide-user/storage/usb-drives-quickstart
- https://openwrt.org/docs/guide-user/additional-software/extroot_configuration
要执行opkg update && opkg install block-mount e2fsprogs kmod-usb-storage kmod-usb3 kmod-fs-ext4
安装依赖。在安装成功后执行ls /dev/sd*
应该会出现一个sda
设备。
根据网上提到的信息,对于usb2.0似乎直接安装kmod-usb2
就行,而不用kmod-usb3
,但是安装kmod-usb2
之后在我的设备上无法找到usb设备,因此还是跟着官方教程安装kmod-usb3
比较稳妥。
在确保/dev/sda
存在且为我们的u盘的情况下执行extroot_configuration文章中的指令
1 |
|
接下来可以通过reboot
重启。值得注意的是重启后原来的根目录会被挂载到/rwm
。对于在执行过程中失败,然后自己进行了一些操作导致根目录和u盘目录的状态不一致,又不小心重启,导致根目录变为u盘的情况下,可以通过先执行mount /dev/sda1 /mnt
挂载u盘分区,再执行tar -C /rwm -cvf - . | tar -C /mnt -xf -
来重新传输一遍数据以同步状态。
挂载USB到根目录的最终效果
重启后,不出意外的话,效果如图
其他
这个设备根本跑不动大一点的openwrt拓展程序,因此最好的办法还是仅作为一个无线AP:上级路由器的lan接到此路由器的lan,由于此路由器所有的lan和无线ap默认进行了桥接,只要关闭了此路由器的dhcp服务,上级路由器的dhcp服务可以正常服务接入此路由器无线AP的设备。