使用迅为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 ***\n");
p = "android";
setenv("bootsystem", (char *)p);
saveenv();
}
printf("Boot system :%s\n", 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 ***\n");
p = "9.7";
setenv("lcdtype", (char *)p);
saveenv();
}
printf("LCD type:%s\n", 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
使用迅为iTOP-iMX6开发板-uboot-修改默认环境变量的更多相关文章
- QtCreator设置野火iMx6开发板提供的qt交叉编译套件
在Ubuntu18 QtCreator上添加野火iMx6开发板的Qt交叉编译环境PC:Ubuntu18.04QtCreator: 4.8.2交叉编译环境:野火提供的 5-编译工具链->qt交叉编 ...
- 【ARM开发板】迅为IMX6开发板QT下LVDS和HDMI双屏异显
本文转自迅为论坛:http://www.topeetboard.com 平台:迅为-IMX6开发板 首先开发板分别连接9.7寸屏和HDMI显示器,然后使用MfgTool工具烧写QT系统,然后拨码开关设 ...
- 迅为IMX6开发板真实产品案例分享-专为研发用芯选择
迅为IMX6开发板: Android4.4系统 Linux + Qt5.7系统 Ubuntu12.04系统 部分真实案例:HMI:3D打印机:医疗设备:工控机:触控一体机:车载终端 核心板兼容:IMX ...
- 迅为-IMX6开发板十层PCB制造,24小时开机测试,满负荷测试运行俩天,没有死机
迅为-IMX6开发板——工业主板的优势 1.元器件 IMX6工业主板选料,选用经过长时间.高要求验证元器件,保证产品在复杂条件下,耐高温.抗潮湿等工业场合的需求. 2.PCB设计 IMX6工业主板采用 ...
- 迅为IMX6开发板支持全网通4G模块丨GPS模块丨WIFI蓝牙丨千兆以太网
迅为i.MX6开发板丨迅为i.MX6Q开发板丨四核imx6开发板丨Cortec-A9开发板丨资料介绍: 特点: 处理器:Freescale Cortex-A9四核i.MX6Q主频1GHz 核心板配置: ...
- 内容分享-迅为IMX6开发板编译问题及解决方法
[经验分享]IMX6开发板编译问题及解决方法本文转自迅为IMX6开发板售后讨论群,分享给大家~ 物理主机 win10 64 位专业版.虚拟机 VM12 Pro.开发环境采用迅为提供的开发环境: Ubu ...
- 迅为IMX6开发板适用于HMI|车载电脑|工业控制|医疗仪器|智能家居 灵活进行产品开发平台
i.MX6开发平台行业中的应用 适用于HMI.POS机.车载电脑.工业控制.轨道交通.医疗仪器.智能家居.数据终端等行业. 迅为iMX6开发板采用核心板+底板结构设计,高品质,稳定性强,可以更灵活地进 ...
- 迅为IMX6开发板支持4G全网通模块GPS模块
IMX6开发板特点 处理器:IMX6开发板支持4G全网通模块GPS模块. 核心板配置:2GB DDR3内存 16GB EMMC 存储,扩展引脚多达320个:运行温度-20 ℃到+80 ℃之间. 核心 ...
- 迅为-iMX6开发板 飞思卡尔iMX6Q开发板 工业级开发板
了解详情请点击迅为官网:http://topeetboard.com 迅为-i.MX6开发板是采用Freescale Cortex-A9 四核i.MX6Q处理器,主频1GHz,2G DDR3内存,16 ...
随机推荐
- qrcode.react和jquery.qrcode生成二维码
qrcode.react 1.安装 npm install qrcode.react 2.用法(这里用的ant design) import React from 'react'; import QR ...
- B2C
B2C是Business-to-Customer的缩写,而其中文简称为"商对客"."商对客"是电子商务的一种模式,也就是通常说的直接面向消费者销售产品和服务商业 ...
- UICollectionView基础/UICollectionViewCell的四种创建方式
前言 UICollectionViewCell的四种创建方式:http://blog.csdn.net/ZC_Huang/article/details/52002302 这个控件,看起来与UITab ...
- bzoj 2726 任务安排
题目大意: 机器上有N个需要处理的任务,它们构成了一个序列 把这些任务分成若干批 从时刻0开始,这些任务被分批加工,第i个任务单独完成所需的时间是Ti 在每批任务开始前,机器需要启动时间S,而完成这批 ...
- ModelAndView存取数Model、Map、ModelMap
1.从名字上看ModelAndView中的Model代表模型,View代表视图,这个名字就很好地解释了该类的作用.(对应mvc配置,寻找模型,返回视图.) 2.业务处理器调用模型层处理完用户请求后,把 ...
- DOS命令汇总
汇总如下: Dos基础命令梳理思路 小编初来乍道, 不清楚我的插图在我发布后会不会不清晰, 因为我在排版时看到插入的图片是清晰的, 以前见其他条友发布的文章中总有不晰的图片, 很是不爽. 所以如果有不 ...
- 使用Jquery动态加入对象的集合属性,提交集合属性到表单
1.设置模型,引入构造函数,初始化集合 public class Person { public Person() //引入构造函数,初始化集合.如果未设置构造函数,集合会出现错误. { Skills ...
- 09_传智播客iOS视频教程_自动释放池与NSLog函数
不要管什么是自动释放池,现在给你讲你也听不懂.就业班才讲,不要知道太多,知道太多对你不好.电影里面死的最惨的人就是知道最多的人.把代码写到自动释放池里面就可以了.NSLog是printf的增强版,它增 ...
- HDU 3037 Saving Beans (数论,Lucas定理)
题意:问用不超过 m 颗种子放到 n 棵树中,有多少种方法. 析:题意可以转化为 x1 + x2 + .. + xn = m,有多少种解,然后运用组合的知识就能得到答案就是 C(n+m, m). 然后 ...
- Ubuntu 14.04.1 配置 Android 源码开发环境(jdk版本切换)(转载)
转自:http://www.cnblogs.com/ren-gh/p/4248407.html # Ubuntu 14.04.1 1.更新源: sudo apt-get update 安装vim工具: ...