怎么修改嵌入式设备里只读目录下的文件

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文件只读状态 不可编辑怎么修改回可编辑状态…啊…各位亲……

linux下usr下的目录,怎么解决usr内存不足的问题?我要安装一个小程序

Linux /dev下各种文件是何时挂载,怎么挂载的?

让linux下的用户只有只读权限

如何实现嵌入式Linux下USB摄像头视频采集

linux下的各个目录