构建GrapheneOS时触发Out-Of-Memory错误致机器卡顿
解决GrapheneOS(适配Pixel 7/panther)构建时OOM问题
问题原因
执行m -j4 vendorbootimage target-files-package时,同时构建两个目标会让编译进程的内存占用叠加,超过16GiB系统内存上限,触发内核OOM Killer终止进程,最终导致构建失败。单独执行target-files-package时,单个目标的内存占用在系统承受范围内,因此无异常。
解决方案
- 拆分构建任务,分两次执行:
先运行m vendorbootimage,待该任务完成后,再执行m target-files-package。每次仅处理一个构建目标,避免内存占用叠加。 - 降低并行编译任务数:
将命令改为m -j2 vendorbootimage target-files-package,减少同时运行的编译进程数量,降低整体内存消耗。 - 临时添加交换空间缓解内存压力:
- 创建16GiB临时swap文件:
sudo fallocate -l 16G /swapfile - 设置文件权限:
sudo chmod 600 /swapfile - 启用swap:
sudo mkswap /swapfile && sudo swapon /swapfile
构建完成后可清理swap:sudo swapoff /swapfile && sudo rm /swapfile
注意:使用swap会增加磁盘IO,导致构建速度变慢。
- 创建16GiB临时swap文件:
内容的提问来源于stack exchange,提问作者mano8659
相关产品推荐
相关产品推荐

