新增需求如下:

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分区调整新增相关推荐

  1. linux系统需要占多大的内存,linux启动过程Bootloader、kernel

    256M可以推1080P屏幕 128M可以基本运行并安装 256M可以勉强开启特效 512M流畅运行特效 当然内存越大越好,特效与显卡也有关系 和windows相比,当然linux对内存的需求小 Bo ...

  2. 嵌入式Linux启动过程中的问题积累

    嵌入式Linux启动过程中的问题积累 Dongas 07-12-19 1.Bad Magic Number ## Booting image at 33000000 ... Bad Magic Num ...

  3. 深入理解Linux启动过程 0号进程,1号进程

    深入理解Linux启动过程 Linux系统的启动过程由很多阶段组成,这篇博客从初始化引导程序到第一个用户空间应用程序探索Linux启动进程. 我们先从Linux启动的顶层视图开始分析,以便能有一个整体 ...

  4. Linux启动过程详细介绍

    Linux启动过程详细介绍 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相 ...

  5. Linux启动过程学习

    该学习过程是一个Linux从主引导记录到第一个用户空间程序的指导. 启动一个Linux系统的过程包含一系列步骤.但是无论你是启动一个标准的X86桌面或嵌入式PowerPC,大部分流程是相似的.该文章探 ...

  6. linux 启动过程

    Linux 启动过程详解 下面来详细了解一下 Linux 的启动过程.     Linux 的启动 过程包含了 Linux 工作原理的精髓,      而且在嵌入式的开发过程也非常需要这方面知识的积累 ...

  7. Linux 启动过程详解

    随着Linux的应用日益广泛,特别是在网络应用方面,有大量的网络服务器使用Linux操作系统.由于Linux的桌面应用和Windows相比还有一定的差距,所以在企业应用中往往是Linux和Window ...

  8. Analyzing the Linux boot process-分析Linux启动过程

    本文翻译自Analyzing the Linux boot process. 箴言:了解运行良好的系统是将来处理不可避免的故障的很好准备 开源软件领域中流行的最为古老笑话:"the code ...

  9. Zynq linux启动过程,详解zynq的启动步骤

    本文主要介绍zynq启动过程,主要包括BootROM和FSBL等的执行过程. 硬件启动过程 1. 重新上电或POR复位后进行硬件启动过程 2. 扫描"启动引脚"设置,并存入只读寄存 ...

  10. linux 启动脚本 tty,Linux启动过程简介

    许多人对Linux的启动过程感到很神秘,因为所有的启动信息都在屏幕上一闪而过.其实, Linux的启动过程并不象启动信息所显示的那样复杂,它主要分成两个阶段: 1.启动内核.在这个阶段,内核装入内存并 ...

最新文章

  1. App-V应用程序虚拟化之二部署Template Server
  2. python文件引用其他文件中的变量
  3. LeetCode 956. 最高的广告牌(DP)
  4. 获取计算机最大磁盘,Qt获取电脑磁盘容量(示例代码)
  5. 基于tcp的网络程序_【CVPR 2020 Tutorial】基于神经网络的符号化视觉推理和程序合成(2)...
  6. oracle共享内存设置spfile,IPC 资源、kernel.shmmax和Oracle 共享内存的调整
  7. 文字不间断横向滚动 代码 IE FireFox兼容代码
  8. 无人机未来有一大波创富平台
  9. 关于spring boot的web.xml
  10. 一个使用kindle近3年的菜鸟的几点建议
  11. 三阶魔方大中小魔公式_三阶魔方花样玩法 公式汇总大全
  12. 微软账户登录 win10 共享
  13. 手机apk应用程序未安装解决办法
  14. 教您在CorelDRAW中安装字体
  15. 牛刀小试:利用Python分析豆瓣电影Top250(一)
  16. 还在为无线困扰?思博伦STC WiFi测试方案助力体验提升
  17. ssd固态硬盘寿命查询检测 SsdDiskInfo工具
  18. Android 经典 Crash 分析,Android Crash 原理分析
  19. 光明区关于促进科技创新的若干措施(征求意见稿)
  20. 模拟退火算法介绍、分析与应用

热门文章

  1. 深入解读Docker底层技术cgroup系列(2)——cgroup的初始化
  2. linux查询rpm包详细信息
  3. Java的GUI学习二(布局)
  4. 愚人节的礼物Java
  5. c# dialogresult 选择文件_C#控件美化之路(12):自定义消息弹出框
  6. Python20行代码爬取搞笑图片—拯救你的不开心
  7. vim批量删除与插入
  8. springSecurity jwt 如何融合
  9. 记录一次elastic-job分片查询及基础概念理解
  10. Shell编程—【03】数学运算expr与bc浮点数运算