導航:首頁 > 編程系統 > linux安裝內核

linux安裝內核

發布時間:2023-07-20 00:56:42

『壹』 如何在linux上安裝內核頭文件

什麼系統?CentOS、Fedora、RHEL等直接用yum
install
kernel-headers。
Ubuntu嘗試用apt-get
install。
不過,建議安裝前,先查看一下當前使用的內核版本
linux下可能會有2個內核共存。例如2.6.18和2.6.33共存。每次啟動時,都會選定一個內核版本。那麼。安裝kernel-headers時,選擇的版本應當與當前使用的內核版本一致。
就是2.6.18的內核配2.6.18的kenrl-headers。
因為以前曾經有人遇到過不匹配的狀況,導致某些程序功能無法安裝使用。
例如2.6.33的kernel已經發布安裝但2.6.33的kernel-headers還沒有發布。
結果以2.6.33內核登錄系統後,安裝kernel-headers時就出錯了。
可以使用uname
-r來查看當前內核版本。
使用yum
list
|
grep
kernel-headers來查看當前yum倉庫中的kernel-headers的版本是否和內核版本一致。
如果一致,直接yum
install
kernel-headers
如果不同,重啟系統,換其他內核版本登錄後,再yum
install。
Ubuntu參考執行

『貳』 如何在Linux上通過GRUB添加內核參數

如果你在使用GRUB引導裝載程序,想修改或添加內核參數,你可以編輯GRUB配置文件。下面是針對特定發行版在GRUB的配置文件中添加內核啟動參數的方法。
在Debian或Ubuntu上添加內核啟動參數在基於Debian的系統上,如果你想在系統啟動時添加內核參數,你可以編輯 /etc/default/grub 目錄下的GRUB配置模板。在 GRUB_CMDLINE_LINUX_DEFAULT 變數中以 「name=value」 的格式添加內核參數。
$ sudo -e /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="...... name=value"
然後運行下面的命令來生成一個GRUB的配置文件。
$ sudo update-grub 如果無法找到 update-grub 命令,你可以通過下面的命令安裝它。
$ sudo apt-get install grub2-common 在Fedora上添加內核啟動參數在Fedora上,想要在啟動時添加內核參數,你可以編輯 /etc/default/grub目錄下的 GRUB 配置模板。在 GRUB_CMDLINE_LINUX 變數中以 「name=value」 的格式添加內核參數。
$ sudo -e /etc/default/grub GRUB_CMDLINE_LINUX="...... name=value"
然後運行下面的命令生成 GRUB2 配置文件。
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg 在CentOS上添加內核啟動參數在CentOS上,想要在啟動時添加內核參數,你可以直接編輯GRUB配置文件 /boot/grub/grub.conf。在配置文件中,找到描述默認使用的Linux映像的條目。文件中最頂行的字元串 「default=N」會指示哪一個條目是默認的映像。
找到默認的映像條目後,在以 「kernel /vmlinuz-」 開頭的那一段的結尾附加上內核參數。參數的格式為 「name=value」 。

『叄』 Linux內核配置與編譯相關流程

linux內核配置與編譯相關流程1、清除臨時文件、中間文件和配置文件
make
clean
不刪除配置文件。
make
mrproper
make
distclean
刪除編輯的backup文件、補丁文件等2、確定目標系統的軟硬體配置情況,比如CPU的類型,網卡的型號,所需要支持的網路協議。3、使用命令配置內核
make
config
基於文本模式的交互配置。
make
menuconfig
基於文本模式的菜單配置。
make
oldconfig
使用已有的配置文件(.config),但是會詢問新增的配置選項。
make
xconfig
圖形化的配置(需要安裝圖形化系統)。4、編譯內核
make
zImage
make
bzImage
區別:在X86平台上,zImage只能用於小雨512k內核。如果需要獲取詳細編譯信息,則在後面加上V=1.
編譯好的內核位於arch/<cpu>/boot/目錄下。
5、編譯內核模塊
make
moes
6、安裝內核模塊
make
moes_install
將編譯好的內核模塊從內核源代碼目錄到/lib/moes下。7、製作
init
ramdisk
mkinitrd
$initrd-$version
-$version內核安裝(X86)1、cp
arch/X86/boot/bzImage
/boot/vmliuz
-$version2、cp
$initrd
/boot/3、修改etc/grub.conf

