linux編譯核心

2021-09-26 07:22:55 字數 2734 閱讀 6210

linux核心是作業系統的核心,也是作業系統最基本的部分。

linux核心的體積結構是單核心的,但是它充分採用了微核心的設計思想、使得雖然是單核心,但工作在模組化的方式下,並且這個模組可以動態裝載或解除安裝;linux負責管理系統的程序、記憶體管理、裝置驅動程式、檔案和網路系統,決定著系統的效能和穩定性。如果我們在了解linux核心的基礎上根據自己的需要量身定製乙個更高效,更穩定的核心,就需要我們手動去編譯和配置核心裡的各項相關的引數和資訊了。

注意:如果兩個核心模組的版本不完全相同是不可以跨版本使用的

注意:/usr/src;一般而言,我們製作linux核心的時候把解壓縮之後的原始碼檔案放置這個目錄下,但需要在此目錄下建立乙個叫linux的軟鏈結指向解壓縮後的核心原始碼目錄。

(1)準備好開發環境

(2)獲取目標主機上硬體裝置的相關資訊

(3)獲取目標主機系統功能的相關資訊,例如要啟用的檔案系統

(4)獲取核心原始碼包:www.kernel.org

centos 6

安裝包組:

development tools

server platform development

centos 7

安裝包組:

development tools

server platform development

包:ncurses-devel

cpu:

# cat /proc/cpuinfo

# lscpu

x86info -a

pci裝置:

# lspci

-v,-vv

# lsusb

-v,-vv

# lsblk

步驟:

(1)# tar -xf linux-3.10.67.tar.xz -c /usr/src #將linux-3.10.67.tar.xz原始碼包解壓至/usr/src目錄下

(2)cd /usr/src #cd到/usr/src目錄下

(3)ln linu-3.10.67 linux #建立乙個名為linux的軟鏈結至linux-3.10.67

(4)cd linux #cd到linux軟鏈結目錄中

(5)make menuconfig #配置核心選項

(6)make [-j #] #編譯核心,可使用-j指定編譯執行緒數量

(7)make modules_install #安裝核心模組

(8)make install #安裝核心

重啟系統,選擇使用新核心

注意:如果編譯是在遠端連線上的話,如果因為網路抖動make會出現問題的,如果遠端連線斷開的話那執行的程序也就斷開了,這麼make的過程一定是當前系統上執行的子程序,有些一旦父程序掛了,子程序也將不復存在,俗話說:皮之不存毛將焉附,就是這個道理吧

所以我們使用乙個叫screen命令來操作,沒安裝自己安裝就是了,可以在乙個視窗上啟動n個虛擬的桌面,即使退出了也會保留之前的內容。

screen命令

開啟乙個screen:# screen

拆除乙個screen:# ctrl+a,d

列出screen:# screen -ls

連線至screen:# screen -r screen

關閉screen:# exit 或 ctrl+d

(1)配置核心選項

支援"更新"模式進行配置;子啊已有的.config檔案的基礎上進行"修改"配置

配置核心方法很多,主要有如下幾種:

(b)make menuconfig:基於ncurse庫編制的圖形工具介面

(c)make gconfig:基於gtk開發環境的視窗介面;「桌面平台開發包組」

(d)make xconfig:基於x11開發環境的視窗介面

由於對linux還處在初學階段,所以選擇了簡單的配置核心方法,即make menuconfig。在/usr/src/linux目錄下在終端上輸入make menuconfig,等待幾秒後,終端變成圖形化的核心配置介面。進行配置時,大部分選項使用其預設值,只有一小部分需要根據不同的需要選擇。

對每乙個配置選項,使用者有三種選擇,它們分別代表的含義如下:

<*>或[*] #將該功能編譯進核心

[ ] #不將該功能編譯進核心

[m] #將該功能編譯成可以在需要時動態裝載到核心中的**

(2)編譯

(a)多執行緒編譯:make [-j #]

(b)編譯核心中的一部分**:

(1)只編譯某子目錄中的相關**

# cd /usr/src/linux

# make path/to/dir/

(2)只編譯乙個特定的模組

# cd /usr/src/linux

# make path/to/dir/file.ko

(c)如何交叉編譯:

編譯的目標平台與當前編譯操作所在的平台不同

# make arch=arch_name

# make arch=arch_name help

(3)如何在執行過編譯操作的核心原始碼樹上做重新編譯

事先清理操作

# make clean:清理編譯生成的絕大多數檔案,但會保留config,以編譯外部模組所需要的檔案

# make mrproper:清理編譯生成的所有檔案,包括配置生成的config檔案及某些備份檔案

編譯 linux 核心

一 準備工作 tpv te0 首先說明,下面帶 號的行都是要輸入的命令列,且本文提到的所有命令列都在終端裡輸入。ixpub技術部落格 rc0p a6zx j 啟動linux系統,並用根使用者登入,進入終端模式下。6i sb w,a0 ixpub技術部落格c gng,y y ixpub技術部落格 k,...

linux編譯核心

red hat linux版本的核心編譯 make j2 編譯 make modules make modules install make install cd boot mkinitramfs o initrd.img 2.6.30.10 2.6.30.10 此項可能不需要 vim boot g...

Linux核心編譯

經過幾天的努力,本人終於把乙個核心編譯成功了,嘿嘿,現在把編譯過程記下來,以後再接再勵,注意 以下的操作都要有root許可權。linux 2.6.36.tar.bz2。2 解壓縮。cd usr src tar xvf home ibm linux 2.6.36.tar.bz2.usr src下就會多...