如何写死 u-boot 中的 bootargs

来源:互联网 发布:如何投诉淘宝客服态度 编辑:程序博客网 时间:2024/06/02 03:31

  最近在论坛中有朋友问如何写死 u-boot 中的 bootargs command,这里我就为大家整理一下,方便大家查看。i.mx 系列产品在启动时,最先起来的是 u-boot,u-boot 起来以后,需要在 u-boot 中设置环境参数,设置不正确的话板子无法常启动。并且每次更新都很麻烦,所以这里通过修改 u-boot 源码中的命令的话使用起来会非常方便,具体方法以下会有介绍。
  这里以开发板 MCIMX6Q-SDP, HDMI 屏,BSP L3.0.35_4.1.0_130816_source 为例,首先要将编译好的 u-boot,uImage 还有文件系统烧写到板子 MCIMX6Q-SDP 的 SD 卡上,从 SD 卡启动。
  u-boot 起来后要首先设置 u-boot 中的参数,如下图所示:

这里写图片描述

  红色区域为默认的 u-boot 中的环境参数,我们可以看到在 u-boot command 是从网络启动的,要是从 SD 卡启动的话,需要修改 u-boot 中的参数为:

MX6QSABRESD U-Boot > setenv loadaddr 0x10800000MX6QSABRESD U-Boot > setenv bootargs_base 'setenv bootargsconsole=ttymxc0,115200'MX6QSABRESD U-Boot > setenv bootargs_mmc 'setenv bootargs ${bootargs} root=/dev/mmcblk1p1rootwait rw video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24'MX6QSABRESD U-Boot > setenv bootcmd_mmc 'run bootargs_base bootargs_mmc;mmc dev2;mmcread${loadaddr} 0x800 0x2000;bootm'MX6QSABRESD U-Boot > setenv bootcmd 'run bootcmd_mmc'MX6QSABRESD U-Boot > saveenvMX6QSABRESD U-Boot > run bootcmd

  都设置正确的话,板子才可以正常启动,每次设置都会比较麻烦,并且拷贝过程中有空格等错误的话都会导致 kernel 无法正常启动。这里尝试修改 u-boot 中的 bootargs 将 u-boot 中的参数都定义好的话,在 u-boot 启动时候就是直接从定义好的命令中启动的。这样做比较方便,省去了每次启动都要修改 u-boot。具体如何修改的话如下:
  修改 u-boot 源码中关于 command 的代码,路径为 u-boot-2009.08/include/configs 下的 mx6q_sabresd.h,打开后可以看到:

这里写图片描述

  红色标识区域为你要修改的部分。根据你需要修改的内容修改添加。修改好源码以后,保存。进入 ltib 目录,输入命令:./ltib -m scbuild -p u-boot,编译修改好的 u-boot 源码 ./ltib -m scdeploy -p u-boot ,将编译好的 u-boot 文件放在 rootfs 中。

这里写图片描述

  将 u-boot.bin 拷出来,烧写到板子上重新启动就 OK 了。关于 android BSP 的话就是需要修改 myandroid/bootable/bootloader/uboot-imx/incluce/configs 目录下的 mx6q_sabresd_android.h 中的 #define CONFIG_EXTRA_ENV_SETTINGS,方法是和 Linux 一样的,这里就不在详细介绍了。

0 0
原创粉丝点击