/etc/lilo.conf$version為所編譯的內核版本號。

『肆』 如何在Linux上安裝內核頭文件

當你在編譯一個設備驅動模塊時,你需要在系統中安裝內核頭文件。內核頭文件同樣在你編譯與內核直接鏈接的用戶空間程序時需要。當你在這些情況下安裝內核頭文件時,你必須確保內核頭文件精確地與你當前內核版本匹配(比如:3.13.0-24-generic)。

如果你的內核是發行版自帶的內核版本,或者使用默認的包管理器的基礎倉庫升級的(比如:apt-ger、aptitude或者yum),你也可以使用包管理器來安裝內核頭文件。另一方面,如果下載的是kernel源碼並且手動編譯的,你可以使用make命令來安裝匹配的內核頭文件。
現在我們假設你的內核是發行版自帶的,讓我們看下該如何安裝匹配的頭文件。
在 Debian、Ubuntu 或者 Linux Mint 上安裝內核頭文件
假設你沒有手動編譯內核,你可以使用apt-get命令來安裝匹配的內核頭文件。
首先,使用dpkg-query命令檢查是否有可用的內核頭文件。
$ dpkg-query -s linux-headers-$(uname -r)

dpkg-query: package 'linux-headers-3.11.0-26-generic' is not installed and no information is available

接著使用下面的命令安裝匹配的內核頭文件。
$ sudo apt-get install linux-headers-$(uname -r)

驗證頭文件是否成功安裝。
$ dpkg-query -s linux-headers-$(uname -r)

Package: linux-headers-3.11.0-26-generic
Status: install ok installed

Debian、Ubuntu、Linux Mint默認頭文件在/usr/src下。
在 Fedora、CentOS 或者 RHEL 上安裝內核頭文件
假設你沒有手動編譯內核,你可以使用yum命令來安裝匹配的內核頭文件。
首先,用下面的命令檢查系統是否已經安裝了頭文件。如果下面的命令沒有任何輸出,這就意味著還沒有頭文件。
$ rpm -qa | grep kernel-headers-$(uname -r)

接著用yum命令安裝頭文件。這個命令會自動找出合適的頭文件並安裝。
$ sudo yum install kernel-headers

驗證包安裝的狀態。
$ rpm -qa | grep kernel-headers-$(uname -r)

『伍』 如何給linux安裝新內核

一、獲取內核源碼

二、解壓內核源碼

首先以root帳號登錄,然後進入/usr/src子目錄。如果用戶在安裝Linux時,安裝了內核的源代碼,則會發現一個linux-x.y.z的子目錄。該目錄下存放著內核x.y.z的源代碼。此外,還會發現一個指向該目錄的鏈接linux。刪除該連接,然後將新內核的源文件拷貝到/usr/src目錄中,並解壓:

#tarzxvfLinux-2.3.14.tar.gz

文件釋放成功後,在/usr/src目錄下會生成一個linux子目錄。其中包含了內核2.3.14的全部源代碼。將/usr/include/asm、/usr/inlude/linux、/usr/include/scsi鏈接到/usr/src/linux/include目錄下的對應目錄中。

#cd/usr/include

#rm-Rfasmlinux

#ln-s/usr/src/linux/include/asm-i386asm

#ln-s/usr/src/linux/include/linuxlinux

#ln-s/usr/src/linux/include/scsiscsi

刪除源代碼目錄中殘留的.o文件和其它從屬文件。

#cd/usr/src/linux

#makemrproper

三.增量補丁

有時不需要完全重新安裝,只需打增量補丁,類似升級,在內核源碼樹根目錄運行:

patch-p1<../patch-x.y.z

四.內核源碼樹目錄:

arch:包含和硬體體系結構相關的代碼,每種平台佔一個相應基啟的目錄。和32位PC相關的代碼存放在i386目錄下,其中比較重要的包括kernel(內核核心部分)、mm(內存管理)、math-emu(浮點單元模擬)、lib(硬體相關工具函數)、boot(引導程序)、pci(PCI匯流排)和power(CPU相關狀態)。

