怎么修改嵌入式设备里只读目录下的文件
Posted 代二毛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么修改嵌入式设备里只读目录下的文件相关的知识,希望对你有一定的参考价值。
前言
在一个定制项目中,要集成一个人脸识别的算法,算法是客户的,硬件平台是自己公司的。我按照客户给的SDK开发包,将他们的算法集成到我们的设备里后,程序在调用客户给的算法接口时挂掉,而且是在算法接口里挂掉的。在和客户那边的研发人员沟通确认后,我调用函数时的传参是没有问题的,问题出在他们的函数内部,需要他们去定位。于是我把打包好的程序发给了对方调试,对方提出调试时需要动态的替换他们的算法库(是.so库),发现算法库在的那个目录是只读的,没法修改,询问我们能不能动态的修改。刚开始我也不知道怎么能动态修改,因为文件系统已经规定了/usr/lib是可读的,程序也是给到了客户,代码已经写死,除非从源码入手,修改该目录的权限,再重新打包程序升级,不然我也不知道怎么办。后来询问了公司前辈,知道了可以利用挂载的方式来调试。
利用挂载来实现临时修改
这里的修改并没有实际修改设备/usr/lib目录下的文件,而是将/usr/lib目录利用mount命令给挂载到Windows目录下,用Windows下的指定目录去替换/usr/lib目录。此时设备的/usr/lib目录下的文件就是Windows里挂载目录里的文件。我们先把/usr/lib下的文件拷贝一份代Windows系统的挂载目录下,再把需要替换替换的库给替换掉。然后把设备设置成手动启动,先把/usr/lib目录挂载到Windows的挂载目录,然后启动,此时设备的/usr/lib目录里的库,就是Windows挂载目录里的库。如果下次启动时不挂载,那设备运行的库还是原来的库,此方法只是用于调试,临时将自己修改的库替换进去测功能,要想真正的替换掉需要重新打包升级。具体如何将/usr/lib目录挂载到Windows下,可以参考博客《通过NFS服务器将设备目录挂载到Windows目录》。
以上是关于怎么修改嵌入式设备里只读目录下的文件的主要内容,如果未能解决你的问题,请参考以下文章
idea java文件只读状态 不可编辑怎么修改回可编辑状态…啊…各位亲……