红联Linux门户
Linux帮助

2.6.xx内核编译详解

发布时间:2006-08-14 00:20:31来源:红联作者:MORR

做一件事情,首先要知道自己在干什么,而不是盲目得升级内核,现在升级内核有点泛滥,sigh
首先让我们先了解一下2.6内核的新特性

一、01.模块子系统(Module Subsystem)、统一设备模型(Unified Device Model)和 PnP 支持
模块子系统发生了重大变化。

02.稳定性有所提高
为了彻底避免内核加载或者导出正在被使用的内核模块,或者至少为了减少加载或者卸载模块的同时使用该模块的可能性
(这有时会导致系统崩溃),内核加载和导出内核模块的过程都得到了改进。

03.统一设备模型
统一设备模型的创建是 2.6 内核最重要的变化之一。它促进了模块接口的标准化,其目的是更好地控制和管理设备,例如:

更准确地确定系统设备。
电源管理和设备电源状态。
改进的系统总线结构管理。

04.即插即用(PnP)支持
1.1.1 和 1.1.2 小节中提及的变化使得运行 2.6 内核的 Linux 成为一个真正即插即用的 OS。
例如,对 ISA PnP 扩展、遗留 MCA 和 EISA 总线以及热插拔设备的 PnP 支持。

05.内核基础设施的变化
为了区别以 .o 为扩展名的常规对象文件,内核模块现在使用的扩展名是 .ko。
创建了新的 sysfs 文件系统,当内核发现设备树时就会描述它。
内存支持,NUMA 支持
支持更大数量的 RAM
2.6 内核支持更大数量的 RAM,在分页模式下最高可达 64GB。

06.NUMA
对非一致内核访问(Non-Uniform Memory Access - NUMA)系统的支持是 2.6 内核中新出现的。

07.线程模型,NPTL
相对于 v2.4 的 LinuxThreads,在版本 2.6 中新出现的是 NPTL(Native POSIX Threading Library)。
NPTL 为 Linux 带来了企业级线程支持,提供的性能远远超过了 LinuxThreads。它所基于的用户与内核线程的比率是 1:1。

在 2003 年 10 月,GNU C 程序库 glibc 中融入了 NPTL 支持,Red Hat 率先在 Red Hat Linux 9 和
Red Hat Enterprise Linux 中使用定制的 v2.4 内核实现了 NPTL。

08.性能改进
新的调度器算法
2.6 Linux 内核引入了新的 O(1) 算法。在高负载情况下它运行得特别好。新的调度器基于每个 CPU 来分布时间片,
这样就消除了全局同步和重新分配循环,从而提高了性能。

内核抢占(Kernel Preemption)
新的 2.6 内核是抢占式的。这将显著地提高交互式和多媒体应用程序的性能。

I/O 性能改进
Linux 的 I/O 子系统也发生了重大的变化,通过修改 I/O 调度器来确保不会有进程驻留在队列中过长时间等待进行输入/输出操作,
这样就使得 I/O 操作的响应更为迅速。

快速用户空间互斥(Fast User-Space Mutexes)
“futexes”(快速用户空间互斥)可以使线程串行化以避免竞态条件,引入它也提高了响应速度。
通过在内核空间中部分实现“futexes”以允许基于竞争设置等待任务的优先级而实现改进。

09.扩展性改进
处理器数目更多
Linux 内核 2.6 最多可以支持 64 个 CPU。支持更大的内存,归功于 PAE(物理地址扩展,Physical Address Extensions),在 32-位系统上分页模式下所支持的内存增加到了 64GB。

用户和组
惟一用户和组的数量从 65,000 增至 40 多亿,也就是从 16-位增加到了 32-位。

PID 的数量
PID 的最大数量从 32,000 增至 10 亿。

打开文件描述符的数量
打开文件描述符的数量没有增加,但是不再需要事先设置该参数,它将自行调节。

10.支持更多的设备
在 Linux 内核 2.6 之前,内核中有可以约束大型系统的限制,比如每条链 256 个设备。v2.6 内核彻底地打破了这些限制,
不但可以支持更多类型的设备,而且支持更多同类型的设备。在 Linux 2.6 系统中,可以支持 4095 种主要的设备类型,
每一个单独的类型可以有超过一百万个子设备。
文件系统大小
Linux 内核 2.6 所允许的可寻址文件系统大小最大为 16 TB。

11.文件系统
ext2、ext3 和 ReiserFS 等传统 Linux 文件系统得到了显著的改进。最值得注意的改进是扩展属性(或文件元数据)的引入。
最重要的是 POSIX ACL 的实现,这是对普通 UNIX 权限的扩展,可以支持更细化的用户访问控制。

