linux核心的配置和編譯
之所以要對核心進行配置,這是很多都是硬體的需求,和軟體的需求。就是選擇自己需要的,去掉自己不要的。
配置核心的方法:
make config:基於文字模式的互動式配置。
make menuconfig:基於文字模式的選單型配置。
上面有兩種配置方法,但是make config是幾乎不用的。他是一問一答的配置方法。很費時間。所以,都是採用make menuconfig來配置核心的。
1.3核心配置結果
核心配置通常在乙個已有的配置檔案基礎上,通過修改得到新的配置檔案,linux核心提供的一系列可以供參考的核心配置檔案,位於arch/$cpu/configs.
核心編譯:
編譯核心。
編譯核心模組
製作ramdisk。
2.1編譯核心:
make zimage:
make bzimage:
區別:在x86平台,zimage只能用於小宇512k的核心。
如果需要瀏覽詳細的編譯資訊,可使用引數v=1。
即是:
make zimage v=1
make bzimage v=1
編譯好的核心位於arch//boot目錄下。
接下來是配置的簡單例項:
執行make menuconfig:
然後選擇倒數第二項load an alternate configuration file:
選擇我們準備好的配置檔案:(放在該linux原始碼的根目錄的):
然後保持退出。這樣,我們就完成了乙個配置檔案的匯入。接下來我們就可以在此基礎上進行修改,去掉我們不要的,加上我們想要的功能。最後,儲存修改退出。這樣就配置好了乙個核心。
然後執行make bzimage。進行核心編譯。
編譯好的核心檔案存放在/arch/x86/boot/。如上所顯示的。
2.2編譯核心模組
1.make modules.
2.make modules_install.
編譯核心模組。
將編譯好的核心模組,從核心源**目錄複製到/lib/modules下,為打包做準備。
接下來就是編譯核心模組:make modules。[m]表示的就是核心模組。
經過差不多乙個多鐘,核心模組編譯完成:
編譯完成的核心模組是散落在我們linux核心的各個資料夾裡的。所以我們需要把他們收集起來,打包。
在打包前我們先看一下/lib/modules目錄:
這是原來系統的。
接著我們執行:make modules_install這個命令:
開始安裝核心模組:
這其實不是在安裝,是在將散落的核心模組集中到我們的/lib/modules目錄下面。
完成之後,我們檢視一下/lib/modules目錄:
我們看到增加了乙個目錄:2.6.39.裡面就是我們編譯好的核心模組。
接下來就是將它打包:
命令:
最後在/boot/的目錄下會有:initrd.img-2.6.39:
接著將核心拷貝到該目錄:
最後就是修改/boot/grub.conf/grub.cfg增加剛才核心的啟動項。
儲存退出,重新啟動。
登陸時選擇從我們剛才製作的核心啟動。登陸後,使用uname -r 命令檢視核心的版本號:
這個就是我們剛才製作的核心。我們看見,所有的檔案資料都沒有變化。這是我們更換的只是執行在記憶體的核心,而執行在硬碟/flash的檔案系統沒有變化。
使用者空間的檔案系統:在硬碟/flash.
核心:執行在記憶體。
4.清理核心
1.make clean.
2.make distclean.
我們清理的就是在配置和編譯的時候產生的中間檔案。make clean是清除.o檔案,make distclean是清除所有生成的的中間檔案。
3 1 Linux核心的發展與演變
這一塊感覺知道一點常識就可以了 首先linux作業系統是一種類unix作業系統,作者是linus torvalds 至今不知道這個名字怎麼讀,linux 託瓦斯?linux五大支柱 1 unix作業系統 2 minix作業系統,也是unix的轉殖系統,linux剛開始就是參照minix系統的 3 g...
核心配置和編譯
三 config 四 之間聯絡 config kconfig makefile 之間的關係 1 linux核心原始碼的每個目錄下都有乙個makefile,由該 makefile 對源 的編譯 鏈結等操作進行控制。2 編譯完成後,每個源 目錄下都會生成乙個名叫 built in.o的檔案。這個檔案由每...
3 1 Linux中的檔案IO 1 2節
1 整個嵌入式linux核心課程包括5個點,按照學習順序依次是 裸機 c高階 uboot和系統移植 linux應用程式設計和網路程式設計 驅動。2 典型的嵌入式產品就是基於嵌入式linux作業系統來工作的。典型的嵌入式產品的研發過程就是 第一步讓linux系統在硬體上跑起來 系統移植工作 第二步基於...