block:部分塊設備驅動程序。

crypto:常用加密和散列演算法(如AES、SHA等),還有一些壓縮和CRC校驗演算法。

Documentation:關於內核各部分的通用解釋和注釋。

drivers:設備驅動程序,每個不同的驅動占亂明用一個子目錄。

fs:各種支持的文件系統,如ext、fat、ntfs等。

include:頭文件。其中,和系統相關的頭文件被放置在linux子目錄下。

init:內核初始化代碼(注意不是系統引導代碼)。

ipc:進程間通信的代碼。

kernel:內核的最核心部分,包括進程調度、定時器等,和平台相關的一部分代碼放在arch/*/kernel目錄下。

lib:庫文件代碼。

mm:內存管理代碼,和平台相關的一部分代碼放在arch/*/mm目錄下。

net:網路相關代碼,實現了各種常見的網路協議。

scripts:用於配置內核文件的腳本文件。

security:主要是一個SELinux的模塊。

sound:常用音頻設備的驅動程序等。

usr:實現了一個cpio。

在i386體系下,系統引導將從arch/i386/kernel/head.s開始執行,並進而轉移到init/main.c中的main()函數初始化內核。

五.配置內核

#cd/usr/src/linux

內核配置方法有三種:

(1)命令行:makeconfig

(2)菜單模式的配置界面:makemenuconfig

(3)Xwindow:makexconfig

Linux的內核配置程序提供了一系列配置選項。對於每一個配置選項,用戶可以回答"y"、"m"或"n"。其中"y"表示將相應特性的支持或設備驅動程序編譯進內核;"m"表示將相應特性的支持或設備驅動程序編譯成可載入模塊,在需要時,可由系統或用戶自行加入到內核中去;"n"表示內核不提供相應特性或驅動程序的支持。由於內核的配置選項非常多,本文只介紹一些比較重要的選項。

1、Codematurityleveloptions(代碼成熟度選項)

Promptfordevelopmentand/orincompletecode/drivers(CONFIG_EXPERIMENTAL)[N/y/?]如果用戶想要使用還處於測試階段的代碼或驅搏陪如動,可以選擇「y」。如果想編譯出一個穩定的內核,則要選擇「n」。

2、Processortypeandfeatures(處理器類型和特色)

(1)、Processorfamily(386,486/Cx486,586/K5/5x86/6x86,Pentium/K6/TSC,PPro/6x86MX)[PPro/6x86MX]選擇處理器類型,預設為Ppro/6x86MX。

(2)、MaximumPhysicalMemory(1GB,2GB)[1GB]內核支持的最大內存數,預設為1G。

(3)、Mathemulation(CONFIG_MATH_EMULATION)[N/y/?]協處理器模擬,預設為不模擬。

(4)、MTRR(MemoryTypeRangeRegister)support(CONFIG_MTRR)[N/y/?]

選擇該選項,系統將生成/proc/mtrr文件對MTRR進行管理,供Xserver使用。

(5)、Symmetricmulti-processingsupport(CONFIG_SMP)[Y/n/?]選擇「y」,內核將支持對稱多處理器。

3、Loadablemolesupport(可載入模塊支持)

(1)、Enableloadablemolesupport(CONFIG_MODULES)[Y/n/?]選擇「y」,內核將支持載入模塊。

(2)、Kernelmoleloader(CONFIG_KMOD)[N/y/?]選擇「y」,內核將自動載入那些可載入模塊,否則需要用戶手工載入。

4、Generalsetup(一般設置)

(1)、Networkingsupport(CONFIG_NET)[Y/n/?]該選項設置是否在內核中提供網路支持。

(2)、PCIsupport(CONFIG_PCI)[Y/n/?]該選項設置是否在內核中提供PCI支持。

(3)、PCIaccessmode(BIOS,Direct,Any)[Any]該選項設置Linux探測PCI設備的方式。選擇「BIOS」,Linux將使用BIOS;選擇「Direct」,Linux將不通過BIOS;選擇「Any」,Linux將直接探測PCI設備,如果失敗,再使用BIOS。

(4)Parallelportsupport(CONFIG_PARPORT)[N/y/m/?]選擇「y」,內核將支持平行口。

5、PlugandPlayconfiguration(即插即用設備支持)

