=================================================== linux ,Android基础知识总结 1. Android编译系统分析 2. 文件系统分析 3. 制作交叉工具链 4. 软件编译常识 5. 设置模块流程分析 6. linux系统启动流程分析 7. linux下svn使用指南 8. LFS 相关 9. linux 内核的初步理解 ==================================================== ================ android系统开发指南(常用环境的搭建和使用) 说明: 有的步骤会用到脚本简化操作,脚本通过svn服务器获取: svn co svn://192.168.2.148/smartphone/td0901/release/images/scripts 用户名为各位的姓名拼音,密码与用户名相同 一 编译android源码,制作文件系统 二 ubuntu下烧录内核和文件系统 一 编译android源码,制作文件系统 1. 开发主线源码位置: svn://192.168.2.148/smartphone/td0901/trunk/cupcake-jianping //cupcake 源代码 svn://192.168.2.148/smartphone/td0901/trunk/linux-2.6.28-a1 //内核源代码 2. 打标的源代码位置 svn list svn://192.168.2.148/smartphone/td0901/tag 我们可以通过 svn list svn://192.168.2.148/smartphone 查看svn版本库内核 更多信息请参卡以下文档: http://192.168.2.148/svn/smartphone/ http://192.168.2.148/svn/smartphone/智能平台开发部资料管理手册V1.0.doc http://192.168.2.148/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服务器: sudo /etc/init.d/nfs-kernel-server restart 3> 配置网络根文件系统 拷贝 out/target/product/littleton/root/ 内容到 /nfsroot/rootfs 目录 拷贝 out/target/product/littleton/system 内容到 /nfsroot/rootfs/system 修改 /nfsroot/rootfs/init.rc 去掉几个mount命令 为了使大家的过程,结果统一,可以使用脚本 mkfs.cupcake 完成 在执行 mkfs.cupcake.nfs 脚本前先到 cupcake-jianping 目录下执行: . ./make_env15.sh设置环境变量, 获取通过手动输入android源码的位置,让脚本来设置环境变量。