12.除了对传统 Linux 文件系统的改进支持以外,新的内核完全支持在 Linux 中相对较新的 XFS 文件系统。
Linux 2.6 内核现在还引入了对 NTFS 文件系统的改进的支持,现在允许以读/写模式安装 NTFS 文件系统。

基于以上2.6的新特性,我决定用2.6的内核,我的系统为Red Hat Enterprise Linux AS release 3 (Taroon Update 3)
硬件环境为DELL 2850

一、下载解压并打上内核补丁
我以2.6.10为例子,patche以bk4的例子,目的只是让大家知道怎么打patch,
其实本人用的是2.6.6的内核,因为在AS3.0上升级到2.6.9以上的内核,
mount大的nfs网络硬盘时,df 显示不正确,明明是800G的盘变成4.2G,
不过还是能正常用,我升级过nfs和mount的包都没用,/var/log/message里
提示是kernel: nfs warning: mount version older than kernel,
还望知道的 告知一声,谢 :) BTW:2.6.8的内核没用过

内核源代码:http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2
最新内核补丁:http://www.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-2.6.10-bk4.bz2

cd /usr/src
rm -rf linux
tar jxf /download/linux-2.6.10.tar.bz2
ln -s linux-2.6.10 linux
cd linux
bunzip2 -dv /download/patch-2.6.10-bk4.bz2 |patch -p1
如果在/usr/src目录下就用patch -p0

二、修改内核源代码 (升级2.6就是为了优化,干脆连源代码也改了吧)

1.修改/usr/src/linux/include/linux/posix_types.h
设置fd_set支持的最大数量
#define __FD_SETSIZE 1024 ---> 65536

2.修改/usr/src/linux/include/linux/fs.h
设置最大打开文件数量(TCP连接数量)
#define INR_OPEN 1024 ---> 65536
#define NR_FILE 8192 ---> 65536
#define NR_RESERVED_FILES 10 ---> 128

3.修改/usr/src/linux/include/net/tcp.h
设置TIMEOUT的时间为1秒
#define TCP_TIMEWAIT_LEN (60*HZ) 60 ---> 1*HZ
设置在backlog队列里的半连接的重试次数,每次都会花相应的时间,本质上 也是减少重试时间
#define TCP_SYNACK_RETRIES 5 ---> 3

针对RHEL-AS3本来就是稳定+优化的,不过就算你用 RHEL-AS3 自己的内核,那也要修改一下上面的参数才好呀 :)

三、安装必要的工具

1.下载module-init-tools-3.1.tar.bz2
http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.1.tar.bz2
代码:
./configure --prefix=/
make moveold
make all install
./generate-modprobe.conf /etc/modprobe.conf

2.下载新的mkinitrd
ftp://195.220.108.108/linux/6/fedora/core/3/i386/os/Fedora/RPMS/mkinitrd-4.1.18-2.i386.rpm
它需要lvm2 device-mapper
ftp://195.220.108.108/linux/6/fedora/core/3/i386/os/Fedora/RPMS/device-mapper-1.00.19-2.i386.rpm
ftp://195.220.108.108/linux/6/fedora/core/3/i386/os/Fedora/RPMS/lvm2-2.00.25-1.01.i386.rpm
如果不更新这个包在make install时会提示以下错误:
代码:
No module mptbase found for kernel 2.6.10-bk4, aborting.
mkinitrd failed
make[1]: *** [install] Error 1
make: *** [install] Error 2

安装lvm2-2.00.25-1.01.i386.rpm时请用rpm -ivh --nodeps package name

