RV1126 分区教程
一、前言
期初我是想弄一个分区存放自己的 APP 程序,如果需要更改应用的时候,只需要烧写独立的分区即可,就不需要重新烧写 rootfs。这是一个简单的操作,为啥还需要记录了,因为我在里面遇到了一些坑,思路走错了,便折腾了几天。为啥会有这样的需求了,一是为了管理方便,二是将应用程序给新手的时候,他们不一定能将应用程序拷贝到开发板中。下面是我使用的一些环境
开发板:RV1126
内核版本:4.19.111
启动方式:快速启动
二、分区实现
原理
仔细研究过的朋友便能发现,在 SDK 中是没有分区操作的,其原理并不是编译的时候将 rootfs 分成了多个块,而是在烧写的时候,烧写工具根据分区信息分成多个引导块,如下图所示:


在这里做一个简单的测试便知道,我们只需要将 demo 分区的大小更改一下,重新烧写验证即可,怎么更改接着往下看
分区规则
这里主要是关注 “CMDLINE: mtdparts=rk29xxnand:” 之后的内容,至于 “CMDLINE: mtdparts=rk29xxnand:” 为啥不介绍了,因为我也不知道,我们就当是一个规则约束吧,不然会崩溃的,扯远了。
在接着看冒号后面的内容是有规律的,可以知道用逗号隔开后对应的是一个分区。仔细看一下,便知道规则是“分区大小@起始地址”,并且下一个分区的起始地址是上一个分区的结束地址。结论
到此相信相信小伙伴都会对 RV1126 进行分区操作了,在来整理一下步奏,如下所示:首先,需要更改烧写时的 parameter.txt 分区文件,可以对其进行增删改查
其次,我们需要制作自己的分区,并烧写到对应的其实地址即可,分区的制作就比较简单了,不知道的可以参考我之前的笔记linux下制作img文件,制作好 img 文件后,烧写即可,;烧写规则如下图所示:

最后,对分区进行挂载,挂载分区就比较简单了,可以在开机脚本中使用 mount 命令进行挂载,也可以在 “ etc/fstab” 文件中添加对应的挂载信息即可。
注意事项
上面降到分区的规则是 “分区大小@起始地址” ,但是会在以为文件中看到 “-@起始地址” 这样的形式,其作用是自动获取剩余的空间,都是在最后一个分区中出现,如下图所示:

注意: 再次注意,细心的小伙伴会发现,在分区名后面多了一个 “:grow” ,没错当你使用 - 表示获取剩余空间的时候,必须要在分区名的后面加上 “:grow” ,否则你开机后,变回发现挂载点不存在。
看到这里,有的小伙伴就会好奇,怎么才能查看对应的挂载点,这里有两个办法,首先可是使用
lsblk命令进行查看,但是lsblk命令可能在 RV1126 不存在,那还有一个方法,使用cat /sys/class/block/xxx/uevent查看对应的挂载点是那个,如下图所示:

到此,分区的操作就算完成了,但是笔记到这里还没结束。上面的操作显然是没问题的,这样介绍的目的是让各位小伙伴深刻理解分区的操作,不然换一个板子就不会了。后面将继续介绍怎么使用 SDK 完成分区的操作。
三、分区脚本
分区脚本在 “sdk/device/rockchip/rv1126_rv1109” 目录下,具体是那个文件,可以看板级配置文件,这里就不介绍,不明白的小伙伴,可以看我之前的笔记RV1126 快速启动。
在次打开对应的分区文件,便会发现,这个分区脚本和烧写时的分区文件是一样的,没错烧写文件中的 parameter.txt 文件就从这里直接拷贝过去的,只是名称不一样而已。脚本内容如下图所示:

