Linux核心升級指南

來源:互聯網
上載者:User

一、升級背景

前段時間公司有個項目用到了簡訊收發的業務,採購了兩台16口的Wavecom USB簡訊貓裝置,伺服器作業系統是ReadHat5.4,核心2.6.18,插上裝置後,作業系統無法自動識別該裝置,原因是沒有預裝該裝置USB轉串口的驅動程式,可能是只有這個產品不能識別,因為曾經我用過單口的GSM
MODEM簡訊貓測試,可以自動識別出來。後來從供應商處得到資訊,說是他們這個產品比較新,版本低的核心沒有預裝新的USB轉串口驅動程式,但現在2.6.32以上核心都內建了USB轉串口的驅動,所以最後通過升級系統核心的方式解決了這個問題。

二、升級測試環境

宿主機:Window xp 

虛擬機器:VM8.0.2

OS:CentOS 5.8 Final

核心(升級前):2.6.18

所有操作步聚使用root許可權

三、升級步聚

1、下載核心

到www.kernel.org下載一個新版本核心源碼,當前最新穩定版為3.3.4。這裡下載的是:http://www.kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.35/linux-2.6.35.13.tar.bz2

2、解壓核心檔案

linux-2.6.35.13.tar.bz2上傳到/usr/local/src目錄下,使用tar -jxvf linux-2.6.35.13.tar.bz2命令解壓,得到linux-2.6.35.13目錄

3、清除檔案

cd linux-2.6.35.13(下面所有操作都是在此目錄,除非切換了新的目錄)

make distclean 

清除以前編譯核心產生的所有檔案(除了清除可執行檔和目標檔案外,configure所產生的Makefile也會清除掉)

如果是第一次編譯,這步聚可以省略


4、複製設定檔

將系統預設的核心設定檔複製到linux-2.6.35.13目錄下,並命名.config

cp /boot/config-2.6.18-308.el5 .config



5、核心配置(make menuconfig)

核心配置,有三種方式:

a)、make config:基於文本的最為傳統的配置介面,不推薦使用

b)、make menuconfig:基於文本選單的配置介面,字元終端下推薦使用。

注意:使用make menuconfig 需要安裝ncurses(yum -y install ncurses-devel) ,如果未安裝會報如下錯誤:

解決方式:在連網的情況下,在終端輸入yum -y install ncurses-devel,自動安裝ncurses-devel包,如所示:

c)、make xconfig:基於圖形視窗模式的配置介面,Xwindow下推薦使用

注意:如果要用make xconfig,則要先安裝QT3開發包,並配置。如果未安裝會報如下錯誤:

解決方案:安裝QT3開發包,再執行make xconfig。

1)、以make menuconfig為例配置核心編譯環境,在終端輸入make menuconfig,進入如所示介面:

2)、在,用上下鍵移動到菜單倒數第二項(Load an Alternate Configuration File),再用左右鍵移動到(Select),按斷行符號進入介面:

3)、在,移動游標至(OK),按斷行符號鍵,儲存設定檔。回到所示介面:

4)、在中,用上下鍵移動到菜單最後一項(Save an Alternate Configuration File),用左右鍵移動到(Select),按斷行符號鍵,儲存設定檔。

5)、選中(Exit),按斷行符號鍵,退出配置。

6、修改.config設定檔

在.config檔案搜尋CONFIG_SYSFS_DEPRECATED_V2,會發現# CONFIG_SYSFS_DEPRECATED_V2 is not set這一行,將該行修改為CONFIG_SYSFS_DEPRECATED_V2=y。假如不修改該行,在升級重新啟動後會報如下的錯,導致啟動失敗:

Volume group "VolGroup00" not foundUnalbe to access resume device (/dev/VolGroup00/LogVol00)mount: could not find filesystem '/dev/root'setuproot:moving /dev failed: No such file or directorysetuproot:error mounting /proc: No such file or directorysetuproot:error mounting /sys: No such file or directoryswitchroot: mount failed: No such file or directoryKernel panic - not syncing:Attempted to kill init!

7、編譯核心

make all

大概需要30至60分鐘左右,具體時間看機子的效能

8、編譯模組

make modules_install

9、安裝

make install

10、修改initrd檔案

假如升級重啟後會報“insmod: error inserting ‘/lib/dm-region-hash.ko’: –1 File exits”錯誤,這是由於initrd裡面重複載入dm-region-hash.ko這個模組了,因此需要修改產生的initrd檔案(不是所有的機器都會出現這個錯),修改的方式如下:

a)、解壓initrd檔案 #cp /boot/initrd-2.6.35.13.img /tmp
#cd /tmp
#ls
initrd-2.6.35.13.img
#mkdir newinitrd
#cd newinitrd
#zcat ../initrd-2.6.35.13.img | cpio -i
#ls

b)、編輯init檔案,重複資料刪除中的其中兩行c)、重新打包核心檔案#find . | cpio -c -o > ../initrd#cd ..#gzip -9 < initrd > initrd-2.6.35.13.img 
d)、將核心檔案( initrd-2.6.35.13.img)重新複製到/boot目錄下

#cp  initrd-2.6.35.13.img /boot


11、修改grub.conf,讓引導程式預設從新的核心啟動

vi /boot/grub/grub.conf

grub.conf檔案如所示:

將中將的default=1改成default=0

12、重啟系統

#uname -r

2.6.35.13

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.