Ubuntu下編譯Linux核心常見錯誤總結
阿新 • • 發佈:2021-02-12
Ubuntu下編譯Linux核心常見錯誤總結
最近在做linux核心分析課程的大作業,涉及到了核心的編譯,遇見了不少問題,這裡做一個整理總結。
● 編譯核心執行make menuconfig命令時提示錯誤fatal error: curses.h: 沒有那個檔案或目錄
原因:缺少因為ubuntu系統中缺少一個套件 ncurses devel ,把此套件安裝下即可
解決方案:執行命令sudo apt-get install libncurses5-dev libssl-dev
● 編譯核心執行make menuconfig命令時提示錯誤fatal error:openssl/opensslv.h: 沒有那個檔案或目錄
原因:也是因為ubuntu系統中缺少對應的ssl套件
解決方案:執行命令sudo apt-get install build-essential openssl
● 編譯核心執行make menuconfig命令時提示錯誤/bin/sh : 1 : flex: not found
原因:沒有安裝flex和bison編譯工具
解決方案:執行命令sudo apt-get install flex bison
這類錯誤都是因為缺乏各種元件,因此建議在編譯核心前先執行下列命令,做好環境配置準備。
sudo apt-get update sudo apt-get install libncurses5-dev libssl-dev sudo apt-get install build-essential openssl sudo apt-get install flex bison
● 無法拷貝或者剪下資料夾到其他目錄,提示沒有許可權
原因:計算機裡很多資料夾,只有root使用者有許可權對其進行操作。
解決方案:使用nautilus檔案管理工具,便可以以root許可權進行操作。
sudo nautilus
● 對核心的檔案都沒有修改許可權,使用強制儲存命令:wq!也無效
原因:缺乏許可權對檔案進行讀寫操作。
解決方案:使用chmod命令修改檔案許可權(666代表所有使用者都有檔案讀、寫許可權)。
sudo chmod 666 檔名
● 使用apt-get install命令安裝軟體時提示“更換介質,請把標有xxx的碟片插入驅動器再按回車鍵”
原因:看提示應該是缺乏光碟機,我也是突然出現的這個錯誤
#deb cdrom:…
● 編譯核心時提示錯誤cc1: error: code model kernel does not support PIC mode
原因:看提示應該是不支援PIC模型,具體我也不太清楚
解決方案:在核心檔案下找到Makefile檔案,在其中的KBUILD_CFLAGS部分的末尾新增 -fno-pie。