新塘linux启动过程,NUC972调试笔记之NAND分区调整新增
新增需求如下:
1.增加 tmpfs 文件系统格式的 /var 分区,大小2M
2.新增 ubi分区,/data,大小30M
1.通过boot分区,如下所示:
原始分区结构如下:
可以看到原始分区一个以mtd=1作为root的ubi0:rootfs分区作为root rootfs大小是0x7900000,以偏移0x700000开始计算。
做如下分区修改:
新增一个以mtd=2作为data的ubi1:data分区作为data data大小是0x1E00000,以偏移0x6200000开始,这里注意下原先的rootfs分区大小变化了,这是因为该nand总共大小只有128M,因此若需要新增一个分区大小30M的,就必须把原先的rootfs减小了。可见现在rootfs分区大小为0x5B00000,以同样以偏移0x700000开始计算。
以上只是把nand进行mtd分区了,因此在开机log中和开机后可以做如下查看:
开始进行ubifs格式分区挂载:
ubiattach /dev/ubi_ctrl -m 2
ubimkvol /dev/ubi1 -N data -s 27262976
mount -t ubifs ubi1_0 /data
ps:粗略解释下上述命令含义,详情可参考后附参考众链接。
ubiattach /dev/ubi_ctrl -m 2 : -m 2 就是使用mtd=2的分区
ubimkvol /dev/ubi1 -N data -s 27262976 : 创建ubi1设备名叫data,大小是27262976
mount -t ubifs ubi1_0 /data : 将ubifs格式的ubi1_0设备挂载到data
这里注意几点:分区大小要和配置的uboot环境变量大小以及制作的文件系统大小相等,切不可文件系统大小大于分区大小。
ubifs文件系统制作时候的命令可参考如下:
#这里需要注意-c选项的参数,这里480意为60M(60M=480=60*1024/128=480)
mkfs.ubifs -F -x lzo -m 2048 -e 126976 -c 480 -o rootfs_ubifs.img -d ./rootfs #60M
#这里rootfs_ubinize.cfg文件是ubinize命令所需的参数之一,意为rootfs分区的配置文件用来生成ubi文件系统镜像,详情如后:
ubinize -o ubi_ln.img -m 2048 -p 131072 -O 2048 -s 2048 rootfs_ubinize.cfg
这里的vol_size需要注意是size,很多网文说可以直接写xxM,如 vol_size=60M,这里实测是不行的必须换算成size,即60M=62914560=6010241024
挂载完成:
可用mount 和 df -h 查看如下:
这里另附下tmpfs分区的新增,如下所示:
/bin/mount tmpfs /var -t tmpfs -o size=2M
最终效果如下:
这里说明下:实际分出来的data是30M,好像看网上说ubi实际好像会小点,这里有明白的大佬望不吝赐教。
参考资料:
1.【Linux】【驱动】MTD分区表信息解析方法分析
2.u-boot中添加mtdparts支持以及Linux的分区设置
3.u-boot中nand相关命令使用---- ubi, ubifsls, ubifsmount, ubifsumount
4.NUC972 MTD分区详解(UBI error: vtbl_check: too large reserved_pebs 824, good PEBs 512 错误分析)
5.UBI分区挂载
6.UBIFS分区挂载
7.挂载ubifs文件系统分区
8.UBI error: ubi_create_volume: cannot create volume 1, error -28
9.Ubifs文件系统和mkfs.ubifs以及ubinize工具的用法
10.Linux下的tmpfs文件系统(/dev/shm)
11.【Linux】tmpfs简介及增加方式
12.[AndroidO] [RK3399] – Rockchip 平台 parameter.txt 文件详解
新塘linux启动过程,NUC972调试笔记之NAND分区调整新增相关推荐
- linux系统需要占多大的内存,linux启动过程Bootloader、kernel
256M可以推1080P屏幕 128M可以基本运行并安装 256M可以勉强开启特效 512M流畅运行特效 当然内存越大越好,特效与显卡也有关系 和windows相比,当然linux对内存的需求小 Bo ...
- 嵌入式Linux启动过程中的问题积累
嵌入式Linux启动过程中的问题积累 Dongas 07-12-19 1.Bad Magic Number ## Booting image at 33000000 ... Bad Magic Num ...
- 深入理解Linux启动过程 0号进程,1号进程
深入理解Linux启动过程 Linux系统的启动过程由很多阶段组成,这篇博客从初始化引导程序到第一个用户空间应用程序探索Linux启动进程. 我们先从Linux启动的顶层视图开始分析,以便能有一个整体 ...
- Linux启动过程详细介绍
Linux启动过程详细介绍 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相 ...
- Linux启动过程学习
该学习过程是一个Linux从主引导记录到第一个用户空间程序的指导. 启动一个Linux系统的过程包含一系列步骤.但是无论你是启动一个标准的X86桌面或嵌入式PowerPC,大部分流程是相似的.该文章探 ...
- linux 启动过程
Linux 启动过程详解 下面来详细了解一下 Linux 的启动过程. Linux 的启动 过程包含了 Linux 工作原理的精髓, 而且在嵌入式的开发过程也非常需要这方面知识的积累 ...
- Linux 启动过程详解
随着Linux的应用日益广泛,特别是在网络应用方面,有大量的网络服务器使用Linux操作系统.由于Linux的桌面应用和Windows相比还有一定的差距,所以在企业应用中往往是Linux和Window ...
- Analyzing the Linux boot process-分析Linux启动过程
本文翻译自Analyzing the Linux boot process. 箴言:了解运行良好的系统是将来处理不可避免的故障的很好准备 开源软件领域中流行的最为古老笑话:"the code ...
- Zynq linux启动过程,详解zynq的启动步骤
本文主要介绍zynq启动过程,主要包括BootROM和FSBL等的执行过程. 硬件启动过程 1. 重新上电或POR复位后进行硬件启动过程 2. 扫描"启动引脚"设置,并存入只读寄存 ...
- linux 启动脚本 tty,Linux启动过程简介
许多人对Linux的启动过程感到很神秘,因为所有的启动信息都在屏幕上一闪而过.其实, Linux的启动过程并不象启动信息所显示的那样复杂,它主要分成两个阶段: 1.启动内核.在这个阶段,内核装入内存并 ...
最新文章
- App-V应用程序虚拟化之二部署Template Server
- python文件引用其他文件中的变量
- LeetCode 956. 最高的广告牌(DP)
- 获取计算机最大磁盘,Qt获取电脑磁盘容量(示例代码)
- 基于tcp的网络程序_【CVPR 2020 Tutorial】基于神经网络的符号化视觉推理和程序合成(2)...
- oracle共享内存设置spfile,IPC 资源、kernel.shmmax和Oracle 共享内存的调整
- 文字不间断横向滚动 代码 IE FireFox兼容代码
- 无人机未来有一大波创富平台
- 关于spring boot的web.xml
- 一个使用kindle近3年的菜鸟的几点建议
- 三阶魔方大中小魔公式_三阶魔方花样玩法 公式汇总大全
- 微软账户登录 win10 共享
- 手机apk应用程序未安装解决办法
- 教您在CorelDRAW中安装字体
- 牛刀小试:利用Python分析豆瓣电影Top250(一)
- 还在为无线困扰?思博伦STC WiFi测试方案助力体验提升
- ssd固态硬盘寿命查询检测 SsdDiskInfo工具
- Android 经典 Crash 分析,Android Crash 原理分析
- 光明区关于促进科技创新的若干措施(征求意见稿)
- 模拟退火算法介绍、分析与应用