2.11 2006-02-17
Múi giờ

Trước hết bạn cần chọn múi giờ để hệ thống của bạn biết nó nằm ở nơi nào. Hãy tìm múi giờ của bạn trong /usr/share/zoneinfo, sau đó chép thành /etc/localtime. Tránh dùng /usr/share/zoneinfo/Etc/GMT* vì tên của nó không biểu thị múi giờ mong đợi. Ví dụ, GMT-8 thực chất là GMT+8.

# ls /usr/share/zoneinfo
(Giả sử bạn muốn dùng Asia/Saigon)
# cp /usr/share/zoneinfo/Asia/Saigon /etc/localtime
Cài đặt từ mã nguồn Chọn kernel

Lõi của mọi bản phân phối là Linux kernel. Nó là một lớp nằm giữa các chương trình và phần cứng hệ thống. Gentoo cung cấp cho người dùng vài bộ mã nguồn kernel. Danh sách đầy đủ kèm mô tả nằm trong Gentoo Kernel Guide.

Với những hệ thống alpha, chúng ta có vanilla-sources (kernel 2.6 mặc định).

Hãy chọn mã nguồn kernel bạn muốn và cài vào hệ thống bằng emerge.

Trong ví dụ này chúng tôi sẽ cài vanilla-sources. Dĩ nhiên bạn phải thay thế bằng mã nguồn kernel mà bạn chọn, đây chỉ là ví dụ. Dùng USE="-doc" nếu cần để tránh phụ thuộc vào gói xorg-x11 và các phụ thuộc khác lúc này. USE="symlink" không cần cho cài đặt mới, nhưng bảo đảm sẽ tạo đúng symlink /usr/src/linux.

# USE="-doc symlink" emerge vanilla-sources

Hãy xem trong /usr/src, bạn sẽ thấy một symlink tên là linux trỏ đến mã nguồn kernel của bạn. Trong trường hợp này, kernel source trỏ đến vanilla-sources-2.6.11.2. Phiên bản của bạn có thể khác, đừng nhầm lẫn.

# ls -l /usr/src/linux
lrwxrwxrwx    1 root     root           12 Oct 13 11:04 /usr/src/linux -> linux-2.6.11.2

Giờ là lúc để cấu hình và biên dịch mã nguồn kernel. bạn có thể dùng genkernel để tạo ra một kernel tổng quát như kernel dùng bởi CD Cài đặt. Tuy nhiên chúng tôi giải thích cách cấu hình "bằng tay" trước vì nó là cách tốt nhất để tối ưu hệ thống của bạn.

Nếu bạn muốn cấu hình kernel bằng tay, hãy xem Mặc định: Cấu hình bằng tay. Nếu bạn muốn dùng genkernel, bạn nên đọc Thay thế: Dùng genkernel.

Mặc định: Cấu hình bằng tay Giới thiệu

Cấu hình kernel bằng tay thường bị xem là một quá trình khó khăn mà người dùng Linux phải thực hiện. Điều đó không đúng -- sau khi cấu hình một vài kernel, bạn thậm chí không nhớ khó là gì ;)

Tuy nhiên, có một điều đúng: bạn phải hiểu hệ thống của bạn khi bạn cấu hình kernel bằng tay. Hầu hết các thông tin có thể được thu thập bằng cách emerge pciutils emerge pciutils), chứa lspci. Bạn sẽ có thể dùng lspci bên trong môi trường chroot. Bạn cũng có thể an tâm bỏ qua những cảnh báo pcilib (như: cannot open /sys/bus/pci/devices) mà lspci hiện ra. Bạn cũng có thể chạy lspci từ môi trường không chroot. Kết quả cũng như nhau. Bạn còn có thể chạy lsmod để xem những module kernel nào CD Cài đặt dùng (có thể là gợi ý tốt cho những module cần dùng).

Giờ hãy chuyển vào thư mục mã nguồn kernel và chạy make menuconfig. Nó sẽ khởi động menu cấu hình kernel.

# cd /usr/src/linux
# make menuconfig

Bạn sẽ được chào mừng bằng vô số các mục cấu hình. Chúng ta sẽ liệt kê một số tùy chọn bạn phải kích hoạt (nếu không có Gentoo sẽ không hoạt động, hoặc không hoạt động đúng với vài tinh chỉnh bổ sung).

Kích hoạt các tùy chọn bắt buộc

Đầu tiên hãy cho phép sử dụng code/driver thử nghiệm. Bạn cần nó, nếu không vài code/driver quan trọng sẽ không xuất hiện:

Code maturity level options --->
  [*] Prompt for development and/or incomplete code/drivers
General setup --->
  [*] Support for hot-pluggable devices

