本次內(nèi)核編譯環(huán)境
平臺(tái) CentOS 7(字符終端)
編譯內(nèi)核版本 4.12郑叠,內(nèi)核可以去官網(wǎng)https://www.kernel.org/下載
yum安裝開發(fā)包組
1. 解壓內(nèi)核壓縮包,安裝開發(fā)包組
[root@lCentos ~]# ls #查看下載文件
linux-4.12.tar.xz #下載好的的內(nèi)核文件
[root@Centos ~]# tar xf linux-4.12.tar.xz #使用 tar xf 解壓內(nèi)核壓縮包
[root@Centosn ~]# ls #查看解壓后的內(nèi)核文件
linux-4.12 linux-4.12.tar.xz
[root@Centos ~]# cd linux-4.12 #進(jìn)入內(nèi)核源碼目錄
[root@Centos linux-4.12]# cp /boot/config-3.10.0-514.el7.x86_64 .config
#復(fù)制現(xiàn)有內(nèi)核的config文件浓体,并改名為.config颠蕴,在現(xiàn)有內(nèi)核配置上進(jìn)行修改泣刹。
[root@CentosCentosCentosCentosCentosCentos linux-4.12]# yum -y groupinstall 'Development Tools' #使用yum安裝開發(fā)包組
2. 編輯.config配置文件
1. make config :基于命令行以遍歷的方式去配置內(nèi)核中可配置的每個(gè)選項(xiàng)
2. make menuconfig :基于curses的文本窗口界面(推薦在字符終端中使用)
3. make gconfig :基于GTK (GNOME)環(huán)境窗口界面(推薦圖形界面使用)
4. make xconfig :基于QT(KDE)環(huán)境的窗口界面支持“全新配置”模式進(jìn)行配置(推薦圖形界面使用)
5. make defconfig :基于內(nèi)核為目標(biāo)平臺(tái)提供的“默認(rèn)”配置進(jìn)行配置
6. make allyesconfig : 所有選項(xiàng)均回答為“yes“
7. make allnoconfig : 所有選項(xiàng)均回答
8. make ARCH=arch_name :編譯的目標(biāo)平臺(tái)與當(dāng)前平臺(tái)不相同
因?yàn)楸敬尉幾g是在字符終端中助析,所以這里選擇使用make menuconfig
編輯配置文件。如果圖形界面下編譯推薦按照自己的使用的圖形界面軟件選擇make gconfig
和make xconfig
中的一種椅您。最后一項(xiàng)根據(jù)平臺(tái)編譯可以是使用幫助命令make ARCH=arch_name help
來查看特定目標(biāo)平臺(tái)的幫助外冀。
[root@Centos linux-4.12]# yum -y install ncurses-devel #使用 make menuconfig 需要安裝軟件包 “ncurses-devel"
root@Centos linux-4.12]# make menuconfig #軟件包安裝好后開始編輯配置文件
menuconfig界面.jpg
1. 64-bit kernel
2. General setup #普通設(shè)置
3. Enable loadable module support
4. Enable the block layer
5. Processor type and features
6. Power management and ACPI options
7. Bus options (PCI etc.)
8. Executable file formats / Emulations
9. Networking support #網(wǎng)絡(luò)設(shè)置
10. Device Drivers #關(guān)于硬件的設(shè)置
11. Firmware Drivers #防火墻
12. File systems #文件系統(tǒng)
13. Kernel hacking #kernelhacking"菜單中的很多特性和設(shè)置包含了關(guān)于內(nèi)核本身的很多設(shè)置。這些特性是調(diào)試工具掀泳,并有一些控制著內(nèi)核的行為雪隧。
14. Security options
15. Cryptographic API
16. Virtualization
17. Library routines
選項(xiàng)“[]”表示
1. “*”表示集成在內(nèi)核中
2. “m”表示以模塊化方式安裝
3. 空表示不安裝
示例:在現(xiàn)有內(nèi)核配置的基礎(chǔ)上讓內(nèi)核支持NTFS文件系統(tǒng)。
設(shè)置編譯版本號(hào)
- 第一步
image.png
- 第二步
image.png
- 在這里填寫你的編譯版本號(hào)员舵,
image.png
設(shè)置文件系統(tǒng)
- 第一步
image.png
- 第二步脑沿,進(jìn)入文件系統(tǒng)設(shè)置后,下拉到底部马僻,選擇
DOS/FAT/NT Filesystems
image.png
- 第三步庄拇,選擇
NTFS file system support
image.png
- 第四步,按空格鍵選擇安裝巫玻,選擇好后保存退出丛忆。
image.png
編譯,編譯完成后仍秤,主要生成了./arch/x86/boot/bzImage和initrd.image文件
[root@Centos linux-4.12]# make -j 1
如果編譯過程中提示出現(xiàn)錯(cuò)誤熄诡,一般都是缺少軟件引起的,按照他的提示安裝那個(gè)軟件包就行了,
scripts/sign-file.c:25:30: fatal error: openssl/opensslv.h: No such file or directory
#出這個(gè)錯(cuò)誤提示是因?yàn)閛pensll引起的安裝下面這個(gè)軟件包就行了
yum install openssl-devel
還可以只編譯內(nèi)核的一部分功能:
1. 只編譯某子目錄中的相關(guān)代碼
make 子目錄
2. 只編譯一個(gè)特定的模塊
make dir/file.ko
例如:只為e1000編譯驅(qū)動(dòng):
make drivers/net/ethernet/intel/e1000/e1000.ko
安裝內(nèi)核和內(nèi)核模塊
make install #安裝內(nèi)核
make modules_install #安裝驅(qū)動(dòng)
內(nèi)核安裝好后诗力,重啟主機(jī)就可以在啟動(dòng)項(xiàng)看到編譯好的內(nèi)核了凰浮。
打包工具
1. make rpm :生成內(nèi)核的RMP包
2. make rpm-pkg :生成帶源碼的RPM包
3. make binrpm-pkg:生成包含內(nèi)核和驅(qū)動(dòng)的RMP包
4. make deb-pkg :生成包含內(nèi)核和驅(qū)動(dòng)的debian包
打包之后就可以通過安裝軟件的方式來安裝內(nèi)核了。
生成文檔工具
1. make xmldocs :生成xml文檔
2. make pdfdocs :生成pdf文檔
3. maek htmldocs:生成html文檔
清理編譯產(chǎn)生的文件
1. make clean :清理大多數(shù)編譯生成的文件苇本,但會(huì)保留config文件等
2. make mrproper :清理所有編譯生成的文件袜茧、config及某些備份文件
3. make distclean:mrproper、patches以及編輯器備份文件