IMX6Q文件系统规划

一、文件系统方案:

  1. 存在问题:

当前官方提供的根文件系统,ext3格式存储在emmc的分区2上,可读可写,存在如下问题:

        1)、根文件系统文件可被随意修改,导致系统文件损坏、丢失;

        2)、系统日志文件不能存储,系统重启后上一次系统日志无法获取,不方便故障排查;

        3)、根文件系统没有分区,应用和系统都在一个分区上,该区数据区损坏后导致系统启动挂载失败;

        4)、根文件系统不能在线升级;

    2、文件系统规划:

        Uboot + dtb + kernel + ramdisk:

        Uboot:支持ramdisk的加载和启动;

        Kernel: zImage 支持RT补丁的内核

        zImage_normal 不支持RT补丁的内核

        要想使用任何一种内核,修改文件名为zImage即可。

        Ramdisk:根文件系统

        压缩方式:cpio

        大小:压缩前 203M,压缩后 75M

        内存区域存储该文件系统,支持写,不支持写保存;应用所有的写入数据需要存储在/opt/apps目录下。

        1)、emmc卡分区:

分区

挂载目录

大小

格式

功能

/dev/mmck3boot

   \

    32M

  raw

Boot分区

/dev/mmck3p1

/opt/update

    500M

  fat

系统镜像文件

/dev/mmck3p2

/opt/logs

    1.6G

  ext3

系统日志文件

/dev/mmck3p3

/opt/apps

     4.9G

  ext3

应用目录

        2)、系统镜像存储:

 文件类型

文件名称

存储分区

存储形式

挂载目录

Uboot

u-boot-6q-2g.imx

/dev/mmck3boot

二进制

\

Dtb

imx6q-c-sabresd.dtb

/dev/mmck3p1

文件

/opt/update

Kernel

zImage

zImage_normal

/dev/mmck3p1

文件

/opt/update

Rootfs

ramdisk

/dev/mmck3p1

文件

/opt/update

        3)、文件系统特性:

  1. 、perf的性能分析;
  2. 、valgrind的内存分析;
  3. 、gdb的板级调试;
  4. 、kgdb的内核调试;
  5. 、内核panic后的3s重启;
  6. 、内核对进程D状态的120S检测;
  7. 、内核对cpu-core的soft_lockup的20s软死锁检测;
  8. 、内核支持sysrq-magic的魔术键响应;
  9. 、系统支持内核ftrace的cmd-trace/cmdevent函数和事件跟踪;
  10. 、syslog的文件存储,logroate的文件转储;(/var/log/syslog系统日志文件,会daily | maxsize(8M) | maxcount(10) 进行压缩转储,且自动删除max_num以前的转储文件);

        4)、系统启动:

/opt/apps作为应用目录使用,/opt/apps/init.sh脚本如果存在,会加载该脚本,来自动启动应用程序。

二、批量升级方法:

1、生产升级,或者第一次升级系统,使用usb-otg的方式。

2、使用PC端工具mfgtools,对整个核心板进行系统升级,镜像文件存放 在.\mfgtools\Profiles\Linux\OS Firmware\files\okmx6-c目录下。

3、开发板设置为usb启动模式,PC端运行.\mfgtools\mfgtool2-mx6qdl-c-sabresd-emmc.vbs后,点击开始即可烧写系统镜像;

三、在线升级方法:

  1. 指通过网络来升级系统镜像文件;
  2. 提供一个镜像升级tar包,上传到设备后解压缩后,执行sh update_os.sh脚本,自动完成所有系统文件升级;
  3. 如果不用更新uboot,可以直接通过替换/opt/update下的文件,来完成升级。

四、输出:

  1. usb的烧写工具mfgtools.rar,里面包含系统镜像imgs;
  2. 在线升级吧update.tar.bz2。

五、补充:

        高版本内核不再使用initrd=来传递ramdisk的加载地址,而是内核统一管理,使用高端内存区域存储ramdisk,所以如果高端内存不够,需要通过传递vmalloc= 来重新定义高端内存区域。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值