樹莓派編譯程序時遇到卡死的問題


樹莓派在編譯ROS程序的時候,卡在了這里,當時還以為是樹莓派性能不夠,查閱資料是樹莓派的swap交換空間不夠

搬磚:https://blog.csdn.net/wxz3wxz/article/details/70237302

這個問題出現的主要原因是我給樹莓派安裝的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,成功!!

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM