茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1676289 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_2337132.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

小企鵝開談 : [轉貼]CentOS如何取得內核的源代碼

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]CentOS如何取得內核的源代碼

我需要內核的源代碼

英文版由 JohnnyHughes 建立。現時由 AlanBartlettAkemiYagi 維護。

1. 或許你不需要整個內核的源代碼

如果你需要編譯一個內核的驅動程式模塊,很大機會你並不是真的需要完整的內核源代碼。你可能只需要kernel-devel套件。(然而,假若你肯定須要完整的源代碼目錄樹,請遁從第二部份的指示。)

CentOS-5 總共有三個 kernel-devel 的套件:

  • kernel-devel(32 及 64 位元的架構)
  • kernel-xen-devel(32 及 64 位元的架構)
  • kernel-PAE-devel(只支援 32 位元的架構)

CentOS-4 總共有四個 kernel-devel 的套件:

  • kernel-devel(32 及 64 位元的架構)
  • kernel-smp-devel(32 及 64 位元的架構)
  • kernel-xenU-devel(32 及 64 位元的架構)
  • kernel-hugemem-devel(只支援 32 位元的架構)
  • kernel-largesmp-devel(只支援 64 位元的架構)

如果你使用 standard 內核(舉個例說),你可以這樣安裝 kernel-devel:


[root@host]# yum install kernel-devel

你可以用這個指令來斷定使用中的內核版本:


[root@host]# uname -r

它的輸出會有以下的樣子:


2.6.18-194.3.1.el5xen

在這個範例裡,所安裝的內核是 xen,而安裝相關的 kernel-devel 套件的方法是:


[root@host]# yum install kernel-xen-devel

<!> 請確定你已經安裝了與你採用的內核吻合kernel-devel 套件。詳情請參閱 這條常見問題

要取得關於現存內核的更詳細的資料,請參閱發行注記:

如果你的內核因為來自較舊的目錄樹而未被 yum 列出,你可以手動式地從 CentOS 地下室下載它。請選擇你所需的 CentOS 版本,然後為你的 架構os/ 架構/CentOS/RPMS/ 或 updates/ 架構
/RPMS/ 目錄內找尋 kernel[- 類型]-devel- 版本.架構.rpm 這個套件。

當你安裝了合適的 kernel[- 類型]-devel- 版本.架構.rpm,便可以嘗試編譯你的模塊。這樣做是應該行得通的。假若事實並非如此,請提供回饋給模塊的開發者,因為這是設計所有新內核模塊時應採用的編譯方式。

2. 如果你真的需要整個內核的源代碼

如果你真的因為某個原因需要整個內核的源代碼,它是有被提供的。

2.1. CentOS 4 與 5

以 root 的身份安裝 rpm-build、redhat-rpm-config 及 unifdef 套件:


[root@host]# yum install rpm-build redhat-rpm-config unifdef

以一個不是 root 用戶的戶口,建立一個以 ~/rpmbuild 為基礎的目錄樹:


[user@host]$ cd
[user@host]$ mkdir -p rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
[user@host]$ echo '%_topdir %(echo $HOME)/rpmbuild' > .rpmmacros

<!> 我們強烈建議你不要以 root 的身份建立套件。(見: Building Source RPM as non-root under CentOS

從這些地方找尋內核的源代碼:

(請選擇 <版本>/updates/SRPMS 或 <版本>/os/SRPMS)

一旦你找到源代碼套件,你可以執行這個指令來安裝它:


[user@host]$ rpm -i http://mirror.centos.org/centos/5/updates/SRPMS/kernel-2.6.18-194.3.1.el5.src.rpm 2>&1 | grep -v mockb

(針對 CentOS 5) — 或 —


[user@host]$ rpm -i http://mirror.centos.org/centos/4/updates/SRPMS/kernel-2.6.9-89.0.25.EL.src.rpm 2>&1 | grep -v mockb

(針對 CentOS 4) 現在源代碼套件已經安裝了,請解壓及預備源代碼檔案:


[user@host]$ cd ~/rpmbuild/SPECS
[user@host SPECS]$ rpmbuild -bp --target=`uname -m` kernel-2.6.spec 2> prep-err.log | tee prep-out.log

`uname -m` 這個數值(注意:是鈍音符號,不是單引號)將 --target 設定為你的現有內核的架構。一般來說請是可行的,因為多數人會擁有 i686 或 x86_64。

現在內核的源代碼目錄樹可以在 ~/rpmbuild/BUILD/ 這個目錄內找得到。

2.2. CentOS 3

你可以用這個指令來安裝內核的源代碼:

[root@host]# yum install kernel-source 

如果你的內核因為來自較舊的目錄樹而未被 yum 列出,你可以手動式地從 CentOS 地下室下載它。請選擇你所需的 CentOS 版本,然後為你的 架構os/< 架構>/CentOS/RPMS/ 或 updates/< 架構>/RPMS/ 目錄內找尋 kernel-source-< 版本>.< 架構>.rpm 這個套件。

接著你可以這樣安裝它:


[root@host]# rpm -Uvh kernel-source-<version>.<arch>.rpm

Translation of revision 106

zh-tw/HowTos/I need the Kernel Source (上次是 TimothyLee 在 2010-05-17 02:59:19 編輯的)


原文出處:zh-tw/HowTos/I need the Kernel Source - CentOS Wiki
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]安娤 CentOS Kernel Source

安娤 CentOS Kernel Source

製作 Linux driver 有時需要有 Kernel Source,以下是在 CentOS 5 安娤 Kernel Source 嘅 command line statements。

yum install kernel-devel
yum install kernel-xen-devel
yum install kernel-PAE-devel (only for i386)

參考:
I Need to Build a Custom Kernel


原文出處: 香港思潮: 安娤 CentOS Kernel Source
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]CentOS 5.0如何取得kernel source
CentOS5.0沒有完全安裝的選項,就算選中全部包,安裝後/usr/src中也沒有kernel source,可依據下述取得src

如果僅僅是編譯模塊,就不用整個內核源碼樹了,只要保證目錄樹和相關的文件存在就可以,因此只用安裝kernel-*devel,比如kernel-devel或者kernel-PAE-devel。

如果確實需要整個內核源碼,可先通過yum安裝rpm-build,然後 http://mirror.centos.org/centos/5/os/SRPMS/ 下載 kernel-*.src.rpm,比如kernel-2.6.18-8.el5.src.rpm,用如下命令安裝:
rpm -Uvh kernel-xxxxx.src.rpm
cd /usr/src/redhat/SPECS
rpmbuild -bp --target i686 kernel-2.6.spec

完成後內核源碼樹保存在 /usr/src/redhat/BUILD。

原文出處:CentOS 5.0如何取得kernel source - 发行版 - Linux论坛 全球最大中文开源论坛 - Powered by Discuz!
前一個主題 | 下一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|