(1)、PlugandPlaysupport(CONFIG_PNP)[Y/m/n/?]選擇「y」,內核將自動配置即插即用設備。

(2)、ISAPlugandPlaysupport(CONFIG_ISAPNP)[Y/m/n/?]選擇「y」,內核將自動配置基於ISA匯流排的即插即用設備。

6、Blockdevices(塊設備)

(1)、NormalPCfloppydisksupport(CONFIG_BLK_DEV_FD)[Y/m/n/?]選擇「y」,內核將提供對軟盤的支持。

(2)、EnhancedIDE/MFM/RLLdisk/cdrom/tape/floppysupport(CONFIG_BLK_DEV_IDE)[Y/m/n/?]選擇「y」,內核將提供對增強IDE硬碟、CDROM和磁帶機的支持。

7、Networkingoptions(網路選項)

(1)、Packetsocket(CONFIG_PACKET)[Y/m/n/?]選擇「y」,一些應用程序將使用Packet協議直接同網路設備通訊,而不通過內核中的其它中介協議。

(2)、Networkfirewalls(CONFIG_FIREWALL)[N/y/?]選擇「y」,內核將支持防火牆。

(3)、TCP/IPnetworking(CONFIG_INET)[Y/n/?]選擇「y」,內核將支持TCP/IP協議。

(4)TheIPXprotocol(CONFIG_IPX)[N/y/m/?]選擇「y」,內核將支持IPX協議。

(5)、AppletalkDDP(CONFIG_ATALK)[N/y/m/?]選擇「y」,內核將支持AppletalkDDP協議。

8、SCSIsupport(SCSI支持)

如果用戶要使用SCSI設備,可配置相應選項。

9、Networkdevicesupport(網路設備支持)

Networkdevicesupport(CONFIG_NETDEVICES)[Y/n/?]選擇「y」,內核將提供對網路驅動程序的支持。

10、Ethernet(10or100Mbit)(10M或100M乙太網)

在該項設置中,系統提供了許多網卡驅動程序,用戶只要選擇自己的網卡驅動就可以了。此外,用戶還可以根據需要,在內核中加入對FDDI、PPP、SLIP和無線LAN(WirelessLAN)的支持。

11、Characterdevices(字元設備)

(1)、Virtualterminal(CONFIG_VT)[Y/n/?]選擇「y」,內核將支持虛擬終端。

(2)、(CONFIG_VT_CONSOLE)[Y/n/?]

選擇「y」,內核可將一個虛擬終端用作系統控制台。

(3)、Standard/generic(mb)serialsupport(CONFIG_SERIAL)[Y/m/n/?]

選擇「y」,內核將支持串列口。

(4)、Supportforconsoleonserialport(CONFIG_SERIAL_CONSOLE)[N/y/?]

選擇「y」,內核可將一個串列口用作系統控制台。

12、Mice(滑鼠)

PS/2mouse(aka"auxiliarydevice")support(CONFIG_PSMOUSE)[Y/n/?]如果用戶使用的是PS/2滑鼠,則該選項應該選擇「y」。

13、Filesystems(文件系統)

(1)、Quotasupport(CONFIG_QUOTA)[N/y/?]選擇「y」,內核將支持磁碟限額。

(2)、Kernelautomountersupport(CONFIG_AUTOFS_FS)[Y/m/n/?]選擇「y」,內核將提供對automounter的支持,使系統在啟動時自動mount遠程文件系統。

(3)、DOSFATfssupport(CONFIG_FAT_FS)[N/y/m/?]選擇「y」,內核將支持DOSFAT文件系統。

(4)、ISO9660CDROMfilesystemsupport(CONFIG_ISO9660_FS)[Y/m/n/?]

選擇「y」,內核將支持ISO9660CDROM文件系統。

(5)、NTFSfilesystemsupport(readonly)(CONFIG_NTFS_FS)[N/y/m/?]

選擇「y」,用戶就可以以只讀方式訪問NTFS文件系統。

(6)、/procfilesystemsupport(CONFIG_PROC_FS)[Y/n/?]/proc是存放Linux系統運行狀態的虛擬文件系統,該項必須選擇「y」。

