Boot.img太大了

时间:2014-05-31 22:10:56

标签: build linux-kernel embedded-linux android-source cyanogenmod

我已经从源代码为htc evo 4g编译了一个内核。我成功地获得了zImage。 因此,当我构建整个树时,我使用zImage作为内核而不是预构建的内核。

然而,当我构建整个android树时,我收到以下错误:

  

out / target / product / supersonic / boot.img总大小为5988352   错误:out / target / product / supersonic / boot.img太大(5988352> [5406720 - 270336])   make: * [out / target / product / supersonic / boot.img]错误1   make:* 删除文件`out / target / product / supersonic / boot.img'

在网上搜索,我找不到解决方案。

我只发现分区的大小是在文件device/htc/supersonic/BoardConfig.mk中定义的,但我不知道如何更改它们。

BOARD_BOOTIMAGE_PARTITION_SIZE := 0x00280000
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 0x00500000
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 0x15e00000 # limited so we enforce room to grow
BOARD_USERDATAIMAGE_PARTITION_SIZE := 0x1aba0000

BOARD_FLASH_BLOCK_SIZE := 131072

我不知道如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

在您的情况下,启动分区限制为:0x00528000 - 0x00042000,大约5MB。多数民众赞成!现代(2013-2014)设备有10MB-50MB

你需要让你的boot.img更小,从内核中删除不需要的驱动程序,或者限制你编译到ramdisk中的数据/二进制文件的数量。

您还可以使用' dd'拉动原始boot.img分区来检查设备的实际boot.img大小。命令,如果它实际上大于5MB,你可以增加BOARD_RECOVERYIMAGE_PARTITION_SIZE中的值。