zoukankan      html  css  js  c++  java
  • 使用迅为iTOP-iMX6开发板-uboot-修改默认环境变量

    iTOP-iMX6 开发板烧写好之后,默认是 android 系统 9.7 寸屏幕的系统参数和屏幕参
    数。如下图。本文档主要介绍如何修改默认启动参数。


    1、 重要的环境变量
    比较重要的环境变量或者说经常使用的环境变量,已经在上图中的红色方框中。
    主要是:bootsystem、lcdtype 和 bootargs。这些参数都可以在 uboot 源码中进行设
    置。具体文件为:“iTOP-iMX6_android4.4.2/bootable/bootloader/uboot-imx/lib_arm/board.c”文件。
    2、 默认启动系统设置
    默认启动系统参数是:bootsystem。打开“board.c”文件。搜索关键词
    “bootsystem”,找到如下代码:


    通过修改“p = "android";”语句,可以修改默认的启动系统参数。下面的程序中,可以
    看见用到了“boot_system_flags”标志位。搜索该标志位,可以找到如下内容。


    3、 默认屏幕设置
    默认屏幕参数是:lcdtype。打开“board.c”文件。搜索关键词“lcdtype”。找到如下
    代码。


    通过修改“p = "9.7";”语句,可以修改默认屏幕设置。在上面截图的程序中可以看到,
    通过”sprintf();”函数设置了相应屏幕的“displayArgs”值。
    4、 默认bootargs参数设置
    打开“board.c”文件。搜索关键词“bootargs”。找到如下代码。


    可以在此处修改“bootargs”参数设置。
    上面介绍到的详细代码如下:
    {
    p = getenv("bootsystem");
    if (NULL == p) {
    printf("*** Warning use default bootsystem:android *** ");
    p = "android";
    setenv("bootsystem", (char *)p);
    saveenv();
    }
    printf("Boot system :%s ", p);
    if(!strcmp(p, "android"))
    {
    boot_system_flags = 0;
    }
    else if(!strcmp(p, "qt"))
    {
    boot_system_flags = 1;
    }
    else if(!strcmp(p, "ubuntu"))
    {

    boot_system_flags = 2;
    }
    p = getenv("lcdtype");
    if (NULL == p) {
    printf("*** Warning use default lcdtype:9.7 *** ");
    p = "9.7";
    setenv("lcdtype", (char *)p);
    saveenv();
    }
    printf("LCD type:%s ", p);
    if(!strcmp(p, "9.7"))
    {
    lcd_type = 0;
    //sprintf(displayArgs, "video=mxcfb0:dev=ldb,LDB-XGA,bpp=32 video=mxcfb1:off
    video=mxcfb2:off fbmem=30M");
    sprintf(displayArgs, "video=mxcfb0:dev=ldb,LDB-XGA,if=RGB666,bpp=32 ldb=sin1
    video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24 video=mxcfb2:off fbmem=48M");
    }
    else if(!strcmp(p, "7.0"))
    {
    lcd_type = 1;
    //sprintf(displayArgs, "video=mxcfb0:dev=ldb,LDB-7inch,bpp=32 video=mxcfb1:off
    video=mxcfb2:off fbmem=30M");
    sprintf(displayArgs, "video=mxcfb0:dev=ldb,LDB-7inch,if=RGB666,bpp=32 ldb=sin1
    video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24 video=mxcfb2:off fbmem=48M");
    }
    else if(!strcmp(p, "4.3"))
    {
    lcd_type = 2;
    //sprintf(displayArgs, "video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:off
    video=mxcfb2:off fbmem=10M");
    sprintf(displayArgs, "video=mxcfb0:dev=lcd,VGA_480272,if=RGB24,bpp=32
    video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24 video=mxcfb2:off fbmem=48M");
    }

    /* add by cym 20170814 */
    else if(!strcmp(p, "1024x600"))
    {
    lcd_type = 3;
    //sprintf(displayArgs, "video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:off
    video=mxcfb2:off fbmem=10M");
    sprintf(displayArgs, "video=mxcfb0:dev=lcd,VGA_1024600,if=RGB24,bpp=32
    video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24 video=mxcfb2:off fbmem=48M");
    }
    /* end add */
    else if(!strcmp(p, "hdmi"))
    {
    sprintf(displayArgs, "video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24,bpp=32
    video=mxcfb1:off video=mxcfb2:off fbmem=48M");
    }
    else
    {
    sprintf(displayArgs, "video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:off
    video=mxcfb2:off fbmem=10M");
    }
    if(0 == boot_system_flags)//Android
    {
    sprintf(bootargs, "console=ttymxc2,115200 init=/init %s vmalloc=400M
    androidboot.console=ttymxc2 androidboot.hardware=freescale
    androidboot.serialno=1a0d39d4e3013411", displayArgs);
    // setenv("bootargs", bootargs);
    // sprintf(bootargs, "console=NULL init=/init %s vmalloc=400M androidboot.console=NULL
    androidboot.hardware=freescale androidboot.serialno=1a0d39d4e3013411", displayArgs);
    setenv("bootargs", bootargs);
    p = getenv("bootcmd");
    if((p == NULL) || (strstr(p, "booti mmc3"))
    || (strstr(p, "mmc dev 3; mmc read 0x10800000 0x800 0x3000; bootm")))
    {
    setenv("bootcmd", "booti mmc3");
    }

    }
    else if(1 == boot_system_flags)//QT
    {
    sprintf(bootargs, "console=ttymxc0,115200 %s root=/dev/mmcblk0p1 rootwait",
    displayArgs);
    setenv("bootargs", bootargs);
    p = getenv("bootcmd");
    if((p == NULL) || (strstr(p, "booti mmc3"))
    || (strstr(p, "mmc dev 3; mmc read 0x10800000 0x800 0x3000;
    bootm")))
    {
    setenv("bootcmd", "mmc dev 3; mmc read 0x10800000 0x800 0x3000; bootm");
    }
    }
    else if(2 == boot_system_flags)//Ubuntu
    {
    sprintf(bootargs, "console=ttymxc0,115200 %s root=/dev/mmcblk0p1 rootwait
    bootsystem=%s", displayArgs, getenv("bootsystem"));
    setenv("bootargs", bootargs);
    p = getenv("bootcmd");
    if((p == NULL) || (strstr(p, "booti mmc3"))
    || (strstr(p, "mmc dev 3; mmc read 0x10800000 0x800 0x3000;
    bootm")))
    {
    setenv("bootcmd", "mmc dev 3; mmc read 0x10800000 0x800 0x3000; bootm");
    }
    }
    }

    转自迅为论坛:http://www.topeetboard.com

  • 相关阅读:
    机器学习实战(六):利用AdaBoost元算法提高分类性能
    机器学习实战(五):支持向量机
    机器学习实战(四):Logistic回归
    机器学习实战(三):基于概率论的分类方法:朴素贝叶斯
    机器学习实战(一):k-近邻算法
    学习路线的思考
    非暴力沟通-读书笔记
    繁荣的悖论-读书笔记
    集体智慧编程-第四章 搜索与查询
    集体智慧编程-第三章-得到词汇在指定博客源出现的次数
  • 原文地址:https://www.cnblogs.com/topeet/p/9173921.html
Copyright © 2011-2022 走看看