Tangwx

Tangwx

博客网站

树莓派编译程序时遇到卡死的问题

树莓派编译程序时遇到卡死的问题#

使用树莓派编译程序的时候,我遇到了程序比较大,编译到某个文件的时候树莓派会死机,关机之后重启可以继续使用,但是编译到同一个地方树莓派又死机的问题。

这个问题出现的主要原因是我给树莓派安装的 Ubuntu mate 16.04 系统默认设置的 swap 交换空间不够,而编译某些文件的时候需要较大的交换空间,树莓派的交换空间被用满所以树莓派看起来好像是死机了的样子。

解决方法,扩展 Ubuntu 的交换空间。

这里使用的方法参照了 前人的博客,深表感谢。

第一步:确保系统中有足够的空间来用做swap交换空间,我准备在一个独立的文件系统中添加一个 swap 交换文件,在 /opt/image 中添加 2G 的 swap 交换文件

sudo mkdir image
sudo touch swap

第二步:添加交换文件并设置其大小为 2G,使用如下命令

sudo dd if=/dev/zero of=/opt/image/swap bs=1024 count=2048000

过段时间就返回如下结果:
2048000+0 records in
2048000+0 records out
2097152000 bytes (2.1 GB, 2.0 GiB) copied, 242.095 s, 8.7 MB/s

PS:这个步骤说的好像很快的样子,但是给我等的都有点怀疑人生了,我一度以为又死机了,重启了 2 次,最后耐下心来等了几分钟,终于成功了,眼泪都要掉下来了。

第三步:创建(设置)交换空间,使用命令 mkswap

sudo mkswap /opt/image/swap

Setting up swapspace version 1, size = 2 GiB (2097147904 bytes)

第四步:检查现有的交换空间大小,使用命令 free

free -m

​ total used free shared buff/cache available
Mem: 925 185 28 14 711 660
Swap: 0 0 0

或者检查 meminfo 文件

grep SwapTotal /proc/meminfo

第五步:启动新增加的 2G 的交换空间,使用命令 swapon

sudo swapon /opt/image/swap

第六步:确认新增加的 2G 交换空间已经生效,使用命令 free

free -m

​ total used free shared buff/cache available
Mem: 925 328 56 32 541 502
Swap: 1999 0 1999

或者检查 meminfo 文件

grep SwapTotal /proc/meminfo

第七步:修改 /etc/fstab 文件,使得新加的 2G 交换空间在系统重新启动后自动生效

sudo vim /etc/fstab

在文件最后加入:

/opt/image/swap    /swap    swap    defaults 0 0

重启之后再次编译,YES,成功!!

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。