gentoo 6

Màu nền
Font chữ
Font size
Chiều cao dòng

Gentoo Logo

[ << ] [ < ] [ Về đầu ] [ > ] [ >> ]

7. Cấu hình Kernel

Nội dung:

* Múi giờ

* Cài đặt từ mã nguồn

* Mặc định: Cấu hình bằng tay

* Thay thế: Dùng genkernel

* Kernel module

7.a. 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.

Mã 1.1: Đặt thông tin múi giờ

# ls /usr/share/zoneinfo

(Giả sử bạn muốn dùng Asia/Saigon)

# cp /usr/share/zoneinfo/Asia/Saigon /etc/localtime

7.b. 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 x86, chúng ta có vanilla-sources (kernel mặc định được phát triển bởi linux-kernel developer), gentoo-sources (kernel 2.4 kèm theo một số tính năng cải thiện hiệu năng) ...

Hãy chọn mã nguồn kernel bạn muốn và cài vào hệ thống bằng emerge. 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.

Mã 2.1: Cài đặt mã nguồn kernel

# USE="-doc symlink" emerge gentoo-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, mã nguồn kernel đã cài là gentoo-sources-2.6.12-r10. Phiên bản của bạn có thể khác, đừng nhầm lẫn.

Mã 2.2: Xem liên kết mã nguồn kernel

# ls -l /usr/src/linux

lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-2.6.12-gentoo-r10

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.

7.c. 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.

Mã 3.1: Chạy menuconfig

# 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:

Mã 3.2: Chọn code/driver thử nghiệm, General setup

Code maturity level options --->

[*] Prompt for development and/or incomplete code/drivers

General setup --->

[*] Support for hot-pluggable devices

Bạn phải bảo đảm mọi driver cần thiết cho quá trình khởi động hệ thống (như SCSI controller, ...) phải được biên dịch trong kernel, không phải biên dịch dạng module, nếu không hệ thống của bạn sẽ không thể khởi động.

Hãy đảm bảo bạn biên dịch kernel với đúng họ CPU bạn dùng:

Mã 3.3: Chọn đúng họ CPU

Processor type and features --->

(Thay đổi cho phù hợp với hệ thống của bạn)

(Athlon/Duron/K7) Processor family

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 /dev file system vì kernel 2.4 không hỗ trợ udev.

Mã 3.4: Chọn các hệ tập tin cần thiết

(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)

[*] Automatically mount dev at boot

[ ] /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 BIOS của bạn không thể xử lý ổ đĩa lớn và bạn đã cài lại jumper của ổ cứng của bạn để báo cáo kích thước giới hạn, bạn phải bật những tùy chọn sau để có thể truy cập tới toàn ổ cứng của bạn:

Mã 3.5: Chọn hỗ trợ autogeometry resizing

(Chỉ với kernel 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

Đừng quên bật DMA cho đĩa cứng của bạn:

Mã 3.6: Kích hoạt DMA

Device Drivers --->

ATA/ATAPI/MFM/RLL support --->

[*] Generic PCI bus-master DMA support

[*] Use PCI DMA by default when available

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:

Mã 3.7: Chọn driver PPPoE cần thiết

(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.

Nếu bạn có CPU Intel hỗ trợ HyperThreading (tm), hoặc bạn có hệ thống đa CPU, bạn nên bật Symmetric multi-processing support:

Mã 3.8: Kích hoạt hỗ trợ SMP

Processor type and features --->

[*] Symmetric multi-processing support

Nếu bạn dùng USB Input Device (như bàn phím hoặc /chuột USB), đừng quên bật nó lên:

Mã 3.9: Kích hoạt hỗ trợ USB cho Input Device

USB Support --->

<*> USB Human Interface Device (full HID) support

Người dùng Laptop sẽ muốn hỗ trợ PCMCIA không nên dùng PCMCIA driver nếu họ dùng kernel 2.4. Hầu hết các driver mới nằm trong gói pcmcia-cs sẽ được cài đặt sau. Tuy nhiên người dùng kernel 2.6 nên dùng PCMCIA driver trong kernel.

Ngoài ra, để hỗ trợ PCMCIA trong kernel 2.6, đừng quên bật hỗ trợ PCMCIA card bridge trên hệ thống:

Mã 3.10: Bật hỗ trợ PCMCIA cho kernel 2.6

Bus options (PCI, PCMCIA, EISA, MCA, ISA) --->

PCCARD (PCMCIA/CardBus) support --->

<*> PCCard (PCMCIA/CardBus) support

(chọn 16 bit nếu bạn cần hỗ trợ card cũ. Hầu hết mọi người đều muốn.)

<*> 16-bit PCMCIA support

[*] 32-bit CardBus support

(chọn bridge thích hợp bên dưới)

--- 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)

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 biên dịch:

Mã 3.11: Biên dịch kernel

(Với kernel 2.4)

# make dep && make bzImage modules modules_install

(Với kernel 2.6)

# make && make modules_install

Khi đã biên dịch kernel xong, hãy chép nó vào /boot. Dùng tên nào là tuỳ ý bạn. Bạn cần nhớ tên mình chọn để cấu bootloader trong phần sau. Nhớ thay <kernel-số phiên bản> với tên và phiên bản kernel của bạn.

Mã 3.12: Cài đặt kernel

# cp arch/i386/boot/bzImage /boot/<kernel-số phiên bản>

Giờ hãy tiếp tục với Kernel module.

7.d. 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:

Mã 4.1: Cài đặt genkernel

# emerge genkernel

Nếu bạn muốn cấu hình kernel 2.6, hãy chép tập tin cấu hình kernel từ CD Cài đặt vào chỗ genkernel tìm cấu hình mặc định:

Mã 4.2: Chép tập tin cấu hình kernel của CD Cài đặt

(Chỉ làm nếu bạn định cấu hình kernel 2.6)

# zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6

Giờ hãy biên dịch kernel bằng 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). Người dùng EVMS2 hoặc LVM2 sẽ muốn thêm tùy chọn --evms2 hoặc --lvm2 vào.

