了解了LFS的內(nèi)容后,至于內(nèi)核的更新就一目了然了http://www.CUOXin.com/2018/p/3979305.htmlhttp://www.CUOXin.com/2018/p/3981399.html
不過(guò)有些資料LFS上也沒(méi)有,如下是概要的匯總了相關(guān)的資料
內(nèi)核更新http://jingyan.baidu.com/article/08b6a591f187ff14a809228a.html
1、內(nèi)核版本顯示命令uname-r(uname查看操作系統(tǒng)信息,r選項(xiàng)查看內(nèi)核版本)
2、升級(jí)步驟
l下載內(nèi)核源碼包linux-2.6.38.8.tar.bz2
l根目錄下建一個(gè)目錄cd/mkdirlinux-2.6.38.8
l復(fù)制源代碼到目錄中cplinux-2.6.38.8.tar.bz2linux-2.6.38.8/linux-2.6.38.8/
l解壓源碼包tarxjvflinux-2.6.38.8.tar.bz2
l進(jìn)入解壓出的目錄cdlinux-2.6.38.8
l執(zhí)行makemenuconfig配置內(nèi)核并保存,注意CPU的選擇
l執(zhí)行內(nèi)核make命令
l編譯內(nèi)核模塊makemodules
l安裝內(nèi)核模塊makemodules_install
l安裝內(nèi)核makeinstall
l重啟計(jì)算機(jī)reboot
3、升級(jí)腳本install_new_core
#!/bin/sh
cd/
mkdirlinux-2.6.38.8
cplinux-2.6.38.8.tar.bz2linux-2.6.38.8
cdlinux-2.6.38.8
tarxjvflinux-2.6.38.8.tar.bz2
cdlinux-2.6.38.8
makemenuconfig
make
makemodules
makemodules_install
makeinstall
reboot
最后創(chuàng)建initrd文件:mkinitramfs-o/boot/initrd.img-linux-3.2.12
4、修改腳本權(quán)限并執(zhí)行腳本chmodu+xinstall_new_core./install_new_core
http://blog.csdn.net/jinble03/article/details/7070982
有些linux版本在makeinstall之后會(huì)自動(dòng)生成initd.img和修改引導(dǎo)程序文件grub.cfg,但是Ubuntu10.04并不會(huì),所以就得我們自己來(lái)搞定啦
首先是生成initrd.img。
mkinitramfs2.6.38.8-o/boot/initrd.img-2.6.38.8
如果系統(tǒng)提示沒(méi)有安裝mkinitramfs,那就apt-getinstallmkinitramfs
接著修改引導(dǎo)程序文件grub.cfg
update-grub2
.準(zhǔn)備工作切換為管理員權(quán)限,sudo–i輸入用戶密碼進(jìn)入root權(quán)限apt-getinstallbuild-essentialkernel-packagelibncurses5-devlibqt3-headersbuild-essential(基本的編程庫(kù)(gcc,make等)kernel-package(Debian系統(tǒng)里生成kernel-image的一些配置文件和工具)libncurses5-dev(mekemenuconfig要調(diào)用的)
libqt3-headers(makexconfig要調(diào)用的)
makeinstall以后,系統(tǒng)自動(dòng)更新了啟動(dòng)項(xiàng),可以cat/boot/grub/grub.cfg看下.之前的啟動(dòng)項(xiàng)不能刪除,如果編譯內(nèi)核不成功,之前的啟動(dòng)項(xiàng)又不見(jiàn)了,你的系統(tǒng)也就跪了
Linux內(nèi)核更新http://www.zhukun.net/archives/6172
Linux內(nèi)核Ramdisk(initrd)機(jī)制http://blog.csdn.net/ruixj/article/details/3772752
在早期的Linux系統(tǒng)中,一般就只有軟盤(pán)或者硬盤(pán)被用來(lái)作為L(zhǎng)inux的根文件系統(tǒng),因此很容易把這些設(shè)備的驅(qū)動(dòng)程序集成到內(nèi)核中。但是現(xiàn)在根文件系統(tǒng)可能保存在各種存儲(chǔ)設(shè)備上,包括SCSI,SATA,U盤(pán)等等。因此把這些設(shè)備驅(qū)動(dòng)程序全部編譯到內(nèi)核中顯得不太方便。在Linux內(nèi)核模塊自動(dòng)加載機(jī)制的介紹中,我們看到利用udevd可以實(shí)現(xiàn)實(shí)現(xiàn)內(nèi)核模塊的自動(dòng)加載,因此我們希望根文件系統(tǒng)的設(shè)備驅(qū)動(dòng)程序也能夠?qū)崿F(xiàn)自動(dòng)加載。但是這里有一個(gè)矛盾,udevd是一個(gè)可執(zhí)行文件,在根文件系統(tǒng)被掛載前,是不可能執(zhí)行udevd的,但是如果udevd沒(méi)有啟動(dòng),那就無(wú)法自動(dòng)加載根根據(jù)系統(tǒng)設(shè)備的驅(qū)動(dòng)程序,同時(shí)也無(wú)法在/dev目錄下建立相應(yīng)的設(shè)備節(jié)點(diǎn)。為了解決這個(gè)矛盾,于是出現(xiàn)了initrd(bootloaderinitializedRAMdisk)。initrd是一個(gè)被壓縮過(guò)的小型根目錄,這個(gè)目錄中包含了啟動(dòng)階段中必須的驅(qū)動(dòng)模塊,可執(zhí)行文件和啟動(dòng)腳本。包括上面提到的udevd,當(dāng)系統(tǒng)啟動(dòng)的時(shí)候,booload會(huì)把initrd文件讀到內(nèi)存中,然后把initrd的起始地址告訴內(nèi)核。內(nèi)核在運(yùn)行過(guò)程中會(huì)解壓initrd,然后把initrd掛載為根目錄,然后執(zhí)行根目錄中的/initrc腳本,您可以在這個(gè)腳本中運(yùn)行initrd中的udevd,讓它來(lái)自動(dòng)加載設(shè)備驅(qū)動(dòng)程序以及在/dev目錄下建立必要的設(shè)備節(jié)點(diǎn)。在udevd自動(dòng)加載磁盤(pán)驅(qū)動(dòng)程序之后,就可以mount真正的根目錄,并切換到這個(gè)根目錄中。
vmlinuz,Initrd和system.maphttp://blog.csdn.net/powersaven/article/details/4107544
U盤(pán)安裝Linux系統(tǒng)http://www.CUOXin.com/geekard/archive/2012/05/06/2486464.html
LiveCD可以直接引導(dǎo)為可用Linux系統(tǒng)的CD
http://blog.csdn.net/taochenchang/article/details/7622762
http://www.ibm.com/developerworks/cn/linux/l-fedora-livecd/index.html
GRUB2http://linux-wiki.cn/wiki/Grub2%E9%85%8D%E7%BD%AE
新聞熱點(diǎn)
疑難解答
圖片精選