解决编译系统时报:ckati failed with: signal: killed
问题描述
刚把1804虚拟机搭建起来,然后迫不及待的把Android Q代码编译起来,结果每次在编译一两分钟之后就把如下错误,也不报具体源码哪里有问题,搞的脑子着实大。
1 | vendor/qcom/build/tasks/generate_extra_images.mk:558: warning: overriding commands for target `kernelclean' |
以上错误ckati构建系统强行把编译行为中止了。
找了好多资料都没有找到原因是啥,平白无故的将我的编译行为杀掉了,我就猜测是不是什么系统资源不够了?因为之前把内存调到4G的时候,系统经常不报代码原因,直接被干掉了。
于是基于这一点,查到默认安装的Ubuntu18,分区是自动分的, swap 分区只给了2G。但是电脑内存16G,一般swap分区要大于或等于物理内存(1-1.5倍),而且刚跑程序电脑卡死无奈重启,top命令最后引起我注意的是进场command:kswapd0, 所以摁下重启键回来增大swap分区试试。
问题处理
增加交换分区步骤如下:
- 1.查看内存情况:
free -m
- 2.创建一个新的swap文件
sudo dd if=/dev/zero of=swap bs=1G count=24
count的值是24G, 创建文件名为swap。(这步应该在/路径下执行了) - 3.创建swap文件系统
sudo mkswap -f swap
- 4.开启新的swap
sudo swapon swap
- 5.关闭并删除原有的swap文件
sudo swapoff swapfile
sudo rm /swapfile
- 6.设置开机启动
sudo subl /etc/fstab
将原有的swapfile改为swap
结论
安装如上配置之后,就可以开开心心编译系统了。经过半天的编译,正常情况下就会编译成功了
此文章版权归Jack Ou所有,如有转载,请註明来自原作者