我需要內(nèi)核的源代碼英文版由 JohnnyHughes 創(chuàng)建。現(xiàn)時(shí)由 AlanBartlett 及 AkemiYagi 維護(hù),。
1. 或許你不需要整個(gè)內(nèi)核的源代碼如果你需要編譯一個(gè)內(nèi)核的驅(qū)動(dòng)程序(模塊),很可能你并不需要安裝整個(gè)內(nèi)核源代碼,。也許你只需要安裝 kernel-devel 這個(gè)組件。(然而,,假若你肯定須要完整的源代碼目錄樹(shù),,請(qǐng)遁從第二部份的指示。) CentOS-7 只有一個(gè) kernel-devel 組件:
CentOS-6 只有一個(gè) kernel-devel 組件:
CentOS-5 總共有三個(gè) kernel-devel 組件:
如果你使用標(biāo)準(zhǔn)內(nèi)核(舉個(gè)例說(shuō)),,你可以這樣安裝 kernel-devel: [root@host]# yum install kernel-devel 你可以用這個(gè)指令來(lái)斷定使用中的內(nèi)核版本: [root@host]# uname -r 它的輸出會(huì)有以下的樣子: 2.6.18-402.el5xen 在這個(gè)樣例里,,所安裝的內(nèi)核是 xen,而安裝相關(guān)的 kernel-devel 組件的方法是: [root@host]# yum install kernel-xen-devel 請(qǐng)確定你所安裝的 kernel-devel 組件吻合你所采用的內(nèi)核,。詳情請(qǐng)參閱這條常見(jiàn)問(wèn)題,。 如果你的內(nèi)核因?yàn)閬?lái)自較舊的目錄樹(shù)而未被 yum 列出,,你可以手動(dòng)式地從 CentOS Vault下載它。 CentOS-7:請(qǐng)?jiān)?7.N.YYMM/os/???/Packages/ 或 7.N.YYMM/updates/???/Packages/ 目錄內(nèi)找尋 kernel-devel-版本.x86_64.rpm CentOS-6:請(qǐng)?jiān)?6.N/os/arch/Packages/ 或 6.N/updates/arch/Packages/ 目錄內(nèi)找尋 kernel-devel-版本.結(jié)構(gòu).rpm CentOS-5:請(qǐng)?jiān)?5.N/os/arch/CentOS/ 或 5.N/updates/arch/RPMS/ 目錄內(nèi)找尋kernel[-類型]-devel-版本.結(jié)構(gòu).rpm 當(dāng)你安裝了合適的 kernel[-類型]-devel-版本.結(jié)構(gòu).rpm 組件,,請(qǐng)嘗試編譯你的模塊,。這樣做是應(yīng)該行得通的。假若事實(shí)并非如此,,請(qǐng)?zhí)峁┓答伣o模塊的開(kāi)發(fā)者,,因?yàn)檫@是設(shè)計(jì)所有新內(nèi)核模塊時(shí)應(yīng)采用的編譯方式。
2. 如果你真的需要整個(gè)內(nèi)核的源代碼如果你真的因?yàn)槟硞€(gè)原因需要整個(gè)內(nèi)核的源代碼,,它是有被提供的,。 以一個(gè)不是 root 用戶的用戶,創(chuàng)建一個(gè)以 ~/rpmbuild 為基礎(chǔ)的目錄樹(shù): [user@host]$ mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} [user@host]$ echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros 我們強(qiáng)烈推薦你不要以 root 的身份構(gòu)建軟件包,。(見(jiàn):Building Source RPM as non-root under CentOS)
要在 CentOS-7 安裝源代碼組件及工具: 以 root 的身份安裝 rpm-build,、redhat-rpm-config、asciidoc,、hmaccalc,、perl-ExtUtils-Embed、pesign,、xmlto,、audit-libs-devel、binutils-devel,、elfutils-devel,、elfutils-libelf-devel、newt-devel,、numactl-devel、pciutils-dedvel,、python-devel 及 zlib-devel 組件: [root@host]# yum install rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed pesign xmlto [root@host]# yum install audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel [root@host]# yum install newt-devel numactl-devel pciutils-devel python-devel zlib-devel 從這些地方找尋內(nèi)核的源代碼組件: (請(qǐng)以相關(guān)的副版本編號(hào),、年度及月份取代 N.YYMM。) 以一個(gè)不是 root的普通戶口,,執(zhí)行以下指令來(lái)安裝源代碼組件: [user@host]$ rpm -i http://vault./7.1.1503/updates/Source/SPackages/kernel-3.10.0-229.1.2.el7.src.rpm 2>&1 | grep -v exist
要在 CentOS-6 安裝源代碼組件及工具: 以 root 的身份安裝 rpm-build,、redhat-rpm-config、asciidoc,、hmaccalc,、perl-ExtUtils-Embed、xmlto,、audit-libs-devel,、binutils-devel、elfutils-devel,、elfutils-libelf-devel,、newt-devel,、python-devel 及 zlib-devel 組件: [root@host]# yum install rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed xmlto [root@host]# yum install audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel [root@host]# yum install newt-devel python-devel zlib-devel 從這些地方找尋內(nèi)核的源代碼組件: (請(qǐng)以相關(guān)的副版本編號(hào)取代 N。) 以一個(gè)不是 root 用戶的戶口,,執(zhí)行以下指令來(lái)安裝源代碼組件: [user@host]$ rpm -i http://vault./6.6/updates/Source/SPackages/kernel-2.6.32-504.12.2.el6.src.rpm 2>&1 | grep -v exist
要在 CentOS-5 安裝源代碼組件及工具: 以 root 的身份安裝 rpm-build,、redhat-rpm-config 及 unifdef 組件: [root@host]# yum install rpm-build redhat-rpm-config unifdef 從這些地方找尋內(nèi)核的源代碼組件: (請(qǐng)以相關(guān)的更新版本編號(hào)取代 N。) 以一個(gè)不是 root 用戶的戶口,,執(zhí)行以下指令來(lái)安裝源代碼組件: [user@host]$ rpm -i http://vault./5.11/updates/SRPMS/kernel-2.6.18-402.el5.src.rpm 2>&1 | grep -v exist 現(xiàn)在源代碼組件已經(jīng)安裝了,,請(qǐng)解壓及預(yù)備源代碼文件: [user@host]$ cd ~/rpmbuild/SPECS [user@host SPECS]$ rpmbuild -bp --target=$(uname -m) kernel.spec $(uname -m) 這個(gè)值將目標(biāo)結(jié)構(gòu)設(shè)置為你的現(xiàn)有內(nèi)核的結(jié)構(gòu)。一般來(lái)說(shuō)這是可行的,,因?yàn)槎鄶?shù)人需要以 i686 或 x86_64 為目標(biāo),。 現(xiàn)在內(nèi)核的源代碼目錄樹(shù)可以在 ~/rpmbuild/BUILD/kernel*/linux*/ 這個(gè)目錄內(nèi)找得到。 Translation of revision 229~ |
|