Gentoo 安装步骤介绍(7)
时间:2006-01-01 来源:nig.daemon
7.設定核心
內容:- 時區
- 安裝核心原始碼
- 預設:手動設定
- 其他選擇:使用 genkernel
- 核心模組
7.a. 時區
為了讓您的系統知道它的位置在那裡,您將需要設定您的系統時區。到 /usr/share/zoneinfo 尋找您的時區,然後把他複製到 /etc/localtime。請避免使用 /usr/share/zoneinfo/Etc/GMT* 下的檔案,因為他們並不代表你預期的時區。例如說 GMT-8 實際上是 GMT+8。
原始碼 1: 設定時區資訊 |
# ls /usr/share/zoneinfo (假設您要使用 GMT) # cp /usr/share/zoneinfo/GMT /etc/localtime |
7.b. 安裝核心原始碼
選擇一個核心
Linux 的核心是所有版本的最中心,也是最重要的。他位於使用者程式和系統硬體之間。 Gentoo 提供使用者很多可用的核心原始碼。您可以到 Gentoo 核心 指南 查看我們所提供的核心。
使用 x86 系統的使用者,我們提供著 vanilla-sources(常常被其他核心開發者用來開發成其他核心的基礎版本),gentoo-sources(針對效能調整過的核心)﹍
選擇適合您的核心原始檔然後使用 emerge 安裝。為了避免安裝 xorg-x11 或其他相依軟體,需要加上 USE="-doc"。
原始碼 2: 安裝核心原始碼 |
# USE="-doc" emerge gentoo-sources
|
當您查看 /usr/src 您將會看到一個 linux 的連接連到您所選的核心,我們會假設要安裝的核心版本是gentoo-sources-2.6.11-r3:
原始碼 3: 觀看核心原始碼目錄連接 |
# ls -l /usr/src/linux lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-2.6.11-gentoo-r3
|
如果這並沒有指向你所選擇的核心(注意 linux-2.6.11-gentoo-r3 只是一個範例),你要把他改成正確的核心:
原始碼 4: 更改核心連接目錄 |
# rm /usr/src/linux # cd /usr/src # ln -s linux-2.6.11-gentoo-r3 linux |
現在我們該設定以及編譯您的核心了。您可以使用 genkernel 完成此項步驟,並且將會以和安裝光碟一樣的通用的方式進行編譯。我們將先解釋如何手動編譯因為這是自訂您的環境的最佳方法。
如果您想要手動編譯您的核心,請從 預設:手動設定 繼續。如果您想要使用 genkernel 請從 其他選擇:使用 genkernel 繼續。
7.c. 預設:手動設定
介紹
手動設定核心常常被 Linux 使用者認為最難完成的步驟。雖然不假 -- 但是當您手動編譯幾次核心後,您應該不會覺得它有多難 ;)
但是,唯一 的重點就是:您必須要了解您的系統才可以開始手動編譯。系統上多數的資料可以安裝 pciutils (emerge pciutils),從裏面包含的 lspci 取得。你可以在 chroot 的環境下執行 lspci,不過可能會碰到一些 lspci 丟出來的警告(像是 pcilib: cannot open /sys/bus/pci/devices)。此外,你也可以在 未 chroot 執行,兩個結果都一樣。您也可以執行 lsmod 看看安裝光碟使用那些核心模組(這是一個不錯的暗示,教您該開啟那個選項)。
現在到您的核心原始碼目錄然後執行 make menuconfig。這將會啟動一個 ncurses 的設定選單。
原始碼 5: 開始 menuconfig |
# cd /usr/src/linux # make menuconfig |
您將會看到一大串的設定部份。我們將列出一些您一定要啟用的選項(不然 Gentoo 無法完善地工作)。
必須開啟的選項
首先,開啟 development and experimental code/drivers。您將需要這個,不然您將無法看見一些其他重要的程式碼或是驅動程式。
原始碼 6: 選擇 experimental code/drivers, General setup |
Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers General setup ---> [*] Support for hot-pluggable devices |
確定系統開機過程中需要的驅動程式(像是 SCSI 控制器...)有編譯 進 核心而不是模組,不然你的系統不能開機。
現在選擇正確的處理器類別:
原始碼 7: 選擇正確的處理器類別 |
Processor type and features ---> (依照您的處理器所更換) (Athlon/Duron/K7) Processor family |
現在到 File Systems 然後選擇要支援的檔案系統。記得不要將它們編成模組(Module)。還有 Virtual memory,/proc file system。如果你是用 2.6 核心 (預設),不要選擇 /dev file system,Gentoo/x86 現在預設使用 udev。如果你是用 2.4 核心,你仍然需要選擇 /dev file system,因為 2.4 核心不支援 udev:
原始碼 8: 選擇相關檔案系統 |
(使用 2.4.x 核心) File systems ---> [*] Virtual memory file system support (former shm fs) [*] /proc file system support [*] /dev file system support (EXPERIMENTAL) [*] Automatically mount /dev at boot [ ] /dev/pts file system for Unix98 PTYs (使用 2.6.x 核心) File systems ---> Pseudo Filesystems ---> [*] /proc file system support [ ] /dev file system support (OBSOLETE) [*] Virtual memory file system support (former shm fs) (按照您系統所需要的檔案系統開啟以下選項) <*> Reiserfs support <*> Ext3 journalling file system support <*> JFS filesystem support <*> Second extended fs support <*> XFS filesystem support |
如果你的 BIOS 不能處理大容量的硬碟,而且你調整跳腳讓硬碟回報受限制的容量,你需要開啟底下設定讓系統可以存取所有容量:
原始碼 9: 選擇自動調整大小支援 |
(只適用 2.4.x 核心) ATA/IDE/MFM/RLL support ---> IDE, ATA and ATAPI Block devices ---> <*> Include IDE/ATA-2 DISK support [ ] Use multi-mode by default [*] Auto-Geometry Resizing support
|
不要忘記開啟 DMA 驅動程式:
原始碼 10: 啟動 DMA |
Device Drivers ---> ATA/ATAPI/MFM/RLL support ---> [*] Generic PCI bus-master DMA support [*] Use PCI DMA by default when available |
如果您需要透過 PPPoE 連線到網路或是數據機撥接,您將需要以下的核心選項:
原始碼 11: 選擇 PPPoE 相關驅動程式 |
(使用 2.4.x 核心) Network device support ---> <*> PPP (point-to-point protocol) support <*> PPP support for async serial ports <*> PPP support for sync tty ports (使用 2.6.x 核心) Device Drivers ---> Networking support ---> <*> PPP (point-to-point protocol) support <*> PPP support for async serial ports <*> PPP support for sync tty ports |
雖然 PPP over Ethernet 選項只有在 rp-pppoe 設定為核心 PPPoE 時需要,但是這兩個壓縮的選項不會造成錯誤。
如果您需要,不要忘了為您的網路卡加入核心的支援。
如果您有一個支援 HyperThreading(tm) 的 Intel CPU,或是有多個 CPU,您應該啟用 "Symmetric multi-processing support":
原始碼 12: 啟用 SMP 支援 |
Processor type and features ---> [*] Symmetric multi-processing support |
如果你使用 USB 輸入裝置(像是鍵盤或滑鼠)不要忘記開啟他:
原始碼 13: 啟動 USB 輸入裝置支援 |
USB Support ---> <*> USB Human Interface Device (full HID) support |
想要有 PCMCIA 支援的筆記型電腦使用者,如果使用 2.4 核心的話,不應該使用 PCMCIA 驅動程式雖然之後可以安裝 pcmcia-cs 套件,但是已經有更新的驅動程式。2.6 核心的使用者應該使用核心中的 PCMCIA 驅動程式
除了編譯 2.6 核心的 PCMCIA 支援,不要忘記啟動系統上的 PCMCIA card bridge 支援。
原始碼 14: Enabling PCMCIA support for 2.6 kernels |
Bus options (PCI, PCMCIA, EISA, MCA, ISA) ---> PCCARD (PCMCIA/CardBus) support ---> <*> PCCard (PCMCIA/CardBus) support (如果想要支援較老舊的 PCMCIA 卡,選擇 16 bit。大部分人都會想這樣做。) <*> 16-bit PCMCIA support [*] 32-bit CardBus support (選擇相對應的 bridge) --- PC-card bridges <*> CardBus yenta-compatible bridge support (NEW) <*> Cirrus PD6729 compatible bridge support (NEW) <*> i82092 compatible bridge support (NEW) <*> i82365 compatible bridge support (NEW) <*> Databook TCIC host bridge support (NEW) |
當您完成核心設定時,請從 編譯和安裝 繼續。
編譯和安裝
現在您的核心已經設定完成了,我們該來編譯然後安裝它。離開核心設定,然後開始編譯:
原始碼 15: 編譯核心 |
(核心 2.4) # make dep && make bzImage modules modules_install (核心 2.6) # make && make modules_install |
當核心完成編譯時,將核心映像檔複製到 /boot:從這邊我們將假設您安裝的是 gentoo-sources 的 2.6.11-r3。您可以隨意更改容易記住的檔案名稱,方便稍後的開機程式設定。
原始碼 16: 安裝核心 |
# cp arch/i386/boot/bzImage /boot/kernel-2.6.11-gentoo-r3
|
您也可以將您的核心設定檔備份到 /boot,以防萬一 :)
原始碼 17: 備份您的核心設定檔 |
# cp .config /boot/config-2.6.11-gentoo-r3
|
現在請從 核心模組 繼續。
7.d. 其他選擇:使用 genkernel
如果您正在讀這個部份,那您應該是選擇使用我們的 genkernel 程序來為您設定核心。
現在您的核心原始碼已經安裝了,我們該使用 genkernel 程序來自動幫您編譯核心。genkernel 是利用類似安裝光碟的核心設定來進行工作的。這代表著當您使用 genkernel 編譯您的核心,您的系統大致上會在開機時偵測所有的硬體,就和我們的安裝光碟一樣。因為 genkernel 不需要手動核心設定,所以適合不會編譯核心的使用者。
現在讓我們來看看如何使用 genkernel。首先,安裝 genkernel:
原始碼 18: 安裝 genkernel |
# emerge genkernel
|
接下來,如果你打算使用 2.6 核心,複製安裝光碟上的核心設定檔到 genkernel 尋找預設核心設定檔的地方:
原始碼 19: 複製安裝光碟上的核心設定檔 |
(如果你要使用 2.6 核心才需要做) # zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6 |
現在,編譯您的核心原始碼。執行 genkernel --udev all (2.6 核心) 或 genkernel all (2.4 核心)。請注意,當 genkernel 正在編譯所有硬體支援時,等待的時間會有點久!
如果您的開機分割區沒有使用 ext2 或是 ext3 為檔案系統,您將需要使用 genkernel --menuconfig all 手動設定,然後在核心內加入您所使用的檔案系統支援( 不能 編成模組)。使用 EVMS2 或 LVM2 的使用者需要加入 --evms2 或 --lvm2 參數。
原始碼 20: 執行 genkernel |
(2.6 核心) # genkernel --udev all (2.4 核心) # genkernel all |
當 genkernel 完成的時候,一個核心映像檔,一套模組和一個 initial root disk (initrd)將會被建立。我們將在稍後設定開機程式時使用核心映像檔和 initrd。寫下核心和 initrd 的檔名方便您稍後設定開機程式。initrd 將會在開起到"真正的"系統之前馬上偵測硬體支援(就和安裝光碟一樣)。
原始碼 21: 查看已建立的核心映像檔名和 initrd |
# ls /boot/kernel* /boot/initramfs*
|
現在,為了要讓我們的系統更像安裝光碟,我們需要安裝 coldplug。當 initrd 自動偵測硬體時,coldplug將會自動偵測其他的硬體。要安裝然後開啟 coldplug ,請按照以下輸入:
原始碼 22: 安裝和開啟 coldplug |
# emerge coldplug # rc-update add coldplug default # rc-update add coldplug boot |
7.e. 核心模組
設定模組
您將需要將想要開機時自動載入的模組放到 /etc/modules.autoload.d/kernel-2.4 (或是 kernel-2.6)。您也可以加上模組的選項。
要查看所有可用的模組,執行 find 指令。不要忘了將 "<kernel version>"更改為您剛剛編譯的版本:
原始碼 23: 查看所有可用的版本 |
# find /lib/modules/<kernel version>/ -type f -iname ''''*.o'''' -or -iname ''''*.ko''''
|
舉例來說,要自動載入 3c59x.o 模組,編輯 kernel-2.4 或是 kernel-2.6:
原始碼 24: 編輯 /etc/modules.autoload.d/kernel-2.4 |
(2.4核心的範例) # nano -w /etc/modules.autoload.d/kernel-2.4 |
原始碼 25: /etc/modules.autoload.d/kernel-2.4 或是 kernel-2.6 |
3c59x |
現在請從 設定您的系統 繼續安裝。