四、make menuconfig
代码:
01.Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
[*] Select only drivers expected to compile cleanly
02.General setup --->
[*] Support for paging of anonymous memory (swap)
[*] System V IPC
[*] POSIX Message Queues
[ ] BSD Process Accounting
[*] Sysctl support
[ ] Auditing support
[ ] Support for hot-pluggable devices
[*] Kernel Userspace Events
[ ] Kernel .config support
[*] Configure standard kernel features (for small systems) --->
[*] Load all symbols for debugging/kksymoops
[ ] Do an extra kallsyms pass
[*] Enable futex support
[*] Enable eventpoll support
[ ] Optimize for size
[*] Use full shmem filesystem
03.Loadable module support --->
[*] Enable loadable module support
[*] Module unloading
[ ] Forced module unloading
[ ] Module versioning support (EXPERIMENTAL)
[ ] Source checksum for all modules
[*] Automatic kernel module loading
04.Processor type and features --->
Subarchitecture Type (PC-compatible) --->
Processor family (Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon) --->
[*] Generic x86 support
[ ] HPET Timer Support
[*] Symmetric multi-processing support 多CPU
(8) Maximum number of CPUs (2-255)
[*] SMT (Hyperthreading) scheduler support
[*] Preemptible Kernel 抢占式内核,请选上它
[ ] Machine Check Exception
< > Toshiba Laptop support
< > Dell laptop support
< > /dev/cpu/microcode - Intel IA32 CPU microcode support
< > /dev/cpu/*/msr - Model-specific register support
< > /dev/cpu/*/cpuid - CPU information support
Firmware Drivers --->
High Memory Support (4GB) ---> 高内存
[ ] Allocate 3rd-level pagetables from highmem
[ ] Math emulation
[*] MTRR (Memory Type Range Register) support
[*] Enable kernel irq balancing
[ ] Use register arguments (EXPERIMENTAL)
05.Power management options (ACPI, APM) ---> 电源管理 自定 (偶没选)
06.Bus options (PCI, PCMCIA, EISA, MCA, ISA) ---> 板卡支持 自定
[*] PCI support
PCI access mode (Any) --->
[ ] Message Signaled Interrupts (MSI and MSI-X)
[*] Legacy /proc/pci interface
[*] PCI device name database
[ ] ISA support
[ ] MCA support
< > NatSemi SCx200 support
07.Executable file formats --->
[*] Kernel support for ELF binaries
Kernel support for a.out and ECOFF binaries
Kernel support for MISC binaries
08.Device Drivers ---> 设备驱动及网络支持
Generic Driver Options ---> 默认
[*] Select only drivers that don't need compile-time external firmware
[*] Prevent firmware from being built
Memory Technology Devices (MTD) ---> 不选
Parallel port support ---> 并行端口 自定(偶没选)
Plug and Play support ---> 支持热插拔 自定(偶没选)
Block devices --->
<*> Normal floppy disk support
< > Compaq SMART2 support
< > Compaq Smart Array 5xxx support
< > Mylex DAC960/DAC1100 PCI RAID Controller support
< > Micro Memory MM5415 Battery Backed RAM support (EXPERIMENTAL)
Loopback device support
< > Cryptoloop Support
Network block device support
< > Promise SATA SX8 support
RAM disk support
(16) Default number of RAM disks
(4096) Default RAM disk size (kbytes)
() Source directory of cpio_list
[ ] Support for Large Block Devices
< > Packet writing on CD/DVD media
IO Schedulers ---> IO调度器,都选上吧 可以在grub.conf指定用IO调度哪种方式,后面会讲的
<*> Anticipatory I/O scheduler
<*> Deadline I/O scheduler
<*> CFQ I/O scheduler
ATA/ATAPI/MFM/RLL support ---> ATA设备 自定 (偶没选)
SCSI device support ---> SCSI设备 自定我有scsi的设备所以有以下选项
<*> SCSI device support
[*] legacy /proc/scsi/ support
--- SCSI support type (disk, tape, CD-ROM)
<*> SCSI disk support
因为偶式MPT的SCSI,所以以下都没选,省略之
Multi-device support (RAID and LVM) ---> 支持RAID和LVM(逻辑卷) 自定
[*] Multiple devices driver support (RAID and LVM)
<*> RAID support
< > Linear (append) mode
<*> RAID-0 (striping) mode
< > RAID-1 (mirroring) mode
< > RAID-10 (mirrored striping) mode (EXPERIMENTAL)
<*> RAID-4/RAID-5 mode
< > RAID-6 mode (EXPERIMENTAL)
<*> Multipath I/O support
< > Faulty test module for MD
<*> Device mapper support
< > Crypt target support
< > Snapshot target (EXPERIMENTAL)
< > Mirror target (EXPERIMENTAL)
< > Zero target (EXPERIMENTAL)
Fusion MPT device support ---> 偶的SCSI是这个,所以选了 还是自定
<*> Fusion MPT (base + ScsiHost) drivers
(40) Maximum number of scatter gather entries
<*> Fusion MPT misc device (ioctl) driver
IEEE 1394 (FireWire) support ---> 自定 (偶没选)
I2O device support ---> 自定 (偶没选)
Networking support ---> 网络选项
[*] Networking support
Networking options --->
<*> Packet socket
[ ] Packet socket: mmapped IO
< > Netlink device emulation
<*> Unix domain sockets 如果你有网络就选
< > PF_KEY sockets
[*] TCP/IP networking
[ ] IP: multicasting
[ ] IP: advanced router
[ ] IP: kernel level autoconfiguration
< > IP: tunneling
< > IP: GRE tunnels over IP
[ ] IP: ARP daemon support (EXPERIMENTAL)
[*] IP: TCP syncookie support (disabled per default) 能防DOS攻击,但会降低一点性能,总的说性价比不错
< > IP: AH transformation
< > IP: ESP transformation
< > IP: IPComp transformation
< > IP: tunnel transformation
<*> IP: TCP socket monitoring interface
IP: Virtual Server Configuration ---> lvs 支持
< > The IPv6 protocol (EXPERIMENTAL)
[*] Network packet filtering (replaces ipchains) ---> 包过滤省略(知道的自己选,不熟悉的都选上)
以下都没选,省略
[ ] Amateur Radio support --->
< > IrDA (infrared) subsystem support --->
< > Bluetooth subsystem support --->
[*] Network device support
< > Dummy net driver support 这个是nis服务器的吧,不大清楚,没用过
<*> Bonding driver support 双网卡绑定的
< > EQL (serial line load balancing) support
< > Universal TUN/TAP device driver support
ARCnet devices --->
Ethernet (10 or 100Mbit) --->
Ethernet (1000 Mbit) --->
< > Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit support
< > D-Link DL2000-based Gigabit Ethernet support
< > Intel(R) PRO/1000 Gigabit Ethernet support
< > National Semiconduct DP83820 support
< > Packet Engines Hamachi GNIC-II support
< > Packet Engines Yellowfin Gigabit-NIC support (EXPERIMENTAL)
< > Realtek 8169 gigabit ethernet support
< > Marvell Yukon Chipset / SysKonnect SK-98xx Support
<*> Broadcom Tigon3 support
以下都没选,省略
ISDN subsystem --->
Telephony Support --->
Input device support --->
Character devices --->
I2C support --->
Dallas's 1-wire bus --->
Misc devices --->
Multimedia devices --->
Graphics support --->
Sound --->
USB support --->
MMC/SD Card support ---> 以上都没选,需要的自己选
09.File systems ---> 文件系统
< > Second extended fs support
<*> Ext3 journalling file system support
[ ] Ext3 extended attributes
[*] JBD (ext3) debugging support
< > Reiserfs support
< > JFS filesystem support
< > XFS filesystem support
< > Minix fs support
< > ROM file system support
[ ] Quota support
< > Kernel automounter support
<*> Kernel automounter version 4 support (also supports v3)
CD-ROM/DVD Filesystems --->
<*> ISO 9660 CDROM file system support
[ ] Microsoft Joliet CDROM extensions
[ ] Transparent decompression extension
< > UDF file system support
DOS/FAT/NT Filesystems ---> floppy要用到的文件格式
<*> MSDOS fs support
<*> VFAT (Windows-95) fs support
(437) Default codepage for FAT (NEW)
(iso8859-1) Default iocharset for FAT (NEW)
< > NTFS file system support
Pseudo filesystems --->
[*] /proc file system support proc文件系统支持
[ ] /proc/kcore support
[ ] /dev file system support (OBSOLETE)
[ ] /dev/pts Extended Attributes
[*] Virtual memory file system support (former shm fs) 虚拟内存支持
[ ] tmpfs Extended Attributes
[ ] HugeTLB file system support
Miscellaneous filesystems --->
Network File Systems --->
<*> NFS file system support nfs客户端支持
[*] Provide NFSv3 client support
[ ] Provide NFSv4 client support (EXPERIMENTAL)
[ ] Allow direct I/O on NFS files (EXPERIMENTAL)
< > NFS server support nfs服务端支持
< > Secure RPC: Kerberos V mechanism (EXPERIMENTAL)
< > Secure RPC: SPKM3 mechanism (EXPERIMENTAL)
< > SMB file system support (to mount Windows shares etc.) samba支持
< > CIFS support (advanced network filesystem for Samba, Window and other CIFS compliant servers)
< > NCP file system support (to mount NetWare volumes)
< > Coda file system support (advanced network fs)
< > Andrew File System support (AFS) (Experimental)
Partition Types --->
Native Language Support ---> 自己选
10.Profiling support ---> 没选
11.Kernel hacking ---> 没选
12.Security options ---> 没选
13.Cryptographic options ---> 没选
14.Library routines --->
< > CRC-CCITT functions
<*> CRC32 functions
CRC32c (Castagnoli, et al) Cyclic Redundancy-Check


