linuxAndroid基礎知识总结.doc
文本预览下载声明
===================================================
linux ,Android基础知识总结
1. Android编译系统分析
2. 文件系统分析
3. 制作交叉工具链
4. 软件编译常识
5. 设置模块流程分析
6. linux系统启动流程分析
7. linux下svn使用指南
8. LFS 相关
9. linux 内核的初步理解
====================================================
================
android系统开发指南(常用环境的搭建和使用)
说明:
有的步骤会用到脚本简化操作,脚本通过svn服务器获取:
svn co svn://48/smartphone/td0901/release/images/scripts
用户名为各位的姓名拼音,密码与用户名相同
一 编译android源码,制作文件系统
二 ubuntu下烧录内核和文件系统
一 编译android源码,制作文件系统
1. 开发主线源码位置:
svn://48/smartphone/td0901/trunk/cupcake-jianping //cupcake 源代码
svn://48/smartphone/td0901/trunk/linux-2.6.28-a1 //内核源代码
2. 打标的源代码位置
svn list svn://48/smartphone/td0901/tag
我们可以通过 svn list svn://48/smartphone 查看svn版本库内核
更多信息请参卡以下文档:
48/svn/smartphone/
48/svn/smartphone/智能平台开发部资料管理手册V1.0.doc
48/svn/smartphone/linux下svn操作指南及规范.doc
用户名为各位的姓名拼音,密码与用户名相同
3. 编译源码
进入 cupcake 工作拷贝的顶层目录,执行:
. ./make_image15.sh
部分执行结果:
out/target/product/littleton/root/ 内核需要使用的 initramfs
out/target/product/littleton/system 文件系统的系统分区
out/target/product/littleton/data/ 文件系统数据分区
4. 编译内核
此处内核编译主要针对驱动组之外的同事
1 设置工具链
内核的 linux-2.6.28-a1/Makefile 中设定了:
CROSS_COMPILE ?= arm-linux-
所以设置PATH环境变量,保证能找到正确的工具链
假设工具链位于: /usr/local/marvell-arm-linux-4.1.1/ 设置为:
export PATH:=/usr/local/marvell-arm-linux-4.1.1/bin/:$PATH
2 更改编译选项(网络启动或者本机启动)
内核顶层目录执行:
make menuconfig
General setup
[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
() Initramfs source file(s) (NEW)
如果需要支持网络启动反选 [] Initial RAM filesystem and RAM disk (initramfs/initrd) support
如果需要支持本地启动选中 [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
设置 () Initramfs source file(s) (NEW) 为 root
拷贝 cupcake 编译结果 out/target/product/littleton/root/ 到内核顶层目录
3 编译
内核顶层目录执行 make zImage
编译好的内核:
arch/arm/boot/zImage
5. 搭建网络开发环境
1 安装nfs服务器
sudo apt-get install nfs-kernel-server nfs-common
2 修改nfs服务器配置文件/etc/exports ,确保有以下配置项
/nfsroot/rootfs *(rw,no_root_squash,sync)
我们在内核中已经固定,手机通过网络方式启动,默认从 /nfsroot/rootfs
读取文件系统,修改配置项后需要重启nfs服务器:
s
显示全部