四、img 打包
打包脚本 mk-image.sh
在 SDK 中,提供了一个脚本可以直接将对应的文件打包成 img 文件。在 SDK 简单找了一下,对应的打包文件是 “sdk/device/rockchip/common/mk-image.sh”,使用规则就很简单了,接着往下看。使用规则
mk-image.sh <src_dir> <target_image> <fs_type> [size]
- src_dir:是需要打包的文件路径及名称,如“/home/demo”
- target_image:是需要打包成的文件路径及名称,如:“/home/demo.img”
- fs_type:文件类型,如ext2、ext2、ext4
- size:文件大小,可以省略
注意: 如果路径错误便会提示 “mk-image.sh <src_dir> <target_image> <fs_type> [size]”,所以有的小伙伴会发现编译的时候会提示这个错误,多数是因为路径不存在导致的
添加到 img 打包脚本中
在之前的比中介绍到,SDK 中的 img 打包脚本是 “mkfirmware.sh”,在 “sdk/device/rockchip/common” 目录下,具体怎么添加,在 4.2 中已经介绍了,这里就不过多讲解了。
五、启动挂载
上面已经完成了分区和 img 文件的打包,但是这两个步奏完成后,烧写到开发板中是不具备文自动挂载的,每次都需要手动挂载。一开始我们已经介绍到了自动挂载的方式,所以只需要在打包之前更改对应的脚本文件即可。
不论是更改 “etc/fstab” 文件还是对应的启动脚本,操作方式都是一样的,只需要将文件放到对的目录下,每次编译的时候会自动将其打包到 rootfs 中,不了解的下伙伴可以看我之间的笔记【Buildroot】工具包使用
到此,我们的真个分区操作算便完成了,有写的不好的地方望各位指出,我会积极改进。
参考资料
rv1126 扩展rootfs分区以及增加分区:https://www.ebaina.com/articles/140000016845
RV1126 分区教程的更多相关文章
- 解决Mac OS X Lion狮子系统及win7多分区教程
[绿茶教程]解决Mac OS X Lion狮子系统及win7多分区教程 工具/原料 8G的u盘制作lion系统安装盘 步骤/方法 插入U盘---开机---按住左下角“Option”键(alt ...
- 【Win10分区教程】
Win10怎么分区?如何为Win10硬盘分区? 注:本教程适用于Win7.Win8.Win8.1和Win10系 到了Windows10时代,TB级硬盘已经很普及了,那么在Win10系统下如何为这些大容 ...
- Sqlserver2008 表分区教程
先声明..Sql2008只有企业版才能够搞这个表分区.其他版本请自觉更改.. 哥在这里费了很长时间劲..结果还是老老实实的重装.. 表分区定义 一般情况下,我们建立数据库表时,表数据都存放在一个文件里 ...
- (转)PQ分区魔术师中文版分区教程
PQ分区魔术师中文版分区的图解,图文并茂很多朋友提到硬盘分区,觉得不敢轻易去尝试,怕得不偿失,深度xp系统下载在此分享下pq分区的图解详见下图: 1)这是用的雨林木风系统的光盘,其他系统盘一样 2)首 ...
- 2015-2016款Mac安装win10多分区教程,不破坏GUID分区表。
原文:https://bbs.feng.com/read-htm-tid-10895240.html 参考:https://bbs.feng.com/read-htm-tid-9940193.html ...
- CentOS7挂载分区教程
http://www.centoscn.com/CentOS/config/2014/1016/3955.html
- 小米3移动版 分区 调整/合并教程(16GB/64GB)
(必读)版权声明:米3移动版TWRP Recovery为XueferH适配,分区脚本以及双数据置换脚本的知识产权,智力成果权归XueferH所有. 注:此教程仅适用于Xiaomi MI 3-移动版(1 ...
- 分区助手官网使用教程(专业版、绿色版和WinPE版)(图文详解)
不多说,直接上干货! 详情见 http://www.disktool.cn/jiaocheng/index.html http://www.disktool.cn/jiaocheng/index2.h ...
- linux磁盘及分区详解
1.Linux 分区简介 1.1 主分区 vs 扩展分区 硬盘分区表中最多能存储四个分区,但我们实际使用时一般只分为两个分区,一个是主分区(Primary Partion)一个是扩展分区(extend ...
- 安装Windows 8.1过程中出现的各种问题(无损从MBR转GPT磁盘、不能定位已有分区)
这个周末就安装了个系统,本以为一个小时就能搞定,没想到花费了将近一天. 我的机子是6G内存.500G硬盘,原装系统是Windows 7,现在想换成Windows 8.1,于是下载了64位的Window ...
随机推荐
- API数据接口获取商品详情数据该怎么操作
随着电商行业的快速发展,获取商品详情数据是电商应用的重要功能之一.为了提高用户的购物体验,开发者可以利用API接口获取商品详情数据,方便用户了解商品的具体信息和特点.在本文中,我们将介绍如何使用API ...
- 【题解】AtCoder Beginner Contest 318(D - Ex)
赛时过了 A-G,Ex 仿佛猜到了结论但是完全不懂多项式科技,就炸了. 大家好像都秒了 A,B,C 就不写了. D.General Weighted Max Matching 题目描述: 给你一个加权 ...
- 拯救“消失的她”——双系统grub完美恢复方案
双系统grub意外消失怎么办? 不用重装系统.不用去维修店.不会丢数据,教你一招,完美恢复grub! 背景 我的电脑是windows和linux双系统,启动项使用的grub.某天准备切换linux时突 ...
- IDEA 配置桌面快捷方式
IDEA 配置桌面快捷方式 目录 IDEA 配置桌面快捷方式 1.下载idea.tar解压 2.配置快捷方式 3.为什么要存放在这个目录? 1.下载idea.tar解压 tar xf ideaIC-2 ...
- Mysql中文字符串提取datetime
DATE_FORMAT无法用于提取含中文字符的时间字符串中的时间, 可以通过STR_TO_DATE来提取其中的信息, 如下: SELECT STR_TO_DATE("2018年11月05日 ...
- SpringBoot 后端配置 Https 教程
以阿里云为例子 1. 申请 SSL 证书 1. 注册域名 打开阿里云官网,搜索域名 点击域名注册,输入域名,点击搜索 选择心仪的域名,点击购买,打钱 进入域名控制台,进行实名认证 2. 申请 SSL ...
- Llama2-Chinese项目:3.1-全量参数微调
提供LoRA微调和全量参数微调代码,训练数据为data/train_sft.csv,验证数据为data/dev_sft.csv,数据格式如下所示: "<s>Human: &q ...
- 11G手动建库
◆◆◆11G手动建库◆设置环境变量export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/11.2.4 ...
- liunx知识点--umask
介绍 umask(user's mask)用来设置文件权限掩码.权限掩码是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限. UNIX最初实现时不包含umask命 ...
- 分享一个Redis自带的压测工具:redis-benchmark
前言 今天给xdm分享一个Redis自带的压测工具:redis-benchmark. 介绍 redis-benchmark 是一个用于测试 Redis性能的基准测试工具,可以帮助开发人员评估和比较 R ...