Linux 核心升級__Linux

來源:互聯網
上載者:User

核心終於編過並且升級了,本來打算抓緊繼續往下學習。但是在老婆的鼓勵下,感覺還是停下來總結下比較好,這樣對自己對別人都有所協助。

 

0、環境介紹

    我是在VirtualBox-3.1.6-59338-Win的虛擬機器上安裝了ubuntu-9.10-desktop-i386.iso。電腦本身是XP系統。

    注意,在進行下面之前最好做以下工作:

    1) 安裝了增強包。這個裝上後虛擬機器和我們的電腦之間切換很是方便,不需要按右ctl鍵了。至於其他的好處,現在還沒意識到,呵呵。

    2) 和主機(XP系統)之間設定好共用資料夾。這樣比較方便互連資料。

    3) 虛擬機器的硬碟空間最好要20G以上。因為核心解壓後就占很大空間了,再做其他的,可能就不方便了。

 

1、下載核心源碼

    地址為www.kernel.org,在“LatestStableKernel”下面有個綠色的箭頭,點擊就能下載了。我下載是2.6.33.2,下面以這個版本為例進行講解。

   將下載下來的linux-2.6.33.2.tar.bz2放在/usr/src下。


2、解壓核心源碼

    運行命令:

    #cd/usr/src

    #tar-jxvf linux-2.6.33.2.tar.bz2

    #ln-s linux-2.6.33.2 linux (將linux符號連結映射到linux-2.6.33.2)

    #cdlinux


3、#makemrproper

   該命令確保原始碼目錄下沒有不正確的.o檔案以及檔案的相互依賴。

   因為是剛下載的完整來源程式包,本步驟可以省略。但是如果這些來源程式被多次使用過,那麼本步驟不可以忽略。


4、配置核心

   注意:執行這步之前,需要先安裝libncurses,因為ubuntu預設沒有安裝。安裝命令為:

    #apt-getinstall libncurses5-dev


    配置可以使用下面命令中的一個:

    #makeconfig  (基於文本的最傳統的配置介面,不推薦使用)

    #makemenuconfig (基於文本菜單的配置介面)

    #makexconfig (需要QT已經被安裝)

    #makegconfig  (需要GTK+已經被安裝)

 

  通常我們都用第二個:#makemenuconfig

 

 

   具體配置核心,這裡不再詳述了。我第一次也什麼都沒有改動。


5、編譯核心

       注意:執行此命令前

            1)需要是root使用者才行。可以用su或者sudo命令。

            2)要確保/lib檔案夾是可以寫的,因為ubuntu預設為不可寫的。命令:                

                 #chmod777 /lib


       這個可要注意哦。我就是沒注意更改,然後執行了下面的編譯核心的命令就下班回家了,以為第二天來了就編譯好了。沒想到第二天來了發現執行了沒多久就停掉了,原因就是打算往/lib裡的某個檔案夾下考檔案時候,出錯了。


    下面開始編譯:

    #makebzImage ( 產生可執行檔Ubuntu核心引導檔案)

    #makemodules modules_install

    以上要花一兩個小時吧。


6、以上成功的話,核心就編譯成功了。下面更新核心

   #cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.33.2

    然後將將System.map複製至/boot下:

    #cp System.map /boot/System.map-2.6.33.2

    產生initrd.img:

   #cd/lib/modules/2.6.33.2

   #mkinitramfs-o /boot/initrd.img-2.6.33.2


   注意:這個地方有些要說明的。

            製作initrd.img,在Fedora下面一般是用mkinitrd,而在Ubuntu/Debian下是用mkintramfs.
            它們的用法稍微有些不一樣,如下所示:
            #mkinitrd /boot/initrd.img 2.6.33.2
            #mkintramfs 2.6.33.2 -o /boot/initrd.img

 

            我這個是Ubuntu/Debian,當然要用mkintramfs。我一開始沒分清 Fedora還是Ubuntu/Debian,用mkinitrd始終說找不到,查了下才發現,原來使用mkintramfs啊。


7、自動尋找新Ubuntu核心,並添加至grub引導

   #update-grub


8、好了,此時重啟,用命令(uname -r)查看下你的核心是不是2.6.33.2吧。

 

注意:以上都是依據核心版本為2.6.33.2寫的,但是請將所有相應的2.6.33.2替換為你的新的版本號碼。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.