1. 程式人生 > 其它 >Ubuntu下編譯Linux核心常見錯誤總結

Ubuntu下編譯Linux核心常見錯誤總結

技術標籤:問題解決方案linux核心ubuntu

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的碟片插入驅動器再按回車鍵”

原因:看提示應該是缺乏光碟機,我也是突然出現的這個錯誤

解決方案:在計算機中找到目錄/etc/apt/sources.list,右鍵選擇使用其他程式,用文字編輯器開啟sources.list,註釋掉第一行(deb cdrom:開頭的),就是在它前面加一個#,變成

#deb cdrom:…

● 編譯核心時提示錯誤cc1: error: code model kernel does not support PIC mode

原因:看提示應該是不支援PIC模型,具體我也不太清楚
解決方案:在核心檔案下找到Makefile檔案,在其中的KBUILD_CFLAGS部分的末尾新增 -fno-pie。
在這裡插入圖片描述