嵌入式爱好者

imx6-uboot阶段修改文件系统挂载分区

2021-9-10 17:03| 发布者: 15132383595| 查看: 475| 评论: 0|原作者: 李宇程

类目: 知识库  >  I.MX6系列产品     文档编号: 543

环境变量 bootargs 概念讲解

bootargs 保存着 uboot 传递给 Linux 内核的参数,并且由 mmcargs 设置,mmcargs 环境变量如下:

"mmcargs=setenv bootargs console=${console},${baudrate} ${mxcfb0} ${mxcfb1} ${ldbmode} ${smp} "  "root=

${mmcroot} fec.macaddr=${fec_mac}\0" 

其中 console=ttymxc0,baudrate=115200,mmcroot=/dev/mmcblk3p2 rootwait rw,因此将 mmcargs 展开以后就是:

mmcargs=setenv bootargs console= ttymxc0, 115200 root= /dev/mmcblk3p2 rootwait rw

root 用来设置根文件系统的位置,root=/dev/mmcblk3p2 用于指明根文件系统存放在 mmcblk3设备的分区 2 中,而mmcblk3是emmc设备

实际修改流程

1 进入uboot,通过editenv mmcroot 修改为参数,/dev/mmcblk3p3 rootwait rw ,

注:这个操作是将文件系统挂载到emmc分区3,需要你自己添加一个分区

2 saveenv

3 boot

4 可以正常进入文件系统

如果重启或者断电之后uboot的mmcroot变量又变为/dev/mmcblk3p2 rootwait rw ,那么可能是被板级文件写死,修改board/freescale/common/mmc.c文件将下面内容注释或者删掉再者直接将mmcblk%dp2改为mmcblk%dp3重新编译uboot源码替换uboot镜像即可。

/* Set mmcblk env */
    sprintf(mmcblk, "/dev/mmcblk%dp2 rootwait rw",
        mmc_map_to_kernel_blk(dev_no));
    setenv("mmcroot", mmcblk);

已解决

未解决

只是看看

最新评论

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-11-23 12:44

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部