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