中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux內核移植的步驟是什么

發布時間:2022-01-26 17:04:41 來源:億速云 閱讀:183 作者:柒染 欄目:開發技術

今天給大家介紹一下Linux內核移植的步驟是什么。文章的內容小編覺得不錯,現在給大家分享一下,覺得有需要的朋友可以了解一下,希望對大家有所幫助,下面跟著小編的思路一起來閱讀吧。

Linux內核如何進行移植?所謂的內核移植就是從一種硬件平臺轉移到另一硬件平臺上進行移植。

方式一:kernel提供的源碼包,進行編譯替換

1、首先做好內核編譯前的準備工作,

主要有兩個準備工作,一是在linux kernel官網上下載源碼包,二是安裝好任意版本的linux Ubuntu 系統并下載相應的編譯工具。

在linux kernel上下載源碼包,網址為:https://www.kernel.org/pub/linux/kernel/,選擇對應的源碼包下載,注意源碼包的大小一般是幾十兆左右,命名后綴為.tar.bz2,如下圖所示:以linux_3.2.1為例子: Linux內核移植的步驟是什么

下載完成后,進行第二個準備工作,安裝任意版本的Ubuntu,安裝鏡像網址:http://www.ubuntu.org.cn/download ,像裝其他任意操作系統一樣,安裝完成Ubuntu操作系統,然后配置好聯網,進行apk_get的下載。以下過程在root權限下進行,安裝有關編譯程序。安裝make ,gcc, make-kpkg,運行menuconfig等等和編譯內核相關的工具。

有關命令:

 $sudo  apt-get install build-essential kernel-package   libncurses5-dev

注意: (1)libncurses5-dev是為之后配置內核能運行 make menuconfig程序做準備 Build-essential為編譯工具,kernel-package是編譯內核工具

(2)如果系統顯示無法查找到這三個文件,輸入#apt-get update更新數據源。 把剛剛下載的源碼包進行拷貝在ubuntu系統中,并解壓到/usr/src 目錄下,解壓可以直接右鍵解壓,或者采用以下命令進行解壓:

 $sudo tar Jvfx linux-3.4.88.tar.xz
2、開始配置編譯的相關文件及環境

首先,清理以前編譯時留下的臨時文件。如果是剛剛解開的包,不需要執行這步。如果是第二次或者是第n次編譯,那么一定要執行。 相關命令如下:

 #$ sudo make mrproper

然后將自己原本內核的配置文件拷貝過來成為新內核的配置文件,命令:

 #cp /boot/config-`uname -r` ./.config

這里需要說明的是,拷貝過來是很方便的,相當于直接給新的內核編譯提供對應的配置文件,告訴內核哪些文件要編譯,哪些不需要編譯,但是經過幾次的編譯修改,這一部分是可以自定義的,利用我們之前下載的工具menuconfig。

進入內核的源碼目錄

 #cd /usr/src/linux_3.2.1

執行以下命令:

 #make  menuconfig

注意:這個命令需要在超級用戶權限下執行,否則可能會報出一些莫名奇妙的錯誤。執行這個命令之后了,就可一看到下面的圖片了: Linux內核移植的步驟是什么 這個圖里面就可以對配置文件進行一個修改了,如果當初直接拷貝原內核的配置文件,那么此時直接選擇倒數第二行load an Alternate Configuration File,然后sava即可。

如果自己配置則選擇上面的任意目錄,進行選擇哪些文件要編譯,哪些不編譯,一般需要選擇的是設備驅動,選項是Device Drivers,選擇完畢后同樣保存save即可。

注意這兩種方式都可以,看用戶自己的選擇。具體的每個選項的內容解析見一下博客: http://forum.ubuntu.org.cn/viewtopic.php?t=134404

3、開始編譯新內核

編譯命令:

 #make all -j4

執行以上命令之后就可以編譯內核了, make all就是將內核以及模塊一起編譯。后面的參數-j4表示,cpu要開啟四個線程來編譯內核。一般來說,每個cpu可以開啟兩個線程來編譯內核,我的電腦是有兩個cpu,所以開啟了4個線程。這樣編譯真心很快的,以前沒有發現這樣編譯,只有一個線程編譯真心夠等好長時間的。

4、編譯完成之后,就可以進行內核的安裝了

