?
?
?
?
?
?
iTOP-iMX6 開發(fā)板燒寫好之后,默認(rèn)是 android 系統(tǒng) 9.7 寸屏幕的系統(tǒng)參數(shù)和屏幕參
數(shù)。如下圖。本文檔主要介紹如何修改默認(rèn)啟動參數(shù)。
?
?
?
?
1、 重要的環(huán)境變量
比較重要的環(huán)境變量或者說經(jīng)常使用的環(huán)境變量,已經(jīng)在上圖中的紅色方框中。
主要是:bootsystem、lcdtype 和 bootargs。這些參數(shù)都可以在 uboot 源碼中進(jìn)行設(shè)
置。具體文件為:“iTOP-iMX6_android4.4.2/bootable/bootloader/uboot-imx/lib_arm/board.c”文件。
2、 默認(rèn)啟動系統(tǒng)設(shè)置
默認(rèn)啟動系統(tǒng)參數(shù)是:bootsystem。打開“board.c”文件。搜索關(guān)鍵詞
“bootsystem”,找到如下代碼:
?
?
通過修改“p = "android";”語句,可以修改默認(rèn)的啟動系統(tǒng)參數(shù)。下面的程序中,可以
看見用到了“boot_system_flags”標(biāo)志位。搜索該標(biāo)志位,可以找到如下內(nèi)容。
?
?
3、 默認(rèn)屏幕設(shè)置
默認(rèn)屏幕參數(shù)是:lcdtype。打開“board.c”文件。搜索關(guān)鍵詞“lcdtype”。找到如下
代碼。
?
?
通過修改“p = "9.7";”語句,可以修改默認(rèn)屏幕設(shè)置。在上面截圖的程序中可以看到,
通過”sprintf();”函數(shù)設(shè)置了相應(yīng)屏幕的“displayArgs”值。
4、 默認(rèn)bootargs參數(shù)設(shè)置
打開“board.c”文件。搜索關(guān)鍵詞“bootargs”。找到如下代碼。
?
?
可以在此處修改“bootargs”參數(shù)設(shè)置。
上面介紹到的詳細(xì)代碼如下:
{
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");
}
}
}
?
?
?
?
?
電子發(fā)燒友App

























































評論