(7)、Secondextendedfssupport(CONFIG_EXT2_FS)[Y/m/n/?]EXT2是Linux的標准文件系統,該項也必須選擇「y」。

14、NetworkFileSystems(網路文件系統)

(1)、NFSfilesystemsupport(CONFIG_NFS_FS)[Y/m/n/?]選擇「y」,內核將支持NFS文件系統。

(2)、SMBfilesystemsupport(tomountWfWsharesetc.)(CONFIG_SMB_FS)

選擇「y」,內核將支持SMB文件系統。

(3)、NCPfilesystemsupport(tomountNetWarevolumes)(CONFIG_NCP_FS)

選擇「y」,內核將支持NCP文件系統。

15、PartitionTypes(分區類型)

該選項支持一些不太常用的分區類型,用戶如果需要,在相應的選項上選擇「y」即可。

16、Consoledrivers(控制台驅動)

VGAtextconsole(CONFIG_VGA_CONSOLE)[Y/n/?]選擇「y」,用戶就可以在標準的VGA顯示方式下使用Linux了。

17、Sound(聲音)

Soundcardsupport(CONFIG_SOUND)[N/y/m/?]選擇「y」,內核就可提供對音效卡的支持。

18、Kernelhacking(內核監視)

MagicSysRqkey(CONFIG_MAGIC_SYSRQ)[N/y/?]選擇「y」,用戶就可以對系統進行部分控制。一般情況下選擇「n」。

六、編譯內核

(一)、建立編譯時所需的從屬文件

#cd/usr/src/linux

#makedep

(二)、清除內核編譯的目標文件

#makeclean

(三)、編譯內核

#makezImage

內核編譯成功後,會在/usr/src/linux/arch/i386/boot目錄中生成一個新內核的映像文件zImage。如果編譯的內核很大的話,系統會提示你使用makebzImage命令來編譯。這時,編譯程序就會生成一個名叫bzImage的內核映像文件。

(四)、編譯可載入模塊

如果用戶在配置內核時設置了可載入模塊,則需要對這些模塊進行編譯,以便將來使用insmod命令進行載入。

#makemoles

#makemodelus_install

編譯成功後,系統會在/lib/moles目錄下生成一個2.3.14子目錄,裡面存放著新內核的所有可載入模塊。

七、啟動新內核

(一)、將新內核和System.map文件拷貝到/boot目錄下

#cp/usr/src/linux/arch/i386/boot/bzImage/boot/vmlinuz-2.3.14

#cp/usr/src/linux/System.map/boot/System.map-2.3.14

#cd/boot

#rm-fSystem.map

#ln-sSystem.map-2.3.14System.map

(二)、配置/etc/lilo.conf文件。在該文件中加入下面幾行:

default=linux-2.3.14

image=/boot/vmlinuz-2.3.14

label=linux-2.3.14

root=/dev/hda1

read-only

(三)、使新配置生效

#/sbin/lilo

(四)、重新啟動系統

#/sbin/reboot

新內核如果不能正常啟動,用戶可以在LILO:提示符下啟動舊內核。然後查出故障原因,重新編譯新內核即可。


閱讀全文

與linux安裝內核相關的資料

熱點內容
win10更新後進不了劍靈 瀏覽:243
iphone471激活出錯 瀏覽:648
怎麼把文件拷到u盤 瀏覽:620
中伊簽署文件視頻 瀏覽:661
電信光寬頻網路不穩定 瀏覽:504
網路崗軟路由 瀏覽:995
黑莓z10在哪裡下載app 瀏覽:310
net批量下載文件 瀏覽:696
怎麼把蘋果一體機文件拷貝 瀏覽:117
sql文件怎麼寫 瀏覽:9
帝豪ec718導航升級 瀏覽:257
如何運用編程進行統計 瀏覽:570
excel如何拉考勤數據 瀏覽:879
大智慧612手機版本 瀏覽:796
編程試什麼 瀏覽:252
plc編程要遵循什麼規則 瀏覽:16
蘋果平板電腦a1476 瀏覽:221
創建mysql資料庫的步驟 瀏覽:406
本地磁碟文件夾找不到了 瀏覽:590
怎麼編輯win10的hosts文件 瀏覽:823

友情鏈接