快速编译system.img和boot.img的方法【转】
本文转载自:http://www.cnblogs.com/wanqieddy/archive/2012/10/22/2734024.html
快速编译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中.
生成boo.img的方法:
$(INSTALLED_BOOTIMAGE_TARGET):$(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES)
$(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) --output $@
......
生成system.img的方法:
define build-systemimage-target
$(MKYAFFS2) -f $(mkyaffs2_extra_flags) $(TARGET_OUT) $(1)
生成userdata.img的方法
define build-userdataimage-target
mkdir -p $(TARGET_OUT_DATA)
$(MKYAFFS2) -f $(mkyaffs2_extra_flags) $(TARGET_OUT_DATA) $(INSTALLED_USERDATAIMAGE_TARGET)
同样,ramdisk.img的生成方法为:
BUILT_RAMDISK_TARGET := $(PRODUCT_OUT)/ramdisk.img
INSTALLED_RAMDISK_TARGET := $(BUILT_RAMDISK_TARGET)
$(INSTALLED_RAMDISK_TARGET): $(MKBOOTFS) $(INTERNAL_RAMDISK_FILES) | $(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
快速编译system.img和boot.img的方法【转】的更多相关文章
- 快速编译system.img、userdata.img、boot.img的方法
快速编译system.img和boot.img的方法 快速编译system.img,可以使用这个命令: #make systemimage 快速编译boot.img,可以使用以下命令: #make b ...
- [UE4]使用UnrealVS扩展快速编译C++代码
一.如果UE4 编辑器已经打开,则VS中的重新生成项目将不能使用,一定要关了UE4 编辑器才可以.一般不是有VS自身的编译UE4的C++代码 二.epic提供了UnrealVS扩展,可以快速编译C++ ...
- mtcp的快速编译(连接)
mtcp的快速编译 http://mos.kaist.edu/guide/config/03_build_mtcp.html 介绍DPDK中使用mtcp的文档 https://dpdksummit.c ...
- 利用批处理结合Msbuild实现快速编译
我们经常在用vs2005做项目的时候会把一个项目分成几个模块(不管是对于功能上,还是系统构架上面),为的是以后部署,还有修改维护时候的方便.这样就会带来一个问题,随着模块的增加(这里所说得每个模块就是 ...
- 快速掌握 Android Studio 中 Gradle 的使用方法
快速掌握 Android Studio 中 Gradle 的使用方法 Gradle是可以用于Android开发的新一代的 Build System, 也是 Android Studio默认的build ...
- Python学习笔记4-如何快速的学会一个Python的模块、方法、关键字
想要快速的学会一个Python的模块和方法,两个函数必须要知道,那就是dir()和help() dir():能够快速的以集合的型式列出该模块下的所有内容(类.常量.方法)例: #--encoding: ...
- Flex 1046: 找不到类型,或者它不是编译时常数;1180: 调用的方法 CompPropInfo 可能未定义
导入项目之后一直报这个错误, 1046: 找不到类型,或者它不是编译时常数: 1180: 调用的方法 CompPropInfo 可能未定义 想这应该是没有把当前这个类编译进项目当中,找了半天也没有找到 ...
- XCode编译文件过多导致内存吃紧解决方法
XCode编译文件过多导致内存吃紧解决方法 /Users/~~/Library/Developer/Xcode/DerivedData 1) 然后 找到编译文件 删除 就好了哦 快去试试看吧
- delphi 编译的时候 把Warning去除的方法
delphi 编译的时候 把Warning去除的方法 在 添加 {$WARNINGS OFF}
随机推荐
- Vue-prop
HTML 中的特性名是大小写不敏感的,所以浏览器会把所有大写字符解释为小写字符.这意味着当你使用 DOM 中的模板时,camelCase (驼峰命名法) 的 prop 名需要使用其等价的 kebab- ...
- java虚拟机(六)--垃圾收集器和内存分配策略
目前没有完美的收集器,不同的厂商.版本的虚拟机提供的垃圾收集器会有很大的差别,用户根据自己应用特点和要求组合出各个年代所使用 的收集器.基于jdk1.7Update14之后的虚拟机. HotSpot的 ...
- ThinkPHP---TP功能类之分页
(1)核心 数据分页通过limit语法实现 (2)分页类 ThinkPHP里系统封装好了分页类:Page.class.php (3)代码分析 位置:Think/Page.class.php, ①查看相 ...
- Pycharm中通过扩展工具添加QTDesigner
1.在电脑中找到Designer.exe的安装目录: 2.在pycharm中打开file->Settings->Tools->External Tools进行配置: 配置如下图所示: ...
- input file 美化的方法
css input[type=file] 样式美化,input上传按钮美化 2014年8月29日 113210次浏览 由于明天公司组织出去游玩,今天把这两天的博客都写了吧,今天的内容是input[ty ...
- enote笔记语言(3)(ver0.3)
章节:enote笔记语言(3) what&why(why not)&how&when&where&which:紫色,象征着神秘而又潜蕴着强大的力量,故取 ...
- 使用 MyBatis 对表执行 CRUD 操作
说明: 1.CRUD: C -- create R -- read U -- update D -- delete 2.Mybatis 的 SQL 核心配置文件中 SQL 语句的参数的传 ...
- 码云私人代码 SSH 设置----https://blog.csdn.net/kkaazz/article/details/78667573
码云私人代码 SSH 设置 https://blog.csdn.net/kkaazz/article/details/78667573
- noip模拟赛 业务办理
[问题描述]在银行柜台前,有 n 个顾客排队办理业务. 队伍中从前往后,第 i 位顾客办理业务需要ti 分钟时间. 一位顾客的等待时间定义为:队伍中在他之前的所有顾客和他自己的办理业务时间的总和.第 ...
- uestc 1904
#include<stdio.h> #define N 1010 int min[N]; int main() { int t,n,p,ti,first,end,num,i,j,max, ...