环境变量ubuntu,uboot环境变量文件在哪
墨初 知识笔记 151阅读
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参数值如下设置
#if defined(CONFIG_SYS_BOOT_NAND)#define CONFIG_EXTRA_ENV_SETTINGS \CONFIG_MFG_ENV_SETTINGS \panelTFT43AB\0 \fdt_addr0x83000000\0 \fdt_high0xffffffff\0 \consolettymxc0\0 \bootargsconsolettymxc0,115200 ubi.mtd4 \rootubi0:rootfs rootfstypeubifs \CONFIG_BOOTARGS_CMA_SIZE \mtdpartsgpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs)\0\bootcmdnand read ${loadaddr} 0x4000000 0x800000;\nand read ${fdt_addr} 0x5000000 0x100000;\bootz ${loadaddr} - ${fdt_addr}\0
下面对上面的 bootargs环境变量值进行分析。
环境变量 bootargs值如下
bootargsconsolettymxc0,115200 ubi.mtd4 \rootubi0:rootfs rootfstypeubifs \CONFIG_BOOTARGS_CMA_SIZE \mtdpartsgpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs)\0\
CONFIG_BOOTARGS_CMA_SIZE 宏为空如下
#define CONFIG_BOOTARGS_CMA_SIZE
环境变量 bootargs最终展开为
bootargsconsolettymxc0,115200 ubi.mtd4 \
rootubi0:rootfs rootfstypeubifs \
mtdpartsgpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs)\0\
bootargs 环境变量 就是设置了很多的参数的值这些参数 Linux 内核会使用到。 使用的串口 tymxc0与 Linux交互。 ubi.mtd4 表示 第 4个分区。 mtdpartsgpmi-nand:64m(boot),16m(kernel),16m(dtb),1m(misc),-(rootfs) mtdparts 定义了Nand-Flash的分区信息。分为5 个分区不同分区存放不同的文件。
bootargs 环境变量主要设置两个参数 consoleroot与 rootfstype。
(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 的话就需要设置此选项指 定根文件系统的类型。