歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> Linux核心重編與升級

Linux核心重編與升級

日期:2017/2/27 14:32:01   编辑:更多Linux
  1. Linux核心提供什麼功能   Linux 核心是一個檔案(/boot/vmlinuz for most case)   核心支持各項計算機硬件配備,讓所有程序可以透過核心與計算機硬件溝通。   有效率的核心必須與計算機狀況(硬件周邊)配合   核心提供周邊硬件驅動程序:網絡卡、聲卡、SCSI卡等   通訊協議:TCP/IP、PPP、Router等   核心提供檔案系統支持:ext2、umsdos、iso9660...   核心提供內存管理、多CPU平行處理....    2.Linux核心重編(Make Kernel)與升級有何不同   核心重編利用原始碼重新編譯,目的在打造一個新核心(不一定是新版)   核心升級利用新版本原始碼,以編譯方式,產生一個新版的核心   核心升級必須經過核心重編的程序  3.Linux核心何時需要重編   為核心瘦身,去除原有核心支持但用不到的功能時   新增原有核心不支持的功能(包括模塊)時   修正舊有核心錯誤(例如核心無法開機)時   核心升級時  4.Linux核心何時需要升級   舊版核心可能錯誤的修正(Bug Fix)   新接口設備或系統功能無法由舊版核心取得支持時   核心版本落後太多時  5.新版Linux核心何處取得   官方(Official)Kernel FTP Siteftp://ftp.kernel.org   Linux HeadQuartershttp://www.linuxhq.com   國內收集kernel網站ftp://ftp.mgt.ncu.edu.tw/Linux/kernelftp://ftp.nsysu.edu.tw/Linux/metalab.unc.edu/kernel.org/pub/linux/kernelftp://ftp.ccu.edu.tw/pub3/linux/kernel.org-pub/linux/kernel  6.Linux核心版本編號所代表的意義   Linux核心版本編號格式為:major.minor.patchlevelmajor : 主要版本編號,極少變動minor : 次要版本編號,這是Linux核心版本的血統patchlevel : 目前核心(次要)版本的修補編號   "uname -a" 可以讀取目前新的版本及核心重編的時間Linux nmc.nchu.edu.tw 2.2.15 #1 Wed May 31 10:56:54 CST 2000 i586 unknown代表核心版本為2.2.15,核心重編的時間為10:56:54 05/30/2000   單號的次要版本表示測試版,雙號代表正式(穩定)版本  7.Linux核心升級方式有哪些   直接由新版本核心原始檔,重編核心優點:直接升級至該核心版本缺點:你必須較多時間下載整個核心的原始檔(壓縮過2.2.15的核心原始檔約16MB大小)適合作較大幅度的版本提升,例如 2.2.6 --> 2.2.15   修補核心原始檔(Patch)利用這種方式升級,你所需要修補的次數為新版本與舊版本的版本修補次數編號差。例如:由2.2.12升級至2.2.15,你必須下載patch-2.2.13、patch-2.2.14及patch-2.2.15,並逐一修補後,再行編譯核心。修補的方式如下(:####首先你必須將patch file復制至/usr/src中#cd /usr/src#gzip -cd patch-2.2.13.gz patch -p0#gzip -cd patch-2.2.14.gz patch -p0#gzip -cd patch-2.2.15.gz patch -p0接著你就可以開始重編核心了。優點:Patch File一般比全部核心原始檔小很多(每一個Patch大小由數百KB到1 MB左右不等),下載較快。缺點:版本差距過大不適合以此方式升級。     8.重編核心   前置作業 備份舊有核心#cp /boot/vmlinuz /boot/vmlinuz.2.2.12   取得新核心壓縮檔(ex.linux-2.2.15.tar.gz),或修補程序文件(Patch)(ex.patch-2.2.13.gz, patch-2.2.14.gz, & patch-2.2.15.gz)   備份/usr/src/linux一般linux只是一個符號鏈接,你可以直接將之移除   將壓縮檔在/usr/src下解開#tar zxvf linux-2.2.15.tar.gz#mv linux linux-2.2.15#ln -s linux-2.2.15 linux   Change Directory To /usr/src/linux     重編核心的步驟 (以2.2.12升級至2.2.15為例) I. make mrproper在linux目錄下執行"make mrproper",此一步驟目的在清除不穩定目的檔(.o),確保核心重編時順利成功。這個步驟在修補核心(patch)後重編核心時,為重要且必要。II. make config (make menUConfig, make xconfig)這是重編核心時極重要的一個步驟,你必須針對系統現況,回答上百個問題,錯誤的選項可能導致核心無法使用。選像設定方式有三種:"make config"、"make menuconfig"及"make xconfig";"make config"采交談式一問一答;"make menuconfig"在文字模式下,采選單方式設定核心選項;"make xconfig"則是在圖形模式(X-Window)下的選單設定模式。當你完成冗長的設定程序之後,如果未指定設定內容儲存檔名,你的設定將會被儲存在./usr/src/linux/arch/i386/defconfig中,下次重編核心時,這就是你的預設(default)選項來源。III. make dep這個步驟幫你設定所的附設檔案,確保include file的相依關系。IV. make clean清除舊系統核心與driver,如果你第一次重編核心,你可以略過這個步驟。V. make zImage編制一個新的核心,如果你的心核心大小超過640KB,你必須改用"make bzImage"。如果你希望編制新核心的過程中,順帶制作一個開機片,你可使用"make zdisk" or "make bzdisk"(if new kernle is larger than 640KB)。這個步驟所需時間約20~40分鐘不等(or longer),端視你系統CPU與RAM數量而定。編譯成功後,新核心位置在/usr/src/linux/arch/i386/boot/zImage or /usr/src/linux/arch/i386/boot/zbImage。VI. 改變系統使用之核心#cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.2.15#cd /boot#ln -s /boot/vmlinuz-2.2.15 /boot/vmlinuz###請確定你原有核心以備份。(如前置作業所述)如果你為使用lilo開機,你必須在編譯核心時制作開機片,或直接用"dd"將核心加載磁盤中,以便開啟新系統。VII. 編譯系統模塊#make modules#make modules_install你必須執行此一步驟,否則你的心核心將無法使用你的舊模塊。新的模塊將會被安裝至/lib/modules/2.2.15目錄下。VIII. 更新System.map#cp /usr/src/linux/System.map /boot/System.map-2.2.15#rm /boot/System.map#ln -s System.map-2.2.15 System.map每一版本的系統核心都有其特有的系統功能映像文件System.map,以定義該版核心的所有功能信息。IX. 編輯lilo.conf,保留舊核心開機選項沒有人可以保證編輯的新核心一定可以開啟系統,保留舊核心開機選項是一個保險做法。你的lilo.conf修改之後大約會像以下的內容:   boot=/dev/hda  map=/boot/map  install=/boot/boot.b  prompt  timeout=50  default=linux    image=/boot/vmlinuz  label=linux  read-only  root=/dev/hda1    image=/boot/vmlinuz-2.2.12-20  label=linux.old  read-only  root=/dev/hda1  執行過lilo -v -v -v之後你就可以准備重新開啟新核心了。(By Reboot System)  X. uname -a   檢查新核心版本。(After Reboot)  [root@nmc ~]# uname -r  2.2.15 --> Kernel is now 2.2.15




Copyright © Linux教程網 All Rights Reserved