Mã 4.3: Chạy genkernel

# genkernel all

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.

Mã 4.4: Kiểm tra kernel image và initrd image đã tạo

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

Hãy thực hiện một trong những bước sau để 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:

Mã 4.5: Cài và bật coldplug

# emerge coldplug

# rc-update add coldplug boot

7.e. Kernel module

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:

Mã 5.1: Xem mọi module hiện có

# 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.

Mã 5.2: Sửa /etc/modules.autoload.d/kernel-2.4

(Ví dụ cho kernel 2.4)

# nano -w /etc/modules.autoload.d/kernel-2.4

Mã 5.3: /etc/modules.autoload.d/kernel-2.4 hoặc kernel-2.6

3c59x

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

[ << ] [ < ] [ Về đầu ] [ > ] [ >> ]

Tài liệu này sử dụng giấy phép Creative Commons - Attribution / Share Alike.

Bản in

View all

Cập nhật 16 Tháng hai 2006

The original version of this document was last updated March 28, 2009

Tóm tắt: Linux kernel là lõi của mọi bản phân phối. Chương này giải thích cách cấu hình kernel.

Sven Vermeulen

Author

Roy Marples

Author

Daniel Robbins

Author

Chris Houser

Author

Jerry Alexandratos

Author

Seemant Kulleen

Gentoo x86 Developer

Tavis Ormandy

Gentoo Alpha Developer

Jason Huebel

Gentoo AMD64 Developer

Guy Martin

Gentoo HPPA developer

Pieter Van den Abeele

Gentoo PPC developer

Joe Kallar

Gentoo SPARC developer

John P. Davis

Editor

Pierre-Henri Jondot

Editor

Eric Stockbridge

Editor

Rajiv Manglani

Editor

Jungmin Seo

Editor

Stoyan Zhekov

Editor

Jared Hudson

Editor

Colin Morey

Editor

Jorge Paulo

Editor

Carl Anderson

Editor

Jon Portnoy

Editor

Zack Gilburd

Editor

Jack Morgan

Editor

Benny Chuang

Editor

Erwin

Editor

Joshua Kinard

Editor

Tobias Scherbaum

Editor

Xavier Neys

Editor

Grant Goodyear

Reviewer

Gerald J. Normandin Jr.

Reviewer

Donnie Berkholz

Reviewer

Ken Nowack

Reviewer

Lars Weiler

Contributor

Nguyễn Thái Ngọc Duy

Translator

Donate to support our development efforts.

Support OSL

Gentoo Centric Hosting: vr.org

Tek Alchemy

SevenL.net

Global Netoptex Inc.

Bytemark

Online Kredit Index

Copyright 2001-2009 Gentoo Foundation, Inc. Questions, Comments? Contact us.

Bạn đang đọc truyện trên: Truyen2U.Pro

#gentoo