五、编译安装
步骤:make -jn(n代表同时编译的进程,可以加快编译速度,n由你的配置决定,我的配置用15-25)
make modules_install
make install

六、grub的设置
设置之前先介绍一下2.6的I/O调度器
2.6包含的四个I/O调度器分别是No-op I/O scheduler、Anticipatory I/O scheduler、Deadline I/O scheduler与CFQ I/O scheduler。
在后文中分别简称为ns、as、ds与cfq。

ns是一个简化的调度程序它只作最基本的合并与排序。与桌面系统的关系不是很大,主要用在一些特殊的软件
与硬件环境下,这些软件与硬件一般都拥有自己的调度机制对内核支持的要求很小,这很适合一些嵌入式系统环境。作为桌面用户我们一般不会选择它。

as是当前内核中默认的I/O调度器。它拥有非常好的性能,在2.5中它就相当引人注意。在与2.4内核进行的对比测试中,在2.4中多项以分钟为单位
完成的任务,它则是以秒为单位来完成的。正因为如此它成为目前2.6测试版中默认的I/O调度器。但它也存在着弱点,它本身是比较庞大与复杂的,
在一些特殊的情况下,特别是在数据吞吐量非常大的数据库系统中它会变的比较缓慢。

ds就是针对as的缺点进行改善而来的,还处于测试阶段,但已经很稳定了。目前表现出的性能几乎与as一样好。加之比as更加小巧,
是相当有前途的调度器,值得一试:)

