從頭開始構建LINUX[核心更新和資料],從頭開始linux

來源:互聯網
上載者:User

從頭開始構建LINUX[核心更新和資料],從頭開始linux

瞭解了LFS的內容後,至於核心的更新就一目瞭然了 http://www.cnblogs.com/2018/p/3979305.html http://www.cnblogs.com/2018/p/3981399.html

不過有些資料LFS上也沒有,如下是概要的匯總了相關的資料

 

核心更新

http://jingyan.baidu.com/article/08b6a591f187ff14a809228a.html

1、核心版本顯示命令uname  -r       (uname查看作業系統資訊,r選項查看核心版本)

2、升級步驟

l         下載核心源碼包linux-2.6.38.8.tar.bz2

l         根目錄下建一個目錄    cd /         mkdir linux-2.6.38.8

l         複製原始碼到目錄中  cp linux-2.6.38.8.tar.bz2 linux-2.6.38.8        /linux-2.6.38.8/

l         解壓源碼包    tar xjvf linux-2.6.38.8.tar.bz2

l         進入解壓出的目錄       cd linux-2.6.38.8

l         執行make menuconfig配置核心並儲存,注意CPU的選擇

l         執行核心make命令

l         編譯核心模組 make modules

l         安裝核心模組make modules_install

l         安裝核心make install

l         重啟電腦reboot

3、升級指令碼install_new_core

       #!/bin/sh

       cd /

       mkdir linux-2.6.38.8

       cp linux-2.6.38.8.tar.bz2 linux-2.6.38.8

       cd linux-2.6.38.8

       tar xjvf linux-2.6.38.8.tar.bz2

       cd linux-2.6.38.8

       make menuconfig

       make

       make modules

       make modules_install

       make install

       reboot 

最後建立initrd 檔案:  mkinitramfs -o /boot/initrd.img-linux-3.2.12

4、修改指令碼許可權並執行指令碼chmod u+x install_new_core      ./install_new_core

http://blog.csdn.net/jinble03/article/details/7070982

有些linux版本在make install之後會自動產生initd.img和修改引導程式檔案grub.cfg,但是ubuntu10.04並不會,所以就得我們自己來搞定啦

首先是產生initrd.img。

mkinitramfs 2.6.38.8  -o  /boot/initrd.img-2.6.38.8

如果系統提示沒有安裝mkinitramfs,那就apt-get install mkinitramfs

接著修改引導程式檔案grub.cfg

update-grub2

 

