Before compiling a new kernel, what needs to be done?



A. Compile kernel modules
B. Configure the kernel options
C. Delete old kernel sources
D. Change to runlevel 1
E. All of the above

題解

編譯Linux kernel的步驟如下:

一、解壓縮kernel原始碼

二、如果有先前編譯kernel時用的設定檔,可以複製到原始碼目錄裡面來用。

三、接著要清空先前操作kernel原始碼時殘留的暫存檔案。如果要保留之前的設定檔,下達「make clean」指令;如果不要保留之前的設定檔,下達「make mrproper」指令。

四、執行「make XXconfig」相關指令,如「make menuconfig」、「make xconfig」、「make oldconfig」等等不同的方式來設置kernel的功能。

五、如果是早期的kernel版本(2.4之前),可能還需要使用「make dep」指令來建立模組的相依關係。

六、接著就可以開始進行kernel的編譯了。使用「make vmlinux」可以編譯出沒有壓縮過的kernel;使用「make bzImage」可以編譯出壓縮過的kernel;使用「make modules」可以編譯出kernel模組;使用「make all」可以將上述三種東西都編譯出來。

所以答案是選項B,必須要使用「make XXconfig」相關指令來設置kernel的功能。