2012-09-20 26 views
1

我不熟悉Android内核编译过程。 但最近我遇到了一个问题,它让我感到非常困扰。关于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,但是当 闪存boot.img到设备,我有不同的内核命令行值。

有没有人遇到过这个问题,并得到解决?
真的很感谢你的帮助。
谢谢先进!

回答

1

引导加载程序将传递命令行到内核。
例如,如果的u-boot自举程序用于,
它将在u-boot的变量被包含bootargs

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

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

  2. 启动您的计算机(小型机,teraterm,超级终端)上的串行模拟器。

  3. 打开设备电源。

  4. 按任意键暂停在引导加载器阶段本身设备引导。

  5. 现在在UBOOT提示符下输入以下命令:

    UBOOT# printenv

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

  7. 这可以通过使用以下命令进行修改:

    的u-boot# SETENV bootargs'

  8. 要在重新启动后使用下面条命令保存这个值:

    u-boot# saveenv

其他引导加载程序也提供类似的功能。

+0

你的意思是我可以通过u-boot bootloader修改bootargs变量,我理解你对吗? – Blank

+0

好奇的是我已经设置了从哪里引导,但是在启动内核时找不到地方,日志告诉我我指定的空间不存在。 我目前的情况与此问题相似: https://groups.google.com/forum/#!msg/android-porting/oTz-Ak_2nrQ/vypJ3HSCrigJ – Blank

+0

是的。你知道了...... – TheCodeArtist