Giờ vào phần File Systems và chọn những loại hệ tập tin bạn dùng. Đừng biên dịch chúng là module, nếu không hệ thống Gentoo sẽ không thể mount các phân vùng của bạn. Ngoài ra hãy chọn Virtual memory, /proc file system. Nếu bạn dùng kernel 2.4, bạn cần chọn thêm /dev file system + Automatically mount at boot và nhớ chạy emerge devfsd:

(Với kernel 2.4.x)
File systems --->
  [*] Virtual memory file system support (former shm fs)
  [*] /proc file system support
  [ ] /dev file system support (EXPERIMENTAL)
  [ ] /dev/pts file system for Unix98 PTYs

(Với kernel 2.6.x)
File systems --->
  Pseudo Filesystems --->
    [*] /proc file system support
    [*] Virtual memory file system support (former shm fs)

(Chọn những tùy chọn sau tùy theo hệ thống của bạn)
  <*> Reiserfs support
  <*> Ext3 journalling file system support
  <*> JFS filesystem support
  <*> Second extended fs support
  <*> XFS filesystem support

Nếu bạn dùng PPPoE để kết nối Internet hoặc dùng modem quay số, bạn sẽ cần những tùy chọn sau trong kernel:

(Với kernel 2.4.x)
Network device support --->
  <*> PPP (point-to-point protocol) support
  <*>   PPP support for async serial ports
  <*>   PPP support for sync tty ports