我們將源代碼目錄下的arch/x86_64/boot/bzImage復制到/boot/下面,因為我下載的源代碼版本為linux-3.2.1,但是需要根據自己的cpu類型,如是x86架構還是amd,或者是32位或64位,在相應的目錄下尋找bzImage。 所以復制的命令為:

 #cp arch/x86_64/boot/bzImage /boot/vmlinuz-3.2.1

這里需要說明,bzImage必須得有,是編譯成功完成的一個生成文件,如果沒有此文件,對不起,編譯失敗,請重新回去編譯。vmlinuz-3.2.1 是自己主動命令的,可以自己改,但一般都是這種命令方式。

5、將源代碼目錄下的System.map復制到/boot目錄下:

命令:

 #cp /usr/src/linux-3.2.1/System.map System.map-3.2.1
6、.將源代碼目錄下的.config復制到/boot/目錄下:

命令:

 #cp .config /boot/config-3.2.1
7、安裝模塊

命令:

 #make modules_install
8、生成initrd.img文件
 #cd /lib/modules/3.2.1 #update-initramfs –c –k 3.2.1
9、.切換到/boot/grub/目錄下,自動查找新內核,并添加至grub引導
 #update-grub
10、修改開機grub啟動時間間隔,命令如下:
 #cd /ect/default #sudo nano ./grub

將hidden兩行代碼注釋掉,這樣開機啟動的grub就會出現,可以由你選擇改啟動哪個內核版本。

 #GRUB_HIDDEN_TIMEOUT=0 #GRUB_HIDDEN_TIMEOUT_QUIET=tru

更改完成之后,在重新生成grub.cfg文件,命令和上面一樣:

 #update-grub
11、切換至grub.cfg目錄

以文本形式查看,是否更新有新內核的啟動項,如果有即可不用修改,如果沒有,進行手動修改。

 #cd /boot/grub #sudo nano ./grub.cfg

手動修改,按照原來內核的格式進行修改,只用修改新內核的名字而已。

12、重啟電腦,在previous version中選擇啟動新編譯的內核,成功進入系統。

輸入內核版本檢測命令:

 命令:#uname -r

就會出現新內核的名稱!!!恭喜,替換內核成功!

方式二:下載內核安裝包deb,進行升級替換

首先必須說明的是,這種方式我嘗試了兩臺電腦,兩個不同的內核升級,均為成功,原因不詳: 具體步驟簡單如下:

1.下載deb包

http://kernel.ubuntu.com/~kernel-ppa/mainline/ 上下載所需升級包。此處下載的是64位的3.5.4版本的3個deb包:

 linux-headers-3.5.4-030504_3.5.4-030504.201209142010_all.deb linux-headers-3.5.4-030504-generic_3.5.4-030504.201209142010_amd64.deb linux-image-3.5.4-030504-generic_3.5.4-030504.201209142010_amd64.deb
2.安裝deb包

首先安裝架構無關的即帶all的headers包

 sudo dpkg -i linux-headers-3.5.4-030504_3.5.4-030504.201209142010_all.deb sudo dpkg -i linux-headers-3.5.4-030504-generic_3.5.4-030504.201209142010_amd64.deb sudo dpkg -i linux-image-3.5.4-030504-generic_3.5.4-030504.201209142010_amd64.deb

安裝后,/boot目錄下會生成新的內核的相關文件,/lib/modules目下也生成了相應模塊。

3.更新啟動項grub

按照上述的步驟9開始,與上面一樣。更新完了grub.cfg,然后重新啟動,進行新的內核即可。

以上就是Linux內核移植的步驟是什么的全部內容了,更多與Linux內核移植的步驟是什么相關的內容可以搜索億速云之前的文章或者瀏覽下面的文章進行學習哈!相信小編會給大家增添更多知識,希望大家能夠支持一下億速云!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

三河市| 庆云县| 湘阴县| 嵊泗县| 大田县| 兴海县| 尖扎县| 全南县| 耒阳市| 卓资县| 廉江市| 金溪县| 京山县| 宣汉县| 砚山县| 长泰县| 天柱县| 宝丰县| 通州区| 定日县| 霞浦县| 资阳市| 吉林市| 毕节市| 怀柔区| 临猗县| 莱西市| 中方县| 桑日县| 五指山市| 金门县| 龙岩市| 平原县| 广丰县| 芜湖县| 湖北省| 章丘市| 曲沃县| 中宁县| 南安市| 正定县|