
这篇必须有标题 ----Android4.4.4镜像的编译中遇到的问题
准确地说,最近三天半的时间都在搞这件事情,Android4.4.4的镜像编译可谓是一波三折,怎么说呢,还是挺费内存的(想换电脑.jpg)。起初因为虚拟机内存不足,导致编译失败;再后来,发现物理内存不足,编译再次失败;解决完虚拟机内存和物理内存的问题,又一个问题来了,虚拟机的交换空间不足,kill了进程,编译再次以失败告终。不会吧?那就继续解决存在的问题吧。这是第五次编译了,终于成功了,留下了激动的
准确地说,最近三天半的时间都在搞这件事情,Android4.4.4的镜像编译可谓是一波三折,怎么说呢,还是挺费内存的(想换电脑.jpg)。起初因为虚拟机内存不足,导致编译失败;再后来,发现物理内存不足,编译再次失败;解决完虚拟机内存和物理内存的问题,又一个问题来了,虚拟机的交换空间不足,kill了进程,编译再次以失败告终。不会吧?那就继续解决存在的问题吧。
这是第五次编译了,终于成功了,流下了激动的泪水!用时三个小时以上,由于是昨天晚上回宿舍之前让它开始编译的,开始编译之后就回宿舍啦,所以具体用时不详,以往编译失败也是会用时三个小时以上的。
来,上图!编译完成之后,在文件夹"iTop4412_KK4.4/out/target/product/smdk4x12"中生成镜像“ramdisk.img”和“system.img”。
其余的废话就不多说啦,下面记录一下最近这几天在编译这个的过程中学习到的新知识吧!
一、给虚拟机的交换空间(swap)扩容
注意:这些操作都是在root用户权限下进行的。
在前些天解决虚拟机磁盘空间不足的问题时,在最后给swap分配的空间只有不到1G,这对于我分配的4G物理内存来说太少啦,在未更改交换分区的大小的时候,执行“free -g”命令,会在swap的地方显示:total 0。参照了一些资料,说:“4-16G物理内存的系统,至少设置4GB的交换分区”,于是打算设置8GB的交换分区给虚拟机。(重新进行磁盘空间的扩展,给虚拟机扩展10G内存,在设置逻辑分区以及扩展分区的时候,值都选择了8G)
交换分区,也称为虚拟内存,用来提升内存的容量,防止OOM(out of memory)。当内存不足时,内核会随机杀死一些进程,一些它认为占内存或者无关的进程,就像下图箭头处那样:
下面进入交换分区的扩容,此处采用的是文件的方式进行创建。
1、在根下创建一个4G大小的文件
root@topeet:~# dd if=/dev/zero of=/swapfile bs=1M count=4096
记录了4096+0 的读入
记录了4096+0 的写出
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 96.9631 s, 44.3 MB/s
2、将该4G大小的文件格式化为“交换空间”的格式
root@topeet:~# mkswap /swapfile
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
无标签, UUID=4263856f-678e-41be-ba61-05a6e760e046
3、“swapon -a”会提示“…0600suggested”,故将交换分区的信息写为600;swap -a指的是激活所有的交换分区
root@topeet:~# chmod 600 /swapfile
root@topeet:~# swapon -a /swapfile
root@topeet:~# htop
root@topeet:~#
4、此时执行free命令就可以看到交换分区成功扩展啦。第一步分配的4G加上本身磁盘分配时的8G就变成了现在的12G
root@topeet:~# free
total used free shared buff/cache available
Mem: 4026860 1313396 253536 56392 2459928 2350056
Swap: 12581880 0 12581880
root@topeet:~# df -h
文件系统 容量 已用 可用 已用% 挂载点
udev 1.9G 0 1.9G 0% /dev
tmpfs 394M 12M 382M 3% /run
/dev/sda1 99G 42G 53G 45% /
tmpfs 2.0G 248K 2.0G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
vmhgfs-fuse 174G 147G 28G 85% /mnt/hgfs
tmpfs 394M 52K 394M 1% /run/user/1000
二、分卷压缩文件
在进行windows以及Ubuntu之间的文件传输时,发现有分卷压缩的文件,涉及到知识盲区啦,查资料学习一下吧。分卷压缩是拆分压缩文件的一部分,通常分卷压缩是在将大型的压缩文件保存到数个磁盘或是可移动磁盘时使用。大部分主流压缩都支持分卷压缩了,常见的格式有:7z、ace、alz、bz2、gz、mou、rar、zip、zipx等。
介绍一下我处理分卷压缩文件的方法吧。选中同一个文件的所有分卷压缩文件,右键点击压缩到…tar压缩包就可以将这些分卷压缩包放进同一个压缩包啦,而且是常见的tar格式。
更多推荐
所有评论(0)