快速编译system.img、userdata.img、boot.img的方法

快速编译system.img和boot.img的方法

快速编译system.img,可以使用这个命令:

#make systemimage 

快速编译boot.img,可以使用以下命令:

#make bootimage 

快速编译userdata.img,可以使用以下命令:

# make userdataimage-nodeps

但是,对于bootimage, 在不改变内存布局的情况下,可以使用以下命令:

#cp ./arch/arm/boot/Image ./arch/arm/boot/kernel

#mkbootimg --kernel ./arch/arm/boot/kernel --ramdisk ../out/target/product/tcc8800/ramdisk.img --cmdline

console=ttyTCC,115200n8 --base 0x40000000 --pagesize 8192 --output ../out/target/product/tcc8800/boot.img

其实这些生成命令都在build/core/Makefile中.

生成boot.img的方法

(INSTALLEDBOOTIMAGETARGET):(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES)

              (MKBOOTIMG)(INTERNAL_BOOTIMAGE_ARGS) --output $@

......

生成system.img的方法

define build-systemimage-target

     (MKYAFFS2)f(mkyaffs2_extra_flags) (TARGETOUT)(1)

生成userdata.img的方法

define build-userdataimage-target

mkdir -p $(TARGET_OUT_DATA)

(MKYAFFS2)f(mkyaffs2_extra_flags) (TARGETOUTDATA)(INSTALLED_USERDATAIMAGE_TARGET)

生成ramdisk.img的方法

BUILT_RAMDISK_TARGET := $(PRODUCT_OUT)/ramdisk.img

INSTALLED_RAMDISK_TARGET := $(BUILT_RAMDISK_TARGET)

(INSTALLEDRAMDISKTARGET):(MKBOOTFS) (INTERNALRAMDISKFILES)|(MINIGZIP)

(MKBOOTFS)(TARGET_ROOT_OUT) | (MINIGZIP)>@

为方便起见,也可以在Makefile中加入以下内容:

BUILT_RAMDISK_TARGET := $(PRODUCT_OUT)/ramdisk.img

.PHONY: ramdiskimage

ramdiskimage: ${BUILT_RAMDISK_TARGET}

然后,就可以输入:make ramdiskimage 来编译ramdisk.img文件了

最简单的方法是:

out/host/linux-x86/bin/mkbootfs out/target/product/tcc8900/root |

out/host/linux-x86/bin/minigzip > out/target/product/tcc8900/ramdisk.img

 

 

posted @   f9q  阅读(1224)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
历史上的今天:
2015-11-16 Linux配置vpn
2015-11-16 约束不明,申令不熟,将之罪也
点击右上角即可分享
微信分享提示