在這個編譯、連結的過程中,會將系統的核心功能與這些第三方來源的軟體結合,可以令這些軟體正常執行。因為不同版本的 Linux 核心模組不一定相容,所以這個編譯、連結的過程,在每次有 Linux 核心或第三方來源軟體或套件更新時,就要重覆一次。
這次就將這些編譯相關的套件、安裝、操作做個整理,一方面留做記錄,一方面分享給需要的讀者。
一、查詢使用中 Linux 的版本
欲加裝編譯 Linux 「核心模組」的相關套件,要知道使用中的 Linux 版本,否則安裝不正確的套件版本,編譯過程會錯誤。欲查詢 Linux 的核心版本,用『uname』這個命令查詢[SiB@P3-1G ~]$ uname -r根據顯示訊息,可以判定所使的 Linux 核心版本
訊息包含文字 | Linux 使用版本 |
---|---|
x86_64 | 64-bit 的 Linux |
i686 及 PAE | 32-bit PAE 的 Linux |
i686 且無 PAE | 32-bit 的 Linux |
二、安裝『編譯核心模組』所需相關套件
編譯「核心模組」所需的套件主要有兩個:『 kernel-devel 』及『 gcc 』,如果使用的核心是『 PAE 』的版本,則為『 kernel-PAE-devel 』,其它關聯套件 yum 會幫你整理列出。有些第三方的軟體或套件帶有自動編譯核心模組的程序,可以在 Linux 核心更新或自己更新時,依需求自動執行核心模組編譯的程序。但是,要讓這個功能啟動,Linux 系統要先安裝一個名為『 dkms 』的套件。
總結上述說明,需安裝的相關套件為
套件名稱 | 套 件 用 途 |
---|---|
kernel-devel | 編譯「核心模組」所需的標頭檔、函式庫,x86_64 和 i686 的套件名稱相同,『 yum 』安裝時,會自動選擇 x86_64 或 i686 的版本。 |
kernel-PAE-devel | 編譯「核心模組」所需的標頭檔、函式庫,用於支援 PAE 的 i686 核心。當 32 位元電腦的記憶體大於 4 GB 時,用支援 PAE 的版本才可以存取高位址的記憶體。 |
gcc | 執行編譯、連結所需的程式。 |
dkms | 用以產生 Linux 「核心模組」的一個框架,所編譯的原始碼一般不屬於 Linux 核心原始碼樹。當安裝新的核心時,支援 DKMS 的核心設備驅動程序會自動重建。 |
三、安裝『編譯核心模組』所需相關套件
開始進行安裝步驟,先切換成 root 身份,依步驟一中查詢得知的 Linux 版本選擇以下不同的命令。64-bit 的 Linux
若訊息中出現 x86_64 的文字,表示使用 64-bit 的 Linux,則命令為[root@P3-1G ~]# yum install kernel-devel gcc dkms
32-bit PAE 的 Linux
若訊息中出現 i686 及 PAE 的文字,表示使用 32-bit PAE 的 Linux,則命令為[root@P3-1G ~]# yum install kernel-PAE-devel gcc dkms
32-bit 的 Linux
若訊息中出現 i686 且無 PAE 的文字,表示使用 32-bit 的 Linux,則命令為[root@P3-1G ~]# yum install kernel-devel gcc dkms注意一:某些 32-bit 的電腦在安裝 Fedora 時,安裝程式會選擇 32-bit PAE 的 Linux 核心,若讀者未加上 PAE,則會安裝錯誤的套件,若讀者未查覺將導致之後的編譯失敗。這是在 32-bit 電腦常出現的『核心編譯』錯誤的原因之一。
注意二:因為 yum 安裝時,會自動選擇最新版本,所以讀者在安裝前最好確認執行中的 Linux 版本是最新版本,才不會編譯失敗。
四、命令 uname 的說明
『 uname 』這個命令是用來查詢 Linux 系統的核心、處理器資訊。除了剛才的『 -i 』以外,還有其它參數可以顯示不同的資訊。命令、參數 | 顯 示 訊 息 | 範 例 訊 息 |
---|---|---|
uname -a | 顯示所有訊息 | 為以下訊息依序合成之訊息,未知項目除外 |
uname -s | 核心名稱 | Linux |
uname -n | 網路的主機名稱 | P3-1G |
uname -r | 核心的發佈版本 | 3.6.10-2.fc17.i686.PAE |
uname -v | 本版本發佈時間 | #1 SMP Tue Dec 11 18:27:35 UTC 2012 |
uname -m | 機器硬體名稱 | i686 |
uname -p | 處理器等級 | i686 |
uname -i | 硬體平台 | i386 |
uname -o | 作業系統名稱 | GNU/Linux |
已測試版本:
- Fedora: 14, 17
沒有留言:
張貼留言
感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)