cfq为系统内的所有任务分配相同的带宽,提供一个公平的工作环境,它比较适合桌面环境。事实上在测试中它也有不错的表现,
mplayer xmms等多媒体播放器与它配合的相当好,回放平滑几乎没有因访问磁盘而出现的跳帧现象。对于喜欢在Linux下听音乐看电影的朋友不妨尝试一下。

好了,下面说说怎么设置:参数的格式为elevator=调度器名

修改/boot/grub/grub.conf,在kernel那行后门加入elevator=deadline

例如:kernel /boot/vmlinuz-2.6.10-bk4 ro root=/dev/你的根分区 elevator=deadline

七、reboot


Code maturity level options (代码成熟等级 )
  
  PHP代码:
  
  Code maturity level options --->
  [*] Prompt for development and/or incomplete code/drivers
  [*]  Select only drivers expected to compile cleanly
  
  1.prompt for development and/or incomplete code/drivers.
  
  默认情况下是选择的,这将会在设置界面中显示还在开发或者还没有完成的代码与驱动.你应该选择它,因为有许多设备可能必需选择这个选项才能进行配置,实际上它是安全的。
  
  2.Select only drivers expected to compile cleanly(NEW)
  
  选择这个选项你将不会看到一些已知的存在问题的驱动程序选项,默认的情况下也是选择的。如果 你有设备没有找到驱动选项,你可以将这一项去掉,或许就可以找到相关驱动了,不过它可能是有BUG的。
  
  . General setup (普通属性设置 )
  
  PHP代码:
  
  General setup --->
  () Local version - append to kernel release
  [*] Support for paging of anonymous memory (swap)
  [*] System V IPC
  [*] POSIX Message Queues
  [*] BSD Process Accounting
  [*]  BSD Process Accounting version 3 file format
  [*] Sysctl support
  [ ] Auditing support
  (15) Kernel log buffer size (16 => 64KB, 17 => 128KB)
  [*] Support for hot-pluggable devices
  [*] Kernel Userspace Events
  [*] Kernel .config support
  [*] Configure standard kernel features (for small systems) --->
  
  Support for paging of anonymous memory (swap) (NEW)
  
  这个选项将使你的内核支持虚拟内存,也就是让你的计算机好象拥有比实际内存更多 多的内存空 间用来执行很大的程序。默认是选择的。
  
  System V IPC
  
  为进程提供通信机制,这将使系统中各进程间有交换信息与保持同步的能力。有些程序只有在选Y的情况下才能运行,这里一定要选。
  
  POSIX Message Queues
  
  这是POSIX的消息队列,它同样是一种IPC。建议你最好将它选上。
  
  BSD Process Accounting
  
  这是充许用户进程访问内核将账户信息写入文件中的。这通常被认为是个好主意,
  
  Sysctl support
  
  这个选项能不重新编译内核修改内核的某些参数和变量,如果你也选择了支持/proc,将能从/proc/sys存取可以影响内核的参数或变量。建议你最好将它选上。
  
  Auditing support
  
  审记支持,用于和内核的某些子模块同时工作,例如SELinux。只有选择此项及它的子项,才能调用有关审记的系统调用。
  
  Kernel log buffer size (16 => 64 KB 17 => 128 KB)
  
  内核日志缓存的大小
  
  Kernel Userspace Events
  
  内核中分为系统区和用户区,这里系统区和用户区进行通讯的一种方式
  
  Kernel .config support
  
  将.config配置信息保存在内核中,选上它及它的子项使得其它用户能从/proc中得到内核的配置。
  
  Configure standard kernel features (for small systems)
  
  这是为了编译某些特殊的内核使用的,通常你可以不选择这一选项
  
  . Loadable module support (加载模块选项 )
  
  PHP代码:
  Loadable module support --->
  [*] Enable loadable module support
  [*] Module unloading
  [*] Module versioning support (EXPERIMENTAL)
  [ ] Source checksum for all modules
  [*] Automatic kernel module loading
  
  Enable loadable module support
  
  很多人喜欢将全部功能、硬件支持一股脑的编进内核,而不是使用模块的方式。使用模块支持,你的系统能具有更好的可扩充性。还有一个原因就是自己编写的功能模块、设备驱动模块(假设编写的质量不高)以模块方式工作引起Kernel Panic的机率要远远低于不支持模块全部编进内核的方式。
  
  Module unloading
  
  不选这个功能,加载的模块就不能卸载。没什么需要多解释的,建议最好选上。
  
  Module versioning support (EXPERIMENTAL)
  
  这个功能可以让你使用其它版本的内核模块
  
  Source checksum for all modules
  
  这个功能是为了防止更改了内核模块的代码但忘记更改版本号而造成版本冲突.
  
  Automatic kernel module loading
  
  这个选项能让内核自动的加载部份模块,建议你最好选上。举个例子说明一下,如模块eth1394依赖于模块ieee1394。如果选择了这个选项,可以直接加载模块eth1394;如果没有选择这个选项,必需先加载模块ieee1394,再加载模块eth1394,否则将出错。
  
  .Processor type and features (处理器内型及特性)
  
  PHP代码:
  Subarchitecture Type (PC-compatible) --->
  Processor family (386) --->
  [ ] Generic x86 support
  [*] HPET Timer Support
  [*] Symmetric multi-processing support
  [ ] Preemptible Kernel
  [ ] local APIC support on uniprocessors
  [ ] Machine Check Exception
  [ ] Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium
  <M> Toshiba Laptop support
  <M> Dell laptop support
  < > /dev/cpu/microcode - Intel IA32 CPU microcode support
  < > /dev/cpu/*/msr - Model-specific register support
  < > /dev/cpu/*/cpuid - CPU information support
  Firmware Drivers --->
  High Memory Support (off) --->
  [ ] Math emulation
  [*] MTRR (Memory Type Range Register) support
  [ ] Use register arguments (EXPERIMENTAL)
  
  Subarchitecture Type
  
  这没什么好说的,如果用PC机的话都选这个。
  
  Processor family (386)
  
  这也没什么好说的,选择你机器对应的处理器即可。
  
  Generic x86 support
  
  这一选项针对x86系列的CPU使用更多的常规优化。如果你在上面一项选的是i386、i586之类的才选这个。
  
  HPET Timer Support
  
  HPET是替代8254芯片的下一代时钟处理器。这里你可以安全的选上这一选项。如果硬件不支持的话,将仍使用8254时钟处理器。
  
  Symmetric multi-processing support
  
  对称多处理器支持,在单CPU的机器上,不选这个选项会更快一些。由于超线程技术,看起来是两颗CPU,因些要选上这个选项。
  
  Preemptible Kernel
  
  这个选项能使应用程序即使内核在高负载时也很可靠,建议最好选上。
  
  local APIC support on uniprocessors
  ..
  
  Machine Check Exception
  
  这个选项能让CPU检测到系统故障时通知内核
  
  Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium
  
  打开这个选项将会检查你机器上可能存在的问题,如果有一个非致命错误出现将会自动的修复并且记录,这可以帮助你查出程序出现问题的原因,是一个不错的选项.
  
  Toshiba Laptop support
  
  对Toshiba本本的支持
  
  Dell laptop suppor
  
  对Dell的支持
  
  /dev/cpu/microcode - Intel IA32 CPU microcode support
  
  这个选项是让你使用不随Linux内核发行的IA32 microcode,但是你必需有IA32 microcode的二进制文件。
  
  /dev/cpu/*/msr - Model-specific register support
  
  这个选项能让特权CPU访问x86的MSR寄存器。由于超线程并不是真正的多处理器环境,所以不要选择这个。
  
  /dev/cpu/*/cpuid - CPU information support
  
  这个选项能从/dev/cpu/x/cpuid获得CPU的唯一标识符
  
  High Memory Support (off)
  
  如果你有大容量的内存(超过4G)你要选它,以使内核可以使用这部分内存。偶是没这命啦这部分永远为OFF,如果你有你就ON吧。
  
  Math emulation
  
  估计现在没人有386或486SX的处理器了吧,那就不要选这个。
  
  MTRR (Memory Type Range Register) support
  
  在Intel p6家族的处理器中(Ppro、 PII和更新的)有一个内存类型范围寄存器,可用来控制处理器访问的内存范围。打开它一般可以提升显卡的显示性能
  
  .Power management options (ACPI, APM) (电源管理)
  
  PHP代码:
  [*] Power Management support
  [ ]  Power Management Debug Support
  [ ]  Software Suspend (EXPERIMENTAL)
  ACPI (Advanced Configuration and Power Interface) Support --->
  APM (Advanced Power Management) BIOS Support --->
  CPU Frequency scaling --->
  
  Power Management support
  
  电源管理没什么好说的,不想浪费电就选上。如果不选你可以跳过这部份。
  
  Power Management Debug Support
  
  电源管理的调试信息支持,如果不是要调试内核有关电源管理部份,请不要选择这项。
  
  Software Suspend (EXPERIMENTAL)
  
  休眠到硬盘。也就是将内存写入交换分区中,下次启动可以通过参数resume=/dev/swappartition(例如:resume= /dev/hda6)来恢复上次机器运行的状态。这项功能对于系统引导时启动许多服务的机器来说很有用,可以节约启动时间。这项功能根据自己的需要选择吧,如果你选择这项功能,记得恢复休眠后重做交换分区。
  
  ACPI (Advanced Configuration and Power Interface) Support --->
  
  从这里进入ACPI电源管理的配置界面,要注意ACPI与APM不能同时使用,如果你同时配置了这两者,那么在系统启动时如果发现一个可工作的ACPI设备那么APM将被关闭,ACPI会被加载
  
  APM (Advanced Power Management) BIOS Support --->
  
  高级电源管理的支持,一般来说笔记本应该选上,台式机可以不选。
  
  CPU Frequency scaling --->
  
  这一选项允许改变CPU的主频,使CPU在低负荷或使用电池时降低主频,达到省电的目的。
  
  .Bus options (PCI, PCMCIA, EISA, MCA, ISA)
  
  PHP代码:
  [*] PCI support
  PCI access mode (Any) --->
  [ ]  PCI Express support
  [ ]  Legacy /proc/pci interface
  [ ]  PCI device name database
  [ ]  ISA support
  [ ]  EISA support
  [ ]  Vesa Local Bus priming
  [ ]  Generic PCI/EISA bridge
  [ ]  EISA virtual root device
  [ ]  EISA device name database
  [ ]  MCA support
  [ ]  Legacy MCA API Support
  [ ]  Support For the mca entry in /proc
  [ ]  NatSemi SCx200 support
  PCCARD (PCMCIA/CardBus) support --->
  PCI Hotplug Support --->
  
  PCI support
  
  PCI支持,如果使用了PCI插槽,当然必选
  
  PCI access mode (Any)
  
  选Any,系统将优先使用MMConfig,然后使用BIOS,最后使用Direct检测PCI设备
  
  PCI Express support
  PCI Express总线支持
  
  Legacy /proc/pci interface
  
  是否使用/proc/pci目录下的信息文件来描述PCI设备的信息。现在的系统多数都使用lspci工具来得到这样的信息
  
  PCI device name database
  
  如果你不打算使用lspci工具,就把这项和上面的一项选上。lspci和hotplug都不需要内核中的设备信息库了
  
  ISA support
  
  如果你没有老式的ISA设备,老的ISA槽支持,可以不选这项
  
  EISA suppor
  
  扩展工业总线支持
  
  Vesa Local Bus priming
  
  ESA总线,也是扩展工业总线的一种,已经被PCI代替,所以不用选择
  
  Generic PCI/EISA bridge
  
  PCI、EISA两种总线的桥
  
  EISA virtual root device
  
  EISA总线的虚拟根设备
  
  EISA device name database
  
  内核中的EISA设备信息库
  
  MCA support
  
  (IBM的东东) 微通道总线.IBM的台式机和笔记本上可能会有这种总线,包括它的p系列、e系列、z系列机器上都用到了这种总线
  
  Legacy MCA API Support
  .
  
  Support For the mca entry in /proc
  .
  
  NatSemi SCx200 support
  
  松下的一种半导体处理器的驱动,If you don't know what to do here, say N.
  
  PCCARD (PCMCIA/CardBus) support --->
  
  一般只有笔记本电脑上才会有PCMCIA插槽,如果你是台式机的话,可以不选这一项
  
  PCI Hotplug Support --->
  
  支持PCI热插拔的.
  
  .Executable file formats (可执行文件格式)
  
  PHP代码:
  [ ]  Kernel support for ELF binaries
  [ ]  Kernel support for a.out and ECOFF binaries
  [ ]  Kernel support for MISC binaries
  
  Kernel support for ELF binaries
  
  这个当然y,因为目前gcc2.7.0以上的都有支持ELF了,如果没有选择这一项可能会使用相当多的程序因此无法执行
  
  Kernel support for a.out and ECOFF binaries
  
  a.out的执行文件是比较古老的可执行码,用在比较早期的UNIX系统上.Linux最初也是使用这种码来执行程序,一直到ELF格式的可执行码出来后,有愈来俞多的程序码随着ELF格式的优点而变成了ELF的可执码.将来势必完全取代a.out格式的可执行码.但目前由于沿有许多的程序还没有取代过来,所以只好选择Y,等将来有一天,全部的程序都变成了ELF的天下时,那时再disable掉
  
  Kernel support for MISC binaries
  
  可以让你支援?的种类的binary执行档(如:Java、Python ... etc)?到kernel或编成module都ok
  
  .Device Drivers
  
  PHP代码:
  [*] Generic Driver Options --->
  [ ]  Memory Technology Devices (MTD) --->
  [ ]  Parallel port support --->
  [ ]  Plug and Play support --->
  [ ]  Block devices --->
  [ ]  ATA/ATAPI/MFM/RLL support --->
  [ ]  SCSI device support --->
  [ ]  Old CD-ROM drivers (not SCSI, not IDE) --->
  [ ]  Multi-device support (RAID and LVM) --->
  [ ]  Fusion MPT device support --->
  [ ]  IEEE 1394 (FireWire) support --->
  [ ]  I2O device support --->
  [ ]  Networking support --->
  [ ]  ISDN subsystem --->
  [ ]  Telephony support --->
  [ ]  Input device support --->
  [ ]  Character devices --->
  [ ]  I2C support --->
  [ ]  Dallas's 1-wire bus --->
  [ ]  Misc devices --->
  [ ]  Multimedia devices --->
  [ ]  Graphics support --->
  [ ]  Sound --->
  [ ]  USB support --->
  [ ]  MMC/SD card support --->
  [ ]  InfiniBand support --->
  
  Generic Driver Options
  ..
  
  Memory Technology Devices (MTD)
  ..
  
  Parallel port support
  ..
  
  Plug and Play support
  热插拔支持,当然要选择.
  
  Block devices
  ..
  
  ATA/ATAPI/MFM/RLL support
  ..
  
  SCSI device support
  ..
  
  Old CD-ROM drivers (not SCSI, not IDE)
  ..
  
  Multi-device support (RAID and LVM)
  ..
  
  Fusion MPT device support
  ..
  
  IEEE 1394 (FireWire) support
  ..
  
  I2O device support
  ..
  
  Networking support
  ..
  
  ISDN subsystem
  ..
  
  Telephony support
  ..
  
  Input device support
  ..
  
  Character devices
  ..
  
  I2C support
  ..
  
  Dallas's 1-wire bus
  ..
  
  Misc devices
  ..
  
  Multimedia devices
  ..
  
  Graphics support
  ..
  
  Sound
  ..
  
  USB support
  ..
  
  MMC/SD card support
  ..
  
  InfiniBand support
