Chinaunix首页 | 论坛 | 博客
  • 博客访问: 143221
  • 博文数量: 49
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 576
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-17 11:27
文章分类

全部博文(49)

文章存档

2011年(1)

2010年(15)

2009年(33)

我的朋友

分类: 嵌入式

2009-10-08 18:48:40

Android 下 根文件系统的制作

主要过程
1.安装Linux环境
2.安装编译工具
3.安装 Android SDK
4.编译 busybox
5.获得 本文件系统
 
1.Linux 环境 Red Hat Enterprise Linux 4
2.编译环境  
 我上面有三个编译工具链:
 arm-linux- arm-elf- arm-none-linux-gnueabi-
 我用的是 arm-none-linux-gnueabi-
3.安装 Android SDK
4.编译 busybox
make menuconfig
Busybox Settings ->
Build Options ->
[*] Build BusyBox as a static binary (no shared libs) 这个要选上,因上这样子编
译出来的busyBox才是可以独立运行的。
()Cross Compiler prefex  打开写上编译工具链的路径跟前缀
我的是这样的: /opt/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-
Installation Options->
[*] Don’t use /usr     这样子编译出来的busybox才不会安装到你主机的/usr目录下
。一定要选上。
 $ make
我在此过程中没有出现任何错误
网上一些帖子说编译的时候找不到头文件,解决的方法是 指定编译工具链的头文件所在
的路径
因为要把常用的命令安装到 Android 中
 $ make install 这样就会把所有命令提取出来
其余任务在下一步完成
 
5.获得 本文件系统
 $ cd <目录>/android-sdk_m5-rc15_linux-x86/tools
 $ ./emulator &
 <待续,跟目前所说无关>
 $ ./adb shell
 # cd data/
 # mkdir busybox  //在data目录下创建busybox文件夹
 # cd busybox
 # mkdir bin //方便接下来导入命令
 # cd ../../..
 # ./adb /_install/bin /data/busybox/bin
 # export PATH=$PATH:/data/busybox/bin
 # tar -czf system.tar.gz /system
 # tar -czf data.tar.gz /data
 # tar -czf etc.tar.gz /etc
 # tar -czf sbin.tar.gz /sbin
 # exit  // 期间可能出现关于‘ / ’的提示,不过不影响结果
 
 $ ./adb pull /system.tar.gz ./
 $ ./adb pull /data.tar.gz ./
 $ ./adb pull /etc.tar.gz ./
 $ ./adb pull /sbin.tar.gz ./
 $ ./adb pull /init ./
 // 此时会在 Android 文件夹中出现以上几个 打包文件
 制作initial_ram_disk
 $ mkdir initial_ram_disk
 $ cd initial_ram_disk
 $ mkdir cache d dev proc root sdcard sys tmp var
 
 把之前的几个打包文件解压缩到此,并把 init文件拷贝过来
此时 Android根文件系统 initial_ram_disk 就做好了

当然,这只是内核移植的一部分。等我把Android 内核移植成功后,我会把后续的过程贴
出来。
 
阅读(2719) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~