首先是準備條件:
①、有一台裝有ubuntu的機器
③、擁有root許可權
好,現在一切都準備好了,接下來就開始配置,編譯,安裝新核心吧!
1, 進入剛才的資料夾 /usr/src/linux-需要公升級的核心,輸入命令:
$ make mrproper
該命令的功能在於清除當前目錄下殘留的.config和.o檔案,這些檔案一般是以前編譯時未清理而殘留的。而對於第一次編譯的**來說,不存在這些殘留檔案,所以可以略過此步,但是如果該源**以前被編譯過,那麼強烈建議執行此命令,否則後面可能會出現未知的問題。
2, 配置編譯選項
作為作業系統的核心,其內容和功能必然非常繁雜,包括處理器排程,記憶體管理,檔案系統管理,程序通訊以及裝置管理等等,而對於不同的硬體,其配置選項也不相同,所以在編譯源**之前必須設定編譯選項。其實我覺得這一步是公升級核心整個過程中最有技術含量的,因為要根據自己的需要正確選擇yes or no需要對計算機方方面面的知識都有所了解。但是這裡的選項實在是太多了,大概有幾百項之多,我以前曾嘗試著一項一項的選,但是最後還是放棄了,因為有很多選項不是很明白。
既然這樣,難道沒有什麼簡便的方法麼? 當然有!那就是make menuconfig 或者make xconfig。我使用的是make menuconfig,但是前提條件是要裝ncurses。
tar zxvf ncurses.tar.gz #解壓縮並且釋放 檔案包
cd ncurses#進入解壓縮的目錄(注意版本)
./configure #按照你的系統環境製作安裝配置檔案
make #編譯源**並且編譯ncurses庫
su root #切換到root使用者環境
make install #安裝編譯好的ncurses庫
另外,在make menuconfig過程中也會有一些選項需要你來設定*, y, n 或者m,選擇*表示選項中的內容被直接編入核心中,選擇m表示選項中的內容不編入核心,而只是編成獨立的module,用到時才呼叫。
ok, 在當前檔案路徑下,輸入命令:
make menuconfig(或者用 make xconfig,我沒有啟用成功)
根據選單提示,選擇編譯配置選項,並儲存配置檔案為.config(也可以直接複製現有的.config檔案,我是這樣做的!!!)
3,確定依賴性
make dep
如果用現有的.config檔案,這裡會有很多核心新增加的驅動和功能讓你確認是否編入核心中,這個你就自己看著輸入y/n/m/?吧!
4,清除編譯中間檔案
輸入命令:make clean
5,生成新核心(這是我用的時間07:38-07:57,19分鐘。這裡時間的長短都取決於你機器的效能)
make bzimage
6,生成modules(這是我用的時間07:58-09:28)
make modules
7,安裝modules
就是把剛才編譯生產的modules拷到系統資料夾下,以供新核心呼叫。輸入命令:
make modules_install
一切都自動做好了。
8,建立要載入ramdisk的映像檔案
如果linux系統安裝在scsi磁碟上,這步是必須的,否則可以跳過。我的linux是裝在vmware上的,用的是虛擬的scsi磁碟,所以必須 要這一步。輸入命令:
mkinitramfs -o /boot/initrd-linux3.3.4.img 3.3.4
如果你的linux不是ubuntu,而是其他的發行版本,那麼使用的命令可能不是mkinitramfs,而是mkinitrd,但功能和用法類似。
9,按裝核心
輸入命令:make install
此時系統會把linux核心的映象檔案還有system.map考入到/boot下,然後會自動生成引導選單。
Ubuntu 核心公升級
ubuntu 16.04使用者要如何公升級到最新的linux kernel 呢?下面我們以linux kernel 4.10為例說一下步驟。首先我們在公升級到最新核心前應該先了解下它的特性,我們應該做到盡可能的了解我們計算機。linux kernel 4.10新特性 1 對 gtx 900 系列顯示...
Ubuntu 核心公升級
ubuntu 16.04使用者要如何公升級到最新的linux kernel 呢?下面我們以linux kernel 4.10為例說一下步驟。首先我們在公升級到最新核心前應該先了解下它的特性,我們應該做到盡可能的了解我們計算機。linux kernel 4.10新特性 1 對 gtx 900 系列顯示...
Ubuntu系統公升級核心
docker要求ubuntu系統的核心版本高於 3.10,伺服器核心版本太低,得把3.2.0 126.141版本公升級到 4.15.0 041500.201802011154,步驟如下 uname ar 開啟選中要公升級的核心版本,sudo dpkg i deb 命令報錯 package kmod ...