关于树莓派编译工作空间卡死情况的解决办法

我用的是买树莓派时官方带的SD卡16G,安装的时xubuntu桌面版。感觉运行还是比较流畅的,之前安装过ubuntu-mate、kubuntu、lubuntu。只有xubuntu是比较喜欢的。

在我安好之后,马上安装了ros-melodic-desktop-full完整版的ros。

问题:

在我对我github拉下来的激光雷达测试的包进行catkin_make的时候总是出现卡死。屏幕完全不受控制,重启之后仍然如此。总是卡在66%。

解决方法:

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

  1 sudo mkdir image
  2 sudo touch swap

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

  1 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

注意:此过程等待时间有点长,不要以为是树莓派死机了。

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

  1 sudo mkswap /opt/image/swap

返回结果:

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

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

  1 free -m

返回结果:

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

或者检查meminfo文件:

  1 grep SwapTotal  /proc/meminfo

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

  1 sudo swapon /opt/image/swap

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

  1 free -m

返回:

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

或者检查meminfo文件

  1 grep SwapTotal  /proc/meminfo
第七步:修改/etc/fstab文件,使得新加的2G交换空间在系统重新启动后自动生效。
  1 sudo vim /etc/fstab
在文件最后加入:
  1 /opt/image/swap    /swap    swap    defaults 0 0

重启之后在编译就会成功了。

上一篇:工信部明确2G/3G迁移转网,用户该选择NB-IoT还是Cat.1替代?


下一篇:10G个整数,乱序排列,要求找出中位数。内存限制为 2G。只写出思路即可