smart210 的Android源码编译

来源:互联网 发布:万能五笔有mac版吗 编辑:程序博客网 时间:2024/04/30 07:24

在编译smart210的源码时遇到的一些问题,现记录下来。

我的编译环境是win7 32位,vmware9.0.2 、fedora15 32位

1、在编译时前期都是完美的运行,但是在生产system.img文件的时候虚拟机就挂了,试了几次都是这样,最后找啊找,终于知道原因了,在编译Android4.0以上的系统时,在有一段时间占用的内存会高于1G,将虚拟机的内存增加至2G,完美编译成功。

2、在编译Android4.0时最好保证你的虚拟机剩余硬盘大于16G以上,如果不够了怎么办?那就扩展呗。fedora的扩展方法如下。

1、 vmware 提供一个命令行工具, vmware-vdiskmanager.exe ,位于 vmware 的安装目录下,比如
  C:\Program Files\VMware\VMwareWorkstation\vmware-vdiskmanager.exe.
  在 windows 下运行cmd ,转到 vmware 的安装目录
  vmware-vdiskmanager.exe 可以查看帮助
  2
)、 对于扩容,可以输入下列命令:

  vmware-vdiskmanager -x 50Gb"D:\VMware\WinXP\myLinux.vmdk"
  注: 要扩容的系统这时不能在运行 ,参数 "-x" 表示要扩展虚拟机硬盘空间,紧随其后的数字是要扩展到的大小 ( 本例为扩展到 50GB ,这是一个磁盘总量,包含了原先的磁盘容量 ) 。 最后是指定要操作的虚拟机磁盘的具体文件,要是路径名中有空格,必须以双引号括起来。按回车键开始执行,执行完毕,退出命令提示符窗口,
  重启 VMware ,会发现虚拟机硬盘空间已变成 50GB 了。
 虽然已经扩大了磁盘,但是由于还没有经过分区,指定文件系统,所以 linux 操作系统无法识别(其实就相当于你的硬盘虽然大了,但是你并没有对其进行分区是一个道理)。下面我们进行分区处理。
   3)、分区:( 这时要切换为Root 用户,Ubuntu下使用sudo命令 )
  fdisk 命令:fdisk -l  : 打印当前的磁盘分区表,这时我们可以看到磁盘的总量的确增加到 50GB 了,但是分区只有以前的那几个原有的分区。
键入命令: fdisk /dev/sda   “sda 就是经过扩容的硬盘,为 SCSI 硬盘, IDE 类型硬盘对应为 hda ,是对该硬盘进行操作 ”
  键入 :   m    “ 列出 fdisk 的帮助 ”
  我们在这里是要添加一个新分区,即将扩容出来的那部分做成一个新分区,这样才能被操作系统挂载识别。
  键入:    n    ” 命令 n 用于添加新分区 "
  此时, fdisk 会让你选择添加为逻辑分区呢(编号从 5 开始)还是主分区(编号 1 到 4)。选择主分区吧,则键入 p ;选择逻辑分区键入 l 。
  我们选择主分区于是:
  键入:   p              " 选择创建主分区 "
  此时, fdisk 会让你选择主分区的编号,如果已经有了主分区 sda1 , sda2 ,那么编号就选3 ,即要创建的该分区为 sda3.
  键入:     3
  此时, fdisk 又会让你选择该分区的开始值这个就是分区的 Start 值( start cylinder );这里最好直接按回车,
  如果您输入了一个非默认的数字,会造成空间浪费;
  此时键入:w             " 保存所有并退出,分区划分完毕 "
  我们现在还不能用这个分区 , 因 没格式化 ,这时要重启系统就能够在 dev 下面看到 sda3 ,如果不重启不能进行下面操作
   4)、 格式化该新添加的分区:
    键入:

 mkfs -t ext3  /dev/sda3
   或者  
mkfs.ext3     /dev/sda3
格式化指定的分区 , 依次类推, 现在的系统大部分都是 ext3 格式 , 如果你需要其它的 , 可以查看mkfs 的帮助。
  此时我们就可以使用该新增分区啦:
   5) 、挂载该分区:
   手动挂载,则键入:
mount /dev/sda3 /mnt/sda3
 表示将该新分区挂载到 /mnt/sda3 / 这个目录下面
    (注:Ubuntu下默认是挂载到 /media对应目录下,并且手动挂载的信息在/etc/mtab文件下有登记信息)
   开机自动挂载,则修改 /etc/fstab 文件,在这个文件里面添加一行:

 /dev/sda3     /mnt/sda3       ext3   defaults,       0       1
   到这里就可以使用该新加分区啦 。

3、在源码编译完成后,我们可以使用tiny210提供的一个脚本文件genrootfs.sh生成一个rootfs_dir的文件,然后再根据你的nandflash的类型来生成相应的系统镜像image文件。

我们采用yaffs2文件系统,若Nand Flash是SLC则采用mkyaffs2image-128M. 它适用于SLC Nand Flash,而mkyaffs2image-mlc2则适用于MLC Nand Flash。

部分参考sunjing


0 0
原创粉丝点击