歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 如何編譯內核

如何編譯內核

日期:2017/2/27 14:17:57   编辑:更多Linux

如何編譯內核 內容提要:本文介紹編譯內核的具體操作和簡單原理,請各位高手品評並希望給學習Linux的新手一些幫助. 版權聲明:本文版權屬於岳光。本文件可以在非商業目的下自由傳播,但必須保持本文的完整,並包含本版權聲明。如果要將本文的全部或部分用於商業目的,需要得到本人同意。(請聯系:[email protected]同時歡迎大家提問) 准備工作: 內核(Kernel)即是Linux系統的最重要部分.它負責為軟件提供硬件設備的抽象,處理進程資源的分配,管理內存和文件系統,及網絡等.因此要想讀寫NTFS文件系統,就必需將核心編譯為包含NTFS模塊,要想撥號上網就必需使核心支持PPP協議…有了核心的強大功能才能使pppd,FTP,bash等程序得以有效的運行和開發.Linux的源代碼是公開的因此內核可定制編譯以適應不同的需要.(注意:編譯內核並不是重新安裝系統.) 要想編譯內核需先獲得其源代碼,源代碼可從安裝盤安裝,亦可下載解壓/usr/src/linuxxxxxx目錄中.(linuxxxxxxx目錄名可自定) 配置內核:(我的系統是Red Hat9) 首先make mrproper進行清理工作 其次必需配置要把什麼編入內核.執行make menUConfig進入配置程序.進入其中的分類後可見<>[]形式的條目移動光標按空格可選擇'*'M'空'.*表示編入內核.M表示編譯為模塊(即內核中並不含該部分有需要時自動載入,一定時間不用時自動卸載,以增強kernel的靈活性節省系統資源,減小kernel體積).'空'表示不編入,即新內核不支持該功能.配置完畢保存. 注意:由於內核配置繁瑣,有時只是想改變有限的條目,而對其它的配置一竅不通.這樣可使用默認配置並稍加修改.未經修改的/usr/src/linuxxxxx/.config及/usr/src/linuxxx/configs下的文件都是默認配置.可在make mrproper後cp /usr/src/linuxxx/configs/所選文件 usr/src/linuxxxx/.config(如直接使用.config自然就不用cp了)再make menuconfig 略加修改.配置完畢保存!還有其他類似menuconfig的工具如:xconfig(需在XWindows中運行) 等. 配置完成後make dep;make clean進行聯接 清除 編譯內核: 執行make bzImage make modules make modules_install 編譯成功!/usr/src/linxxxxxxx/arch/i386/boot/bzImage即為編好的內核. 配置LILO: 配置後即可引導內核. 將bzImage拷貝至/或/boot下(可更名) 編輯/etc/lilo.conf(編輯前內容類似下面) prompt timeout=50 default=WindowsXP boot=/dev/hda map=/boot/map install=/boot/boot.b message=/boot/message lba32 image=/boot/vmlinuz-2.4.20-8bigmem label=Linux initrd=/boot/initrd-2.4.20-8bigmem.img read-only append="root=LABEL=/" other=/dev/hda1 optional label=WindowsXP 在此文件中加入: image=”bzImage”的路徑/bzImage label=自定(即是啟動時的標識) read-only 配置後應類似: prompt timeout=50 default=WindowsXP boot=/dev/hda map=/boot/map install=/boot/boot.b


message=/boot/message lba32 image=/boot/vmlinuz-2.4.20-8bigmem label=Linux initrd=/boot/initrd-2.4.20-8bigmem.img read-only append="root=LABEL=/" other=/dev/hda1 optional label=WindowsXP image=/boot/bzImage label=Linuxnew read-only 然後保存,執行lilo命令. 重起後即可使用新內核了. 附: 編譯內核詳細請看kernelHOWTO(http://www.chinalinuxpub.com/doc/howto) 核心不宜過大否則影響速度.執行dmesg命令後有Memory:一項可觀察kernel大小 支持/ /boot文件系統的條目應以*編入否則內核無法使用.



Copyright © Linux教程網 All Rights Reserved