. 準備工作
切換為管理員權限,sudo –i 輸入使用者密碼 進入root 許可權
apt-get install build-essential kernel-package libncurses5-dev libqt3-headers
build-essential (基本的編程庫(gcc, make 等)
kernel-package (Debian 系統裡產生 kernel-image 的一些設定檔和工具)
libncurses5-dev (meke menuconfig 要調用的)

libqt3-headers (make xconfig 要調用的)

 

make install 以後,系統自動更新了啟動項,可以cat /boot/grub/grub.cfg 看下.之前的啟動項不能刪除,如果編譯核心不成功,之前的啟動項又不見了,你的系統也就跪了

 

Linux核心更新

http://www.zhukun.net/archives/6172

Linux核心Ramdisk(initrd)機制

http://blog.csdn.net/ruixj/article/details/3772752

在早期的Linux系統中,一般就只有磁碟片或者硬碟被用來作為Linux的根檔案系統,因此很容易把這些裝置的驅動程式整合到核心中。但是現在根檔案系統 可能儲存在各種存放裝置上,包括SCSI, SATA, 隨身碟等等。因此把這些裝置驅動程式全部編譯到核心中顯得不太方便。在Linux核心模組自動載入機制的介紹中,我們看到利用udevd可以實現實現核心模 塊的自動載入,因此我們希望根檔案系統的裝置驅動程式也能夠實現自動載入。但是這裡有一個矛盾,udevd是一個可執行檔,在根檔案系統被掛載前,是不 可能執行udevd的,但是如果udevd沒有啟動,那就無法自動載入根根據系統裝置的驅動程式,同時也無法在/dev目錄下建立相應的裝置節點。為瞭解 決這個矛盾,於是出現了initrd(boot loader initialized RAM disk)。initrd是一個被壓縮過的小型根目錄,這個目錄中包含了啟動階段中必須的驅動模組,可執行檔和啟動指令碼。包括上面提到的udevd,當 系統啟動的時候,booload會把initrd檔案讀到記憶體中,然後把initrd的起始地址告訴核心。核心在運行過程中會解壓initrd,然後把 initrd掛載為根目錄,然後執行根目錄中的/initrc指令碼,您可以在這個指令碼中運行initrd中的udevd,讓它來自動載入裝置驅動程式以及 在/dev目錄下建立必要的裝置節點。在udevd自動載入磁碟驅動程式之後,就可以mount真正的根目錄,並切換到這個根目錄中。

vmlinuz,Initrd和system.map

http://blog.csdn.net/powersaven/article/details/4107544

隨身碟安裝Linux系統

http://www.cnblogs.com/geekard/archive/2012/05/06/2486464.html

LiveCD

可以直接引導為可用 Linux 系統的 CD

http://blog.csdn.net/taochenchang/article/details/7622762

http://www.ibm.com/developerworks/cn/linux/l-fedora-livecd/index.html

GRUB2

http://linux-wiki.cn/wiki/Grub2%E9%85%8D%E7%BD%AE

 

 


誰在負責linux核心更新?

1、全世界的核心開發人員,具體你可以看核心原始碼內建的文檔。裡面有個文檔會寫了都有誰提交了原始碼。體積不小。核心的開發管理在 Linux 基金會。
2、為什麼不更新?新的硬體,新的功能,新的演算法,還有舊代碼的編寫錯誤,這些不需要加入和改進嗎?你現在還在用 windows 95嗎?
3、centos 是企業級主打穩定和安全的作業系統,他的核心都是需要酒精考驗的,這個穩定安全性測試過程非常長,而且原始碼的檢查也需要時間。所以這種主打穩定和安全的系統,都會去選擇很久都沒有找到問題的軟體版本。所以你見到的那個 centos 版本的核心還在 2.6 狀態。

樓主,這些問題你深入 Linux 學習就都能知道的,問這些內容沒什麼意義反而影響你的學習興趣。
 
怎升級linux核心

下載核心
如果您只是想編譯一個您已安裝核心的新版本(例如,實現 SMP 支援),那不需要下載任何代碼 -- 跳過此部分繼續下一屏。
您可以在 www.kernel.org/pub/linux/kernel 上找到核心代碼。當您進入到那後,您將發現核心的原始碼按核心版本(v2.2、v2.3 等),被組織到多個不同的目錄中。在每個目錄中,您將發現檔案被冠以"linux-x.y.z.tar.gz"和"linux-x.y.z.tar.bz2"。這些就是 Linux 核心的原始碼。您也將看到冠以 "patch-x.y.z.gz" 和 "patch-x.y.z.bz2" 的檔案。這些是用來更新前面完整的核心原始碼的補丁包。如果您希望編譯一個新的核心版本,您將需要下載這些"linux"檔案其中之一。
核心解包
如果您已從 kernel.org 下載一個新的核心,現在是要將其解包時候了。首先,cd /usr/src。如果這裡有一個存在的"linux"目錄,將其改名為"linux.old" ("mv linux linux.old",以 root 許可權)。
現在,可以解開新的核心包了。仍然在 /usr/src 目錄下,輸入 tar xzvf /path/to/my/kernel-x.y.z.tar.gz 或者 cat /path/to/my/kernel-x.y.z.tar.bz2 | bzip2 -d | tar xvf -,根據您下載的原始碼是用 gzip 或 bzip2 壓縮的。在輸入完此命令後,您下載的核心原始碼會被釋放到一個新的"linux"目錄下。注意 -- 全套核心原始碼通常將在硬碟上佔用超過 50 兆空間!
討論配置問題
在您編譯核心前,您需要配置它,配置是您精確控制在新核心中啟用(禁止)哪些核心功能的機會。您也將控制哪些會被編譯到核心的二進位映像(在啟動時被載入)而哪些被編譯到需要時載入的核心模組檔案。
老式配置核心的方法是極為痛苦的過程,並涉及到進入 /usr/src/linux 目錄並輸入 make config 命令。請放棄這種配置核心的方式 -- 除非您想在命令列上回答幾百個(對!幾百個)“yes/no”的問題。
配置的新途徑
我們是現代人類,我們不在輸入 make config,而是輸入 make menuconfig 或者 make xconfig。如果您想要配置您的核心,使用上述選擇之一。如果您輸入 make menuconfig,您將使用一個漂亮的基於文本的彩色菜......餘下全文>>
 

相關文章

聯繫我們

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