关于Android的闪存启动映像

时间:2012-09-20 10:24:03

标签: android kernel

我不熟悉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进入设备,我得到了不同的内核命令行值。

有没有人遇到过这个问题并修好了? 真的很感谢你的帮助。
谢谢高级!

1 个答案:

答案 0 :(得分:1)

引导加载程序将命令行传递给内核 例如,如果使用 u-boot bootloader,则 它将包含在u-boot变量 bootargs

这可以在引导加载程序提示符下验证 例如,如果设备使用u-boot bootloader。

  1. 通过串口提示将设备连接到PC。

  2. 在您的PC上启动串行仿真器(minicom,teraterm,hyper-terminal)。

  3. 打开设备电源。

  4. 按任意键可在引导加载程序阶段暂停设备启动。

  5. 现在在u-boot提示符下输入以下命令:

    u-boot# printenv

  6. 这将列出所有uboot变量。请注意变量 bootargs 的值。

  7. 可以使用以下命令对其进行修改:

    u-boot# setenv bootargs''

  8. 要在重新启动后保存此值,请使用以下命令:

    u-boot# saveenv

  9. 其他引导程序也可以使用类似的功能。