文章评论

共有 8 条评论

  1. theoneclan 于 2007-08-28 21:17:54发表:

    谢谢楼主!!!

  2. 194.88.214.* 于 2007-07-19 06:01:11发表:

    http://www.ringtones-dir.net/get/ ringtones site. Free nokia ringtones here, Download ringtones FREE, Best free samsung ringtones. From website .

  3. 194.88.214.* 于 2007-07-19 06:00:20发表:

    http://www.ringtones-dir.net/get/ ringtones site. Free nokia ringtones here, Download ringtones FREE, Best free samsung ringtones. From website .

  4. 194.88.214.* 于 2007-07-19 06:00:13发表:

    http://www.ringtones-dir.net/get/ ringtones site. ringtones download: Free nokia ringtones here, Download ringtones FREE, Best free samsung ringtones. samsung ringtones From website .

  5. 194.88.214.* 于 2007-07-19 06:00:03发表:

    http://www.ringtones-dir.net/get/ ringtones site. ringtones download: Free nokia ringtones here, Download ringtones FREE, Best free samsung ringtones. samsung ringtones From website .

  6. 194.88.214.* 于 2007-07-19 05:59:56发表:

    http://www.ringtones-dir.net/download/ download ringtones. nokia ringtones: Free nokia ringtones here, Download ringtones FREE, Best free samsung ringtones. http://www.ringtones-dir.net/free/ [link=http://www.ringtones-dir.net]ring tones[/link] From site .

  7. 194.88.214.* 于 2007-07-19 05:59:22发表:

    http://www.ringtones-dir.net/download/ download ringtones. nokia ringtones: Free nokia ringtones here, Download ringtones FREE, Best free samsung ringtones. http://www.ringtones-dir.net/free/ [link=http://www.ringtones-dir.net]ring tones[/link] From site .

  8. blueeyes1004 于 2006-09-05 09:26:22发表:

    学习ing