Linux 編譯時內存不足


1、編譯內核出現問題:No space left on device

 AS      .tmp_kallsyms1.o

.tmp_kallsyms1.S:2: fatal error: when writing output to /tmp/ccf0eS0W.s: No space left on device

compilation terminated.

make: *** [.tmp_kallsyms1.o] Error 1

arm-none-Linux-gnueabi-objcopy: 'vmlinux': No such file

cp: cannot stat `linux.bin': No such file or directory

gzip: linux.bin: No such file or directory

./mkimage: Can't open kernel.bin: No such file or directory

root@debian:/mnt/kernelsrc/linux-3.3# 

主要是系統 /tmp/空間不足引起的,tmp文件夾空間不足了,不能滿足編譯的需求,編譯的中間文件不能寫入。

解決辦法 mkdir  文件夾——你可以使用的文件夾 比如說 mkdir /mnt/kernelsrc/tmp

然后只要export TMPDIR=/mnt/kernelsrc/tmp

這樣就不會出現 tmp文件夾不夠用的情況。

 

2、編譯程序時,如果出現類似virtual memory exhausted: Cannot allocate memory的錯誤時,可以用下面的方法解決

創建swap掛載點

# mkdir /opt/images/

# rm -rf /opt/images/swap

設置掛載swap的大小,64M*32=2GB

# dd if=/dev/zero of=/opt/images/swap bs=64M count=32

# mkswap /opt/images/swap

開啟swap

# swapon /opt/images/swap

這個時候,可以執行之前內存不足時的命令了,正常情況下,執行時間會比較長,但是能過去

最后,可以考慮關閉swap並刪除掛載文件

# swapoff swap
# rm -f /opt/images/swap


免責聲明!

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



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