请选择 进入手机版 | 继续访问电脑版
搜索

151

主题

508

帖子

3567

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3567
发表于 2021-7-2 17:35:02 6665 浏览 0 回复

iMX6开发板设备树uboot-修改默认环境变量

本文档主要介绍如何设备树uboot修改默认启动参数。iTOP-iMX6 开发板烧写好之后,默认是 android 系统 9.7 寸屏幕的系统参数和屏幕参数,如下图所示。输入以下命令查看默认启动参数
printenv
1 重要的环境变量
比较重要的环境变量或者说经常使用的环境变量,已经在上图中的红色方框中。
主要是:bootsystem、lcdtype 和 bootargs。这些参数都可以在 uboot 源码中进行设置。具体文件为:“iTOP-iMX6_android6.0.1/bootable/bootloader/uboot-imx/common/board_r.c”文件。
2 默认启动系统设置
默认启动系统参数是:bootsystem。打开“board.c”文件。搜索关键词“bootsystem”,找到如下代码:
通过修改“p = CONFIG_BOOT_SYSTEM;”语句,可以修改默认的启动系统参数,例如p = "android"; ,p ="qt";,p = "ubuntu"; 。
3 默认屏幕设置
默认屏幕参数是:lcdtype。打开“board.c”文件,搜索关键词“lcdtype”。找到如下代码。
通过修改“p = "CONFIG_DISPLAY_LCD_TYPE";”语句,可以修改默认屏幕设置。在上面截图的程序中可以看到设置的是CONFIG_DISPLAY_LCD_TYPE为9.7寸屏幕,如果要设置其他屏幕,将CONFIG_DISPLAY_LCD_TYPE改为如下图红框中的数字即可。通过“sprintf();”函数设置了相应屏幕的“displayArgs”值。
4 默认 bootargs 参数设置
打开“board.c”文件。搜索关键词“bootargs”。找到如下代码。
可以在此处修改“bootargs”参数设置。
上面介绍到的详细代码如下:
if(!strcmp(p, "android"))
        {
                sprintf(bootargs, "console=ttymxc0,115200 androidboot.console=ttymxc0 consoleblank=0 vmalloc=256M init=/init %s androidboot.hardware=freescale cma=384M", displayArgs);
                //setenv("bootcmd", "fatload mmc 2:1 0x12000000 boot.img;boota 0x12000000");
                if(0 == lcd_flags)//9.7 inch
                {
                        setenv("bootcmd", "fatload mmc 2:1 0x12000000 boot-topeet_9.7.img;boota 0x12000000");
                }
                else if(1 == lcd_flags)//7 inch
                {
                        setenv("bootcmd", "fatload mmc 2:1 0x12000000 boot-topeet_7.img;boota 0x12000000");
                }
                else if(2 == lcd_flags)//10.1 inch
                {
                        setenv("bootcmd", "fatload mmc 2:1 0x12000000 boot-topeet_10.1.img;boota 0x12000000");
                }
                else
                {
                        setenv("bootcmd", "fatload mmc 2:1 0x12000000 boot-topeet_9.7.img;boota 0x12000000");
                }
        }
        else if((!strcmp(p, "qt"))
                || (!strcmp(p, "ubuntu")))
        {
                sprintf(bootargs, "console=ttymxc0,115200 androidboot.console=ttymxc0 consoleblank=0 vmalloc=256M %s root=/dev/mmcblk3p2 rootwait rw", displayArgs);
                if(0 == lcd_flags)//9.7 inch
                {
                        setenv("bootcmd", "fatload mmc 2:1 0x12000000 topeet_9.7inch.dtb;fatload mmc 2:1 0x13000000 zImage;bootz 0x13000000 - 0x12000000");
                }
                else if(1 == lcd_flags)//7 inch
                {
                        setenv("bootcmd", "fatload mmc 2:1 0x12000000 topeet_7inch.dtb;fatload mmc 2:1 0x13000000 zImage;bootz 0x13000000 - 0x12000000");
                }
                else if(2 == lcd_flags)//10.1 inch
                {
                        setenv("bootcmd", "fatload mmc 2:1 0x12000000 topeet_10.1inch.dtb;fatload mmc 2:1 0x13000000 zImage;bootz 0x13000000 - 0x12000000");
                }
                else
                {
                        setenv("bootcmd", "fatload mmc 2:1 0x12000000 topeet_9.7inch.dtb;fatload mmc 2:1 0x13000000 zImage;bootz 0x13000000 - 0x12000000");
                }
        }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

登录或注册

官方客服

QQ:2551456065

官方QQ群

195631883

扫一扫关注迅为公众号

群号652692981

 
快速回复 返回顶部 返回列表