

技术贴 | 教你如何在Ubuntu保留文件系统
source link: https://www.eefocus.com/embedded/526080
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

在Ubuntu系统的嵌入式设备开发过程中,保留文件系统或者说备份当前开发板镜像的需求在不断增加。
比如Ubuntu文件系统需要安装库文件的话直接使用apt-get工具就可以下载,但由于需要下载的核心板较多,比较费时间,这时需要将安装好库的文件系统打包出来,或者做成一个新的镜像,用于烧录到其他核心板,如果将库的源码交叉编译再放入到文件系统的源码中重新再源码打包一个镜像比较麻烦,而且交叉编译过程中可能存在一些问题。
今天飞凌小编就通过OK3399-C开发板针对以上问题来为各位工程师小伙伴介绍相应的解决方法。
1、解决思路
基于Linux下一切皆文件的思想,开发板启动后进行的一系列操作都会以文件的形式保留在文件系统中,而RK3399处理器的Ubuntu系统提供了文件系统镜像ubuntu.img用来编译生成update.img。
因此我们需要一个方法使OK3399-C开发板中的文件系统和ubuntu.img中的内容保持一致,这样编译生成的update.img就包含了当前开发板中所配置的环境,方便用来备份或者批量部署。
2、解决方法
其实飞凌嵌入式的官方论坛知识库之前已经发表了两个可以实现的解决方法,这里不再赘述,只做简要说明:
请选用PC端进入论坛:http://bbs.witech.com.cn/portal.php?mod=view&aid=530
该方法是将ubuntu.img文件copy到开发板中,通过mount命令挂载后复制当前开发板中的内容后,再将ubuntu.img转到开发环境进行编译,这种方法最为简单粗暴容易理解,但很容易因为操作者的疏忽而导致复制不完全。
(在开发环境模拟开发板挂载ubuntu.img)
请选用PC端进入论坛:http://bbs.witech.com.cn/portal.php?mod=view&aid=605
该方法直接将ubuntu.img文件在开发环境中模拟开发板的环境进行apt-get等操作,可以类比理解如下:
在PC端的VM虚拟机里运行Ubuntu系统
在Ubuntu中的qemu虚拟机里运行ubuntu.img系统
这个方法比较符合逻辑且操作方便,但需要再将已验证的操作在qemu中再执行一次,如果开发周期较长,可能有些在开发板安装的库文件反而在qemu中没有安装导致问题出现。
通过rsync同步两个文件系统中的内容,做到实时更新、同步。本文将着重介绍并实操第三种方法。
rsync的目的是实现本地主机和远程主机上的文件同步(包括本地推到远程,远程拉到本地两种同步方式)。
本文以OK3399-C开发板和PC端Ubuntu虚拟机为例,同步开发板安装的cutecom(Ubuntu可视化串口调试工具)到Ubuntu的3399-desktop-release/rootfs/ubuntu.img中。
Ubuntu开发环境IP:172.16.0.167
OK3399-C开发板IP:172.16.0.168
确保双方可以ping通,确保两者皆可ping通百度。
开发环境操作
1、为开发环境设置root用户密码,使用命令:passwd root;
2、修改/etc/ssh/sshd_config文件,添加可ssh远程登录权限。
使用命令:sudo vi /etc/ssh/sshd_config;
添加完成后效果如下图:
3、重启sshd服务,使用命令:service sshd restart;
4、将源码中的ubuntu.img挂载出来,建议挂载到同目录的target目录下,在OK3399-desktop-release/rootfs目录下使用命令:sudo mount ubunt.img ./target;
开发板操作
1、更新下载源执行命令:sudoapt-get update;
2、下载rsync服务,执行命令:sudoapt-get install rsync;
3、如果文件系统已经有所更改跳过此项,本文中还未做任何更改,所以将下载cutecom以做测试,执行命令:sudoapt-get install cutecom;
4、将开发板文件系统同步到开发环境中的文件系统中
开发环境文件系统路径如下:/home/forlinx/3399/OK3399-desktop-release/rootfs/target;
开发板执行命令:rsync -avx / \
[email protected]:/home/forlinx/3399/OK3399-desktop-release/rootfs/target;
首次执行需要手动填写yes,记录成功后,以后就只需要输入开发环境的root用户密码;
5、在开发环境查看,是否存在cutecom,结果如下图:
到此,在OK3399-C开发板安装的cutecom已经同步到开发环境的ubuntu.img中。
接下来,在开发环境执行编译脚本烧写到OK3399-C开发板进行验证,将ubuntu.img文件卸载,执行命令:sudo umount target。
回到OK3399-desktop-release目录执行编译脚本 ./build_ubuntu.sh 生成update.img后通过OTG烧写到开发板验证cutecom是否存在即可。
6、验证结果,cutecom存在且可正常执行。结果如下图所示:
以上就是小编为大家整理的在OK3399-C开发板上运行Ubuntu系统时保留文件系统的操作方法,希望能够对大家有所帮助!
作者:杨超凡
版权声明:与非网经原作者授权转载,版权属于原作者。文章观点仅代表作者本人,不代表与非网立场。文章及其配图仅供工程师学习之用,如有侵权或者其他问题,请联系本站作侵删。 侵权投诉
Recommend
-
49
导读 MKVToolNix 24.0.0是免费和开源的Matroska(MKV)格式制作处理软件,于2天前发布。 以下是如何在Ubuntu 18.04,Ubuntu 16.04,Ubuntu 17.10中安装它。
-
24
本文转载自微信公众号「Linux就该这么学」,作者逄增宝 。转载本文请联系Linux就该这么学公众号。 FreeFileSync是一个跨平台的...
-
8
在Git上跨Repository移动文件(合并Repository),并保留来源、历史 Git用久了,总是要整理、合并一些工程的,还希望能保留下来以前的编辑历史。 利用Git可以加多个remote,并且分别pull下来的功能。 假设是要把repository A的di...
-
18
如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 2020-06-02 23:13 WPF 备份某控件的一些属性,做一些神奇的操作,然后再...
-
12
ext2 被系统保留的部分分析 发表于 2018-05-08 15:05:00...
-
6
Deepin 是一款桌面环境/外观非常优雅的国产 Linux 发行版,它有很酷的界面设计和一些好用的功能,特别是升级到
-
10
Jager · 8月7日 · 2014年yum下载rpm包 · 保留rpm包 8479次已读昨天在部署zabbix监控的时候,遇到一个...
-
10
V2EX › Linux Ubuntu Desktop 的 fsck 如何在系统启动时自动修复硬盘错误? LxnChan · 10 小...
-
8
V2EX › iPhone 升级系统体验新功能 or 保留系统版本体验越狱功能
-
5
V2EX › Apple 如何在切换 app store 用户时保留下载的音乐
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK