新聞中心
抱歉,需要更具體的標題才能在此為您撰寫文章。請?zhí)峁┚唧w的話題或問題,我將在此基礎上為您撰寫一篇1500字左右的文章。

成都創(chuàng)新互聯(lián)成都企業(yè)網(wǎng)站建設服務,提供成都做網(wǎng)站、成都網(wǎng)站建設、成都外貿(mào)網(wǎng)站建設網(wǎng)站開發(fā),網(wǎng)站定制,建網(wǎng)站,網(wǎng)站搭建,網(wǎng)站設計,成都響應式網(wǎng)站建設,網(wǎng)頁設計師打造企業(yè)風格網(wǎng)站,提供周到的售前咨詢和貼心的售后服務。歡迎咨詢做網(wǎng)站需要多少錢:028-86922220
成都網(wǎng)站建設公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導10多年以來專注數(shù)字化網(wǎng)站建設,提供企業(yè)網(wǎng)站建設,高端網(wǎng)站設計,響應式網(wǎng)站制作,設計師量身打造品牌風格,熱線:028-86922220linux的uboot啟動映像,zImage和uImage的區(qū)別
如何生成zImage和uImage
內(nèi)核編譯(make)之后會生成兩個文件,一個Image,一個zImage,其中Image為內(nèi)核映像文件,而zImage為內(nèi)核的一種映像壓攜搜猜縮文件,Image大約為4M,而zImage不到2M。
如何生成uImage文件?首先在uboot的/tools目錄下尋找mkimage文件,把其copy到系統(tǒng)/usr/local/bin目錄下,這樣就完成制作工具。然后在內(nèi)核目錄下運行make uImage,如果成功,便可以在arch/arm/boot/目錄下發(fā)現(xiàn)uImage文件,其大小比zImage多64個字節(jié)。
zImage和uImage之間的漏譽區(qū)別:
vmlinux是內(nèi)核文件,
zImage是一般情況下默認的壓縮內(nèi)核映像文件,壓縮vmlinux,加上一段解壓啟動代碼得到。
uImage則是使用工具mkimage對普通的壓縮內(nèi)核映像文件(zImage)加工而得。它是uboot專用的映像文件,它是在zImage之前加上一個長度為64字節(jié)的“頭”,說明這個內(nèi)核的版本、加載位置、生成時間、大小等信息;其0x40之后與zImage沒區(qū)別。
其實兩者就是一個自動跟手動的區(qū)別,有了uImage頭部的描辯型述,u-boot就知道對應Image的信息,如果沒有頭部則需要自己手動去搞那些參數(shù)。
如何編譯Linux內(nèi)核
一、編譯環(huán)境
ubuntu 5.10,要編譯的內(nèi)核源碼版本2.6.12 二、下載并解壓源代碼 首先從linux內(nèi)核的官網(wǎng)
www.kernel.org
把源代碼下載下來。為了和后面實驗要求符合,我們要下載使用O(1)調(diào)度器的源碼。因此這里下載了2.6.12版本源碼。下載 下linux-2.6.12.tar.bz2,將下載源碼放入/usr/src/目錄下。如下圖所示:解壓該源碼:三、構建編譯環(huán)境 現(xiàn)在我們得到的只是源代碼,只是許許多多的文本文件,要想使這些文件成為可以運行的程序,需要使用編譯器進行編譯以及鏈接。編譯器有很多,但在里linux下一般都使用gnu的開源編譯器套件,這里包括gcc等,現(xiàn)在我們安裝基本的編譯器套件,如圖所示: 四、安裝ncurses庫 這里使用Ubuntu系統(tǒng),因為系統(tǒng)自帶的ncurses庫在支持make menuconfig的時候會出錯,所以,依然要安裝ncurses庫,這里我們從源碼安裝。首先去ncurses官網(wǎng)
上下載源碼。這里我們下載5.9版本,并通過簡單的安裝方式.configure 和make、make install方式安裝。如下圖所示:五、配置內(nèi)核 一切準備工作做完,現(xiàn)在我們就可以配置內(nèi)核了,這里我們使用make menuconfig方式。如下圖:在使用make menuconfig這個命令后,會出現(xiàn)如下的字符界面,我們就可以在這個界掘讓前面上對內(nèi)核進行配置。但是如果這不是你之一次配置這個內(nèi)核,那么請先運行:make mrproper來清除以前的配置,回到默認配置,然后再運行:make menuconfig.
在這里,我們以對cpu支持的配置為例,其余的選項就不一一詳述,首先查看本機的cpu類型,如下圖:
在這里我們可以看到,我的電腦的cpu是AMD Athlon的,因此我們在cpu選項里面選用AMD,如下圖所示:
在這里需要注意的是:
A、 cpu的設置在linux內(nèi)核編譯過程中,不是必需的,即使保持默認的386選項(我們剛才把它改成了AMD),內(nèi)核也能正常運行,只不過運行慢一些而已。
B、 一般容易出問題的地方在于Device Driver的設置。我在一開始就遇到了在內(nèi)核編譯完,通過grub引導系統(tǒng)過程中報 “ALERT! /dev/sda1 does not exist . Dropping to a shell!”的錯誤。這是因為硬盤驅(qū)動沒有配置好而造成的。運行l(wèi)spci命令,查看到下面這行:
由此確定,需要配置SCSI、PCI-X、Fusion-MPT驅(qū)動,需要在響應的驅(qū)動選項里將設置為,因為硬盤驅(qū)動是在系統(tǒng)開機的時候加載,所以不能以模塊形式加載。
把這幾個驅(qū)動內(nèi)部的選項全部改為:
六、編譯內(nèi)核
對內(nèi)核的配置完成之后,現(xiàn)在就可以開始編譯內(nèi)核了,只需要一個簡單的make命令即可,之后我們就只能慢慢等,直到編譯完成,在我的滑滑電腦上,大概用了25分鐘。下圖是運行make后的部分輸出。
七、安裝內(nèi)核
編譯完成之后,我們需要安裝內(nèi)核,主要分為如下幾步:
1)、安裝模塊
安裝模塊,對于內(nèi)核來判清說,每一個內(nèi)核版本有自己的模塊目錄,默認在/lib/modules/內(nèi)核版本號這個目錄下,make modules_install會創(chuàng)建對應的目錄,并把對應的模塊文件拷貝過去。注意,這一步必須要在編譯過內(nèi)核再做。
2)、拷貝bzImage文件
bzImage文件是內(nèi)核映像文件,是啟動內(nèi)核所必需的,我們應當把它拷貝到/boot目錄下。在這里,我為自己新建了一個目錄,我們把它拷貝過去,并且按照一般內(nèi)核映像文件的命名方式為它改名為vmlinuz-2.6.12。
3)、制作initrd文件
initrd文件命名為initrd.img-2.6.12
4)、修改grub啟動項
要能引導起我們的新系統(tǒng),需要更改grub配置,增加啟動選項。ubuntu 5.10的grub版本比較低,配置文件為/boot/grub/menu.lst,高版本的grub可能在/boot/grub/grub.cfg里。在原有啟動項基礎上,添加我們自己的啟動項,并把它設為默認啟動項,配置如下:
5)重啟
關于linux內(nèi)核映像文件是的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。
創(chuàng)新互聯(lián)【028-86922220】值得信賴的成都網(wǎng)站建設公司。多年持續(xù)為眾多企業(yè)提供成都網(wǎng)站建設,成都品牌建站設計,成都高端網(wǎng)站制作開發(fā),SEO優(yōu)化排名推廣服務,全網(wǎng)營銷讓企業(yè)網(wǎng)站產(chǎn)生價值。
分享名稱:什么?(linux內(nèi)核映像文件是)
文章轉(zhuǎn)載:http://m.fisionsoft.com.cn/article/dhhgopo.html


咨詢
建站咨詢
