iTOP-iMX6 開發板燒寫好之后,默認是 android 系統 9.7 寸屏幕的系統參數和屏幕參數。如下圖。本文檔主要介紹如何修改默認啟動參數.
70.1 重要的環境變量 比較重要的環境變量或者說經常使用的環境變量,已經在上圖中的紅色方框中。主要是:bootsystem、lcdtype 和 bootargs。這些參數都可以在 uboot 源碼中進行設置。具體文件為:“iTOP-iMX6_android4.4.2/bootable/bootloader/uboot-imx/lib_arm/board.c”文件。 70.2 默認啟動系統設置 默認啟動系統參數是:bootsystem。打開“board.c”文件。搜索關鍵詞“bootsystem”,找到如下代碼:
通過修改“p = "android";”語句,可以修改默認的啟動系統參數。下面的程序中,可以看見用到了“boot_system_flags”標志位。搜索該標志位,可以找到如下內容。
70.3 默認屏幕設置 默認屏幕參數是:lcdtype。打開“board.c”文件。搜索關鍵詞“lcdtype”。找到如下代碼。
通過修改“p = "9.7";”語句,可以修改默認屏幕設置。在上面截圖的程序中可以看到,通過”sprintf();”函數設置了相應屏幕的“displayArgs”值。 70.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 ffvideo=mxcfb2 ff 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 ff fbmem=48M");} else if(!strcmp(p, "7.0")) { lcd_type = 1; //sprintf(displayArgs, "video=mxcfb0:dev=ldb,LDB-7inch,bpp=32 video=mxcfb1 ffvideo=mxcfb2 ff 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 ff fbmem=48M");} else if(!strcmp(p, "4.3")) { lcd_type = 2; //sprintf(displayArgs, "video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1 ffvideo=mxcfb2 ff fbmem=10M");sprintf(displayArgs, "video=mxcfb0:dev=lcd,VGA_480272,if=RGB24,bpp=32 video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24 video=mxcfb2 ff fbmem=48M");} /* add by cym 20170814 */ else if(!strcmp(p, "1024x600")) { lcd_type = 3; //sprintf(displayArgs, "video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1 ffvideo=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"); } } }
|