(Với kernel 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

Hai tùy chọn nén không phương hại nhưng không phải nhất thiết không cần, cũng như thế với tùy chọn PPP over Ethernet, nó có thể chỉ cần bởi rp-pppoe khi cấu hình để dùng PPPoE kernel mode.

Nếu bạn cần nó, đừng quên thêm hỗ trợ card mạng vào kernel.

Bạn cũng nên bật những tuỳ chọn sau:

General setup --->
  <*> SRM environment through procfs
  <*> Configure uac policy via sysctl

Plug and Play configuration --->
  <*> Plug and Play support
  <M>   ISA Plug and Play support

SCSI support --->
  SCSI low-level drivers --->
    <*> SYM53C8XX Version 2 SCSI support (NEW)
    <*> Qlogic ISP SCSI support

Network device support --->
  Ethernet (10 or 100 Mbit) --->
    <M> DECchip Tulip (dc21x4x) PCI support
    <M> Generic DECchip & DIGITAL EtherWORKS PCI/EISA
    <M> EtherExpressPro/100 support (eepro100)
    <M> EtherExpressPro/100 support (e100)
  Ethernet (1000 Mbit) --->
    <M> Alteon AceNIC
      [*] Omit support for old Tigon I
    <M> Broadcom Tigon3
  [*] FDDI driver support
  <M> Digital DEFEA and DEFPA
  <*> PPP support
    <*> PPP Deflate compression

Character devices --->
  [*] Support for console on serial port
  [*] Direct Rendering Manager

File systems --->
  <*> Kernel automounter version 4 support
  Network File Systems --->
    <*> NFS
      [*] NFSv3 client
      <*> NFS server
      [*] NFSv3 server
  Partition Types --->
    [*] Advanced partition selection
    [*] Alpha OSF partition support
  Native Language Support
    <*> NLS ISO 8859-1

Sound --->
  <M> Sound card support
    <M> OSS sound modules
      [*] Verbose initialisation
      [*] Persistent DMA buffers
      <M> 100% Sound Blaster compatibles

Khi bạn hoàn tất cấu hình kernel, hãy tiếp tục với Biên dịch và cài đặt.

Biên dịch và cài đặt

Bạn đã cấu hình kernel xong, đã đến lúc biên dịch và cài đặt kernel. Hãy thoát trình cấu hình và chạy tiến hành biên dịch:

(Với kernel 2.4)
# make dep && make vmlinux modules modules_install

(Với kernel 2.6)
# make && make modules_install

(Với mọi kernel)
# make boot

Khi đã biên dịch kernel xong, hãy chép nó vào /boot. Những kernel mới hơn tạo vmlinux thay vì vmlinux.gz. Nhớ điều này khi bạn chép kernel image.

# cp arch/alpha/boot/vmlinux.gz /boot/

Giờ hãy tiếp tục với Cài đặt các module riêng lẻ.

Thay thế: Dùng genkernel

Nếu bạn đọc phần này, bạn đã chọn cách dùng genkernel để cấu hình kernel cho bạn.

Giờ mã nguồn kernel đã được cài đặt, đã đến lúc biên dịch kernel bằng genkernel để tự động tạo kernel cho bạn. genkernel hoạt động bằng cách cấu hình kernel gần như y hệt cách kernel của CD Cài đặt được cấu hình, hệ thống của bạn sẽ dò tìm mọi phần cứng lúc khởi động, y như cách CD Cài đặt đã làm. Vì genkernel không cần cấu hình bằng tay, nó là giải phải lý tưởng cho những người không quen với việc biên dịch kernel.

Hãy xem dùng genkernel như thế nào. Trước hết hãy emerge genkernel:

# emerge genkernel

Giờ hãy chạy genkernel all. Tuy nhiên hãy cẩn thận, vì genkernel biên dịch kernel hỗ trợ hầu hết mọi phần cứng, quá trình biên dịch sẽ mất nhiều thời gian để hoàn tất!

Chú ý rằng, nếu phân vùng khởi động của bạn không dùng hệ tập tin ext2 hoặc ext3, bạn có thể cần cấu hình bằng tay với genkernel --menuconfig all và thêm hỗ trợ hệ tập tin của bạn vào trong kernel (không biên dịch dạng module).

# genkernel all
GenKernel v3.0.1_beta10
* ARCH: Alpha 
* KERNEL VER: 2.6.11.2
* kernel: configuring source
* kernel: running mrproper
(Loại bỏ bớt kết quả để dễ đọc)
* Kernel compiled successfully!
* Required Kernel Params:
*   : root=/dev/ram0 init=/linuxrc real_root=/dev/$ROOT
*     where $ROOT is the devicenode for your root partition as
*     you should have specified in /etc/fstab
*              
* You MUST tell your bootloader to use the generated initrd
*              
* Recommended Kernel Params:
*   : vga=0x317 splash=verbose
*              
* Do NOT report kernel bugs (configs included) as genkernel bugs.
* Make sure you have the latest genkernel before reporting bugs
*              
* For more info see /usr/share/genkernel/README

Khi genkernel chạy xong, một kernel và một tập các module và initial root disk (initrd) đã được tạo. Bạn sẽ dùng kernel và initrd này khi cấu hình bootloader chốc nữa. Hãy viết ra tên kernel và initrd vì bạn sẽ cần đến nó khi viết tập tin cấu hình bootloader. initrd sẽ được dùng ngay sau khi khởi động để thực hiện dò tìm phần cứng (y như CD Cài đặt) trước khi hệ thống "thật" của bạn được khởi động.

# ls /boot/kernel* /boot/initramfs*

Hãy thực hiện một trong những bước nữa để làm cho hệ thống giống với CD Cài đặt hơn -- hãy emerge coldplug. Trong khi initrd tự động dò tìm phần cứng cần để khởi động hệ thống, coldplug tự động dò tìm mọi thứ còn lại. Để emerge và bật coldplug, hãy gõ như sau:

# emerge coldplug
# rc-update add coldplug boot
Cài đặt các module kernel riêng lẻ Cài đặt các module bổ sung

Nếu cần, bạn nên emerge những phần cứng bổ sung cần cho hệ thống. Đây là danh sách những ebuild liên quan đến kernel mà bạn có thể cần emerge:

x11-drm Hỗ trợ tăng tốc đồ hoạ cho ATI Radeon 9200, Rage128, Matrox, Voodoo và những card khác cho xorg-x11. Vui lòng kiểm tra biến IUSE_VIDEO_CARDS trong ebuild /usr/portage/x11-base/x11-drm để biết cách điền card của bạn. VIDEO_CARDS="card của bạn" emerge x11-drm
Ebuild Mục đích Lệnh

Tuy nhiên nhớ cẩn thận, vài ebuild có thể kéo theo một lượng lớn ebuild phụ thuộc khác. Để kiểm tra những gói nào sẽ được cài đặt khi emerge một ebuild, hãy dùng emerge --pretend. Ví dụ, để kiểm tra gói x11-drm:

# emerge --pretend x11-drm
Cấu hình module

Bạn nên liệt kê danh sách module bạn muốn nạp tự động trong /etc/modules.autoload.d/kernel-2.4 (hoặc kernel-2.6). Bạn có thể thêm các tùy chọn bổ sung cho các module bạn muốn luôn.

Để xem mọi module hiện có, hãy chạy lệnh find. Đừng quên thay thế "<phiên bản kernel>" với phiên bản kernel bạn đã biên dịch:

# find /lib/modules/<phiên bản kernel>/ -type f -iname '*.o' -or -iname '*.ko'

Ví dụ, để tự động nạp module 3c59x.o, hãy sửa tập tin kernel-2.4 hoặc kernel-2.6 và nhập vào tên module.

(Ví dụ với kernel 2.4)
# nano -w /etc/modules.autoload.d/kernel-2.4
3c59x

Hãy tiếp tục cài đặt với Cấu hình hệ thống.