路由+4G模块【5】无法挂载/overlay

本系列文章只是研究过程的备忘录,当中提及的步骤只是一些当下的总结以及尝试,不能保证正确。项目完成后,也就是系列文章结束后,会有归纳总结,当中会提出相对靠谱的解决方案。

把LEDE固件刷入了R3路由,也初步了解了模块的使用,接下来就是安装kmod-usb-rndis包了。但很快就发现问题了,路由显示没有空间安装软件包。
Screen Shot 2021-03-15 at 9.09.48 PM.png

研究了好久,也尝试了各种办法,发现尽管固件刷入了,但似乎/overlay并没有加载。发现这个问题并不顺利。因为思路都是往,'没有空间','给/overlay扩容'之类的方向思考。过程中反复修改固件的配置,编译,刷入,非常繁琐。但问题还是没有解决。

固件页面和后台都显示没有挂载overlay

Screen Shot 2021-03-15 at 9.10.29 PM.png
Screen Shot 2021-03-15 at 9.11.47 PM.png

过程大致有以下总结以及尝试:

  • 编入在固件配置中加入对镜像加入ext4,并设置镜像大小 (Target Image > ext4 > Root filesystem partition size (in MB) (New)) 。并不能解决问题,他只是生成一个ext的镜像,而R3作为嵌入式设备并不支持。

  • 研究给overlay扩容。研究overlay的作用以及相关技术知识。研究过程感觉扩容的思路不行,因为根本没有overlay的挂载点。这方面的尝试暂时搁置。

  • 尝试分区。首先不能通过固件安装fdisk之类的工具,因为根本没有空间安装。于是只能通过修改固件配置的方式安装。在尝试分区的时候发现,嵌入式设备并没有分区,而是用MTD的方式管理系统。感觉分区的思路有问题,没有执行下去。

  • 执行df -h发现只有两个挂载点/dev/tmp,/dev/root,没有看到/overlay。后面对比软路由中的LDED的挂载点情况,发现我自己编译出来的固件的挂载点只有2个,似乎太少了。并不清楚是不是正常。

  • 计划绕过pb-boot,通过直接写入MTD的方式刷入LEDE固件,但目前仍未执行。而且感觉行不通,查了一下MTD (cat /proc/mtd),当前固件中好像并没有相应的挂载点(kernel1,rootfs0)。

  • 在LEDE项目的issue中发现有用户反应固件有无法挂载overlay的bug,不过研究了一下,说的情况都是针对软路由x86系统的情况。解决办法是,在固件编译设置中加入kmod-fs-f2fs(Kernel modules > Filesystems )。尝试了该方法,并没有解决问题。这里有一个思路,f2fs针对的x86的情况,这看起来是文件系统的转换库。会不会嵌入式系统的情况也是类似原因导致的,有对应的库。这点目前还没有尝试。此外,如果真的是因为overlay挂载失败导致的,应该有log,可以尝试看看log有没有相关报错。这点到目前也还没有执行。

  • 重新刷入潘多拉固件。我思考,LEDE的固件只有两个挂载点,会不会是它自身的特殊,或者是嵌入式平台的特殊。于是刷入潘多拉固件看看该固件的情况。发现潘多拉有7个挂载点。又对比了x86的情况,有10个挂载点。两者都有overlay。这看起来更加坑定是overlay挂载失败了。

最终并没有解决overlay的挂载问题。先把该问题放下,因为项目最终的目的是要在软路由上添加4G模块,而我软路由上并没有这个问题。我直接尝试在潘多拉的固件上安装kmod-usb-rndis,并且接入4G模块。所幸识别成功!上图。

Screen Shot 2021-03-15 at 8.46.53 AM.png

文章先到这里,后面尝试对网络进行配置修改,接下来就是让路由接入4G网络。

======
2021-03-14

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容