我不熟悉Android内核编译过程。 但是我最近遇到了一个问题,这让我很烦恼。
这是问题所在: 基于Android,我构建了自定义图像,包括boot.img,system.img等。 然后我需要将这些图像闪存到物理设备才能启动到Android主屏幕。 在编译这些图像文件之前,我已经设置了一个新的内核命令行:
CONFIG_CMDLINE="root=/dev/mtdblock2 rw init=/init console=ttyS0, 115200 mem=128M uard_dma android"
编译完这些图像后,我在vim中打开了boot.img,并在其中看到了以下字符串:
"root=/dev/mtdblock2 rw init=/init console=ttyS0, 115200 mem=128M uard_dma android"
但是当我将boot.img闪存到设备中时,我得到了不同的输出:
**Kernel command line: console=ttyO2,115200n8 earlyprintk**
换句话说,我设置了内核命令行值,并将其写入boot.img,但是当时 flash boot.img进入设备,我得到了不同的内核命令行值。
有没有人遇到过这个问题并修好了?
真的很感谢你的帮助。
谢谢高级!
答案 0 :(得分:1)
引导加载程序将命令行传递给内核 例如,如果使用 u-boot bootloader,则 它将包含在u-boot变量 bootargs
中这可以在引导加载程序提示符下验证 例如,如果设备使用u-boot bootloader。
通过串口提示将设备连接到PC。
在您的PC上启动串行仿真器(minicom,teraterm,hyper-terminal)。
打开设备电源。
按任意键可在引导加载程序阶段暂停设备启动。
现在在u-boot提示符下输入以下命令:
u-boot# printenv
这将列出所有uboot变量。请注意变量 bootargs 的值。
可以使用以下命令对其进行修改:
u-boot# setenv bootargs''
要在重新启动后保存此值,请使用以下命令:
u-boot# saveenv
其他引导程序也可以使用类似的功能。