• uboot移植之环境变量bootargs


    一.  简介


    uboot 中有两个非常重要的环境变量 bootcmd 和 bootargs。本文来学习 uboot的环境变量 bootargs。

    bootargs 环境变量也叫命令行参数。bootargs 保存着 uboot 传递给 Linux 内核的参数。

    二.  uboot移植之环境变量bootargs

    环境变量 bootargs 的设置是在 mx6ull_alientek_nand.h文件中。

    mx6ull_alientek_nand.h文件所在目录:Uboot源码的根目录下 include/configs

    如果是 NAND-Flash版的开发板,则 bootargs参数值如下设置:

    1. #if defined(CONFIG_SYS_BOOT_NAND)
    2. #define CONFIG_EXTRA_ENV_SETTINGS \
    3. CONFIG_MFG_ENV_SETTINGS \
    4. "panel=TFT43AB\0" \
    5. "fdt_addr=0x83000000\0" \
    6. "fdt_high=0xffffffff\0" \
    7. "console=ttymxc0\0" \
    8. "bootargs=console=ttymxc0,115200 ubi.mtd=4 " \
    9. "root=ubi0:rootfs rootfstype=ubifs " \
    10. CONFIG_BOOTARGS_CMA_SIZE \
    11. "mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs)\0"\
    12. "bootcmd=nand read ${loadaddr} 0x4000000 0x800000;"\
    13. "nand read ${fdt_addr} 0x5000000 0x100000;"\
    14. "bootz ${loadaddr} - ${fdt_addr}\0"

    下面对上面的 bootargs环境变量值进行分析。

    环境变量 bootargs值如下:

    1. "bootargs=console=ttymxc0,115200 ubi.mtd=4 " \
    2. "root=ubi0:rootfs rootfstype=ubifs " \
    3. CONFIG_BOOTARGS_CMA_SIZE \
    4. "mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs)\0"\

    CONFIG_BOOTARGS_CMA_SIZE 宏为空,如下:

    #define CONFIG_BOOTARGS_CMA_SIZE   ""

    环境变量 bootargs最终展开为:

    "bootargs=console=ttymxc0,115200 ubi.mtd=4 "  \
            "root=ubi0:rootfs rootfstype=ubifs "             \
            "mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs)\0"\

    bootargs 环境变量 就是设置了很多的参数的值,这些参数 Linux 内核会使用到。
    使用的串口 tymxc0与 Linux交互。
    ubi.mtd=4 :表示 第 4个分区。
    mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs)
    mtdparts 定义了Nand-Flash的分区信息。分为5 个分区,不同分区存放不同的文件。

    bootargs 环境变量主要设置两个参数: console,rootrootfstype

    (1)  console

    console 用来设置 linux 终端 ( 或者叫控制台 ) ,也就是通过什么设备来和 Linux 进行交互,是
    串口还是 LCD 屏幕?如果是串口的话应该是串口几等等。一般设置串口作为 Linux 终端,这样
    我们就可以在电脑上通过 SecureCRT 来和 linux 交互了。这里设置 console ttymxc0 ,因为 linux
    启动以后 I.MX6ULL 的串口 1 linux 下的设备文件就是 /dev/ttymxc0 ,在 Linux 下,一切皆文
    件。
    ttymxc0 (也就是串口 1 )作为 Linux 的终端,并且串口波特率设置为 115200

    (2) root

    Linux系统启动以后,会有一个根文件系统的概念。这个根文件系统也就是 root。

    root 用来设置根文件系统的位置。

    这里根文件系统的位置是  "ubi0:rootfs "。

    (3)  rootfstype

    此选项一般配置 root 一起使用, rootfstype 用于指定根文件系统类型。
    如果根文件系统为 ext 格式的话,此选项无所谓。
    如果根文件系统是 yaffs jffs ubifs 的话就需要设置此选项,指 定根文件系统的类型。

  • 相关阅读:
    Auddly Music Server的编译和安装
    Linux系统调优介绍
    OFD文件打开教程
    v-model绑定导致的element UI文本框输入第一次值后被绑定,导致空文本框无法再输入文字
    四、集合
    抓包工具mitmprox
    JavaFx 实现水平滚动文本(跑马灯效果)
    Android Shape设置背景
    如何修改mtp模式在电脑上显示的存储容量大小?
    java进制与位运算
  • 原文地址:https://blog.csdn.net/wojiaxiaohuang2014/article/details/133993690