1》公升級前準備
1、確認目前版本,避免重複公升級
[root@free root]# uname -r
3、了解硬體環境,知道自己的計算機內究竟安裝了哪些介面裝置,每項硬體資源所使用的系統資源,尤其是介面卡、控制卡使用的irq、dma以及i/o address。
4、解壓核心檔案,以linux-2.6.40.tar.gz為例
#tar zxvf linux-2.6.40.tar.gz
#cp -r linux-2.6.40 /usr/scr/my-2.6.40-kernel 將解壓後的linux目錄複製到存放核心原始碼的/usr/src目錄,並將目錄名改為my-2.6.40-kernel
#cd /usr/src
#ln -s my-2.6.40-kernel linux 將my-2.6.40-kernel目錄鏈結到linux,到此準備就緒,開始公升級核心,並編譯核心檔案。
2》 核心的定製
切換到放置核心源**的目錄# cd /usr/scr/linux
首先清除核心源**樹#make mrproper
選擇定製方式:1、文字互動方式 #make config
2、文字窗**互方式 #make menuconfig
3、圖形窗**互方式 #make xconfig ←使用圖形介面進行設定
4、使用現有配置檔案 #make oldconfig
以圖形介面進行設定為例:#make xconfig
立即會出現linux kernel configuration對話方塊。單擊任乙個分類的按鈕,就會出現該類的對話方塊。對話方塊中的問題就是系統功能的設定,必須依據實際情形回答。在每個問題的前面都會有三個選項:y即yes表示啟動該項功能;m即module,表示該項功能可編譯成功能模組,然後以外掛程式的方式載入,無需在編譯時放入系統核心,並非所有的功能都可模組化,假如該項功能無法編譯成模組,則此處的選項會變成「-」號;n即no表示關閉該項功能。某些功能彼此之間存在著關聯性,當關鍵性功能的選項被關閉後,相關的功能便不起作用,此時這些相關功能的字型顏色都會變成灰色,表示不能選擇或無法設定。
3》核心與模組編譯與安裝
1、生成依賴關係
#make dep ←鏈結程式**與函式庫
#make clean ←刪除不必要的模組和檔案
2、編譯核心
#make bzimage ←開始編譯系統核心
3、安裝新編譯的核心
#make install ←安裝新編譯完成的核心
4》檢視更新配置的檔案
可以檢視新核心 #ls /boot/vmlinuz*
5》模組的安裝與管理
1、編譯核心模組 #make modules
2、安裝已編譯模組 #make modules_install
#depmod -a ←安裝編譯完成的模組
編譯完成的系統核心bzimage或zimage檔案,放置於/usr/src/linux/arch/i386/boot目錄下。執行make bzimage命令是為了避免所編譯出來的核心過於龐大,而導致編譯過程失敗;使用make zimage命令進行編譯時產生的核心較大,但在系統啟動時的效能會較好。
有時因為外掛程式模組的關係,必須重建initrd檔案,執行mkinitrd /boot/initrd (核心版本)命令即可,如:mkinitrd /boot/initrd 2.6.40 ;使用者可以執行make zdisk(或make bzdisk)命令編譯系統核心,並建立引導盤。
6》更換核心
編譯核心之後並不代表一切工作都已經完成,還需要更換新的核心。由於新的系統核心可能導致系統無法啟動,所以請先備份檔案與重要資料,並準備好linux引導盤以防萬一。建議先將/boot目錄下的所有檔案做備份,並用mkbootdisk命令製作引導盤。
可按以下步驟更換系統核心:
[root@free linux]# cd /boot
[root@free root]# rm system.map
[root@free root]# rm vmlinuz
[root@free root]# mv /usr/src/linux/system.map system.map
[root@free root]# mv /usr/src/linux/arch/i386/boot/bzimage./vmlinuz
default=0 #預設啟動第一項
timeout=3 #啟動選單選擇等待時間,超過此時間系統自動啟動預設項
splashimage=(hd0,8)/boot/grub/splash.xpm.gz #指定系統啟動畫面
hiddenmenu #隱藏選單選擇項
title linux(new) #新增系統啟動選單選擇項linux(new)
root (hd0,8) #根目錄位於第一硬碟,編號為8的分割槽
kernel /boot/vmlinuz #指定啟動核心
initrd /boot/initrd.img #指定系統啟動時初始化檔案
title linux(old) #系統啟動選單選擇項linux(old),原來的系統啟動項,建議先保留
root (hd0,8) #根目錄位於第一硬碟,編號為8的分割槽
kernel /boot/vmlinuz-2.6.35.11-83.fc14.x86_64 ro root=uuid=7a610e29-e8f4-4851-8587-6a8c323ed87b rd_no_luks rd_no_lvm rd_no_md rd_no_dm lang=zh_cn.utf-8 keytable=us rhgb quiet
#指定啟動核心及版本
initrd /boot/initramfs-2.6.35.11-83.fc14.x86_64.img
Linux核心裁剪
通過編寫驅動,從應用層,核心層,再到底層硬體之間的關係。明白核心驅動的意義。現在開始才是重頭戲,前面的都是鋪墊。正式編寫驅動前,要先了解linux核心 的組成。linux主要是由五個子系統組成 程序排程,記憶體管理,檔案系統,網路介面以及程序間通訊。linux源 用來實現這些功能,linux原始碼包...
linux系統核心版本公升級
1 cat proc version 2 uname a 1 lsb release a 即可列出所有版本資訊 這個命令適用於所有的linux發行版,包括redhat suse debian 等發行版。2 cat etc redhat release 這種方法只適合redhat系的linux 3 c...
Android核心編譯與裁剪
編譯android核心 命令 mkdir android 進入上一步中建立好的目錄android。命令 cd android 命令 git clone 檢視goldfish核心在git中的所有分支資訊。命令 git branch a 命令 git branch android goldfish 2....