锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

debian编译内核2.6.16-1

时间:2023-05-30 10:37:00 vortex流量传感器sf850ct二极管q带电显示器传感器

红色:需要修改的选项紫:注意选项浅蓝色:过时或不能使用浅粉色:很多

from:Linux详解内核编译
------->为什么新编译内核?
一般有以下四个考虑因素:
定制编译的内核运行更快(代码更少)
该系统将有更多的内存(内核部分不会交换到虚拟内存)
不必要的功能编译可能会增加系统攻击者使用的漏洞
将某个功能编译成模块比编译成内核要慢
--------->内核编译模式
将相应的部分编译到核心(build-in)OR 将这部分编译成模块(module),动态调用。

STEPS:
step1.下载必要的工具
# apt-get install libncurses-dev kernel-package bzip2 make ncurses-dev fakeroot module-init-tools patch

step2.到http://www.kernel.org 下载最新的2.6.16内核,解压到/usr/src目录下;
#tar -jxvf linux-2.6.16.tar.bz2 -C /usr/src
#cd /usr/src
#ln -s linux-2.6.16 linux
# cp /boot/config-2.6.24-686 .config -----> 将当前配置设置为默认配置
step3. 在/usr/src/linux以下命令配置和编译新内核在目录下运行:
#make menuconfig
配置内核命令:

#make config(不推荐基于文本的最传统的配置界面)
#make menuconfig(推荐使用基于文本选单的配置界面)
#make xconfig(基于图形窗口模式的配置界面,Xwindow推荐使用)
#make oldconfig(如果只想在原有核配置的基础上修改一些小地方,会省去很多麻烦)

step4.

#make dep
----->读取配置过程中生成的配置文件,(.config)创建相应配置的依赖树,从而决定哪些需要编译,哪些不需要编译.
#make clean
---->删除前一步留下的文件,以避免一些错误.
#make bzImage或make zImage
----->实现内核的完全编译,使用两者生成的内核g***压缩的,用一个就够了,区别在于用make bzImage能产生较大的核心。建议大家使用make bzImage命令。
#make modules
------>生成相应的模块
#make modules_install
------>将模块复制到所需的目录中
#depmod -a
------>严格说来,depmod -a命令与编译过程无关,它是模块之间的依赖关系,所以在启动新内核后使用modprobe命令加载模块时就能正确地定位模块。
# make install

or
#make-kpkg clean ----->这一步必须执行
#make-kpkg --append_to_version -386 --initrd --revision=rev.01 kernel_image modules_image

---> make-kpkg --append_to_version :创建多个内核镜像,modules_image可以是pcmcia-cs*等,make-kpkg kernel_image实际执行make oldconfig和make dep。如果没使用initrd就不要使用–initrd选项。

# cd ..

# dpkg -i kernel-image*.deb pcmcia-cs*.deb # 安装


step5. 内核编译完成后在/usr/src在目录下生成一个kernel-image- 2.6.16_mykernel.1.0_i386.deb用以下命令安装软件包:dpkg -i kernel-image-2.6.16_mykernel.1.0_i386.deb这样,在/boot在目录下生成System.map- 2.6.16,vmlinuz-2.6.16文件。安装内核时grub自动生成启动选项非常方便,当然也可以手动修改grub配置文件 menu.list,重启系统,开始使用新的核心。

tips:
1)中括号要么是空的,要么是空的"*".尖括号可以是空的,"*"和"M".圆括号的内容是在提供的选项中选择一个。
2)选择的原则是将远离核心其他部分的功能代码编译成可加载模块;不选择不必要的功能;直接编译到核心中的一些密切关注和经常使用的功能代码。
3) 内核配置完成后,如果在退出配置菜单时选择保存配置,将在当前目录中生成.config记录内核的所有配置参数的文件。该配置文件将在下次配置中核实 自动导入。其他内核配置文件也可以通过导入内核配置菜单和存盘功能导入,并将当前配置以任何名义存储在其他地方。
4)Loadable module support–>Module unloading该选项允许卸载已加载的核模块。通过这个功能,我们可以通过rmmod module_name和modprobe module_name命令改变内核模块的加载参数。

重启新内核时,如果提示VFS不能挂接问题(很久以前我教同学第一次编内核的时候,他就是这个问题)
提示错误信息与以下内容相似:
VFS:Cannot open root device “hdb2″ or unknow-block(0,0)
Please append a correct “root=” boot option
kernel panic-not syncing: VFS:Unable to mount root fs on unknow-block(0,0)
原因:ext无论您是否使用文件格式支持,无论您是否将其编译成内核ext3或其它文件格式,ext支持必须直接编译成内核,不能以内核模块的形式编译。

5) 若编译失败,可使用make clean和make menuconfig重新配置和编译。
默认保存配置信息/usr/src/linux/.config文件中。
收尾工作

到目前为止,内核已经编译和安装,已经在那里 grub 在开始菜单的底部增加了一个启动项。重启可以尝试登录新的核心。还有一些小问题需要解决。 将 /usr/src/linux 指刚编译内核的源代码目录

#rm /usr/src/linux
#ln -s /usr/src/linux-版本号 /usr/src/linux

重启后,使用 uname -r 检查核心版本。自然,记得重新安装显卡驱动。

清理工作

如果经过一段时间的测试,你的核心可以稳定正常工作,你可以做一些清洁工作来释放磁盘空间。

清理旧文件

回到核心源码目录

#make clean

删除 /li/modules 下其他内核版本号对应的目录,即旧版本内核模块文件 删除 /boot 下其他内核版本号对应的文件

清理 grub 启动列表

你可能不希望失效的原来内核仍然留在开机选单上,那么

#mv /boot/grub/menu.lst.old /boot/grub/menu.lst
#rm /boot/*.old && rm /boot/grub*.old
#rm /boot/vmlinuz && rm /boot/initrd
#ln -s vmlinuz-新版本号-default vmlinuz
#ln -s initrd-新版本号-default initrd


更新 kernel-headers =

自行编译内核以后,linux-kernel-header 并不能自动更新,是 RPM 软件管理系统控制的。一般来说,此包会维持在官方内核版本。 所以我们需要手动更新,便于以后新内核下的模块编译工作。

rm -rf /usr/include/linux
cp -r /usr/src/linux-2.6...(新编译内核的版本号,请根据自己情况补全)/include/linux /usr/include

1、Code maturity level options ---> 代码成熟等级选项
      [ *] Prompt for development and/or incomplete code/drivers 默认情况下是选择的,这将会在设置界面中显示还在开发或者还没有完成的代码与驱动.你应该选择它,因为有许多设备可能必需选择这个选项才能进行配置,实际 上它是安全的。
2、 General setup ---> 常规安装选项
     ( ) Local version - append to kernel release
    [*]Support for paging of anonymous memory (swap) 这个选项将使你的内核支持虚拟内存,也就是让你的计算机好象拥有比实际内存更多 多的内存空间用来执行很大的程序。默认是选择的。
     [* ]System V IPC (IPC:Inter Process Communication)是组系统调用及函数库,它能让程序彼此间同步进行交换信息。某些程序以及DOS模拟环境都需要它。为进程提供通信机制,这将 使系统中各进程间有交换信息与保持同步的能力。有些程序只有在选Y的情况下才能运行,所以不用考虑,这里一定要选。
    [*] POSIX Message Queues:这是POSIX的消息队列,它同样是一种IPC。建议你最好将它选上。

     [*]BSD Process Accounting 一般用户所执行的程序,可通知内核将程序统计数据写成文件,详细记录相关信息。
       [*] BSD Process Accounting version 3 file format:这是充许用户进程访问内核将账户信息写入文件中的。这通常被认为是个好主意,建议你最好将它选上。
    [*] Sysctl support 此项功能可在不重新编译内核或是重新开机的前提下,动态变更某些特定的内核参数和变量,赋予内核较大的弹性。除非内存太少或是编译出来的内核是给安装、救 援磁盘所使用,否则这个选项一定要选上。这将提供一个接口让你可以动态的更改一些核心参数与变量,而不需要重新启动系统。打开这个选项将会增加内核的体积 至少8KB。如果你的内核仅用制作安装与恢复系统系统盘那么可以不选,以减少对内存的占用。
    [] Auditing support 审记支持,用于和内核的某些子模块同时工作,例如SELinux。只有选择此项及它的子项,才能调用有关审记的系统调用。
    [ *] Auditing support 审计支持,某些内核模块(例如SELinux)需要它,只有同时选择其子项才能对系统调用进行审计
            [ *]Enable system-call auditing support支持对系统调用的审计
    [ ] Kernel .config support 这将会把内核的配置信息与相关的文档说明编译进内核中,以后可以使用一些工具来提取它用来重新构建内核,一般不用选它。     
    []Cpuset support只有含有大量CPU(大于16个)的SMP系统或NUMA(非一致内存访问)系统才需要它
    []Initramfs source file(s) initrd已经被initramfs取代,如果你不明白这是什么意思,请保持空白.
    []Optimize for size (Look out for broken compilers!) 编译时优化内核尺寸(使用"-Os"而不是"-O2"参数编译),有时会产生错误的二进制代码.
    [ ] Configure standard kernel features (for small systems) ---> 这是为了编译某些特殊用途的内核使用的,例如引导盘系统。通常你可以不选择这一选项,你也不用对它下面的子项操心了。 
3、Loadable module support ---> 可引导模块支持 建议作为模块加入内核
    [*] Enable loadable module support 这个选项可以让你的内核支持模块,模块是什么呢?模块是一小段代码,编译后可在系统内核运行时动态的加入内核,从而为内核增加一些特性或是对某种硬件进行 支持。一般一些不常用到的驱动或特性可以编译为模块以减少内核的体积。在运行时可以使用modprobe命令来加载它到内核中去(在不需要时还可以移除 它)。一些特性是否编译为模块的原则是,不常使用的,特别是在系统启动时不需要的驱动可以将其编译为模块,如果是一些在系统启动时就要用到的驱动比如说文 件系统,系统总线的支持就不要编为模块了,否在无法启动系统。模块通常在/lib/modules/中.
     [*]Module unloading 这个选项可以让你卸载不再使用的模块,如果不选的话你将不能卸载任何模块(有些模块一旦加载就不能卸载,不管是否选择了这个选项)。不选择这个选项会让你的内核体积减小一点。

     []Forced module unloading 允许强制卸载正在使用中的模块(比较危险)

     []Module versioning support 允许使用其他内核版本的模块(可能会出问题)
     [ ] Source checksum for all modules这个功能是为了防止更改了内核模块的代码但忘记更改版本号而造成版本冲突。我估计现在没有哪家公司在开发中还没使用版本控制工具,所以不需 要这项了。如果你不是自己写内核模块,那就更不需要这一选项了。

     [*] Automatic kernel module loading 一般情况下,如果我们的内核在某些任务中要使用一些被编译为模块的驱动或特性时,我们要先使用modprobe命令来加载它,内核才能使用。不过,如果你 选择了这个选项,在内核需要一些模块时它可以自动调用modprobe命令来加载需要的模块,这是个很棒的特性,当然要选Y喽。
4、Block layer--->块设备层
    []Support for Large Block Devices仅在使用大于2TB的块设备时需要.
     IO Schedulers----->
          <*>Anticipatory I/O scheduler 预知I/O任务调度,不明白。官方文件说通常选上这个是个Good Choice,那就选上吧 ?假设一个块设备只有一个物理查找磁头(例如一个单独的SATA硬盘),将多个随机的小写入流合并成一个大写入流,用写入延时换取最大的写入吞吐量.适用 于大多数环境,特别是写入较多的环境(比如文件服务器)?

    <*>Deadline I/O scheduler
        使用轮询的调度器,简洁小巧,提供了最小的读取延迟和尚佳的吞吐量,特别适合于读取较多的环境(比如数据库)
    <>CFQ I/O scheduler
        使用QoS策略为所有任务分配等量的带宽,避免进程被饿死并实现了较低的延迟,可以认为是上述两种调度器的折中.适用于有大量进程的多用户系统,对于桌面用户而言,应该选上
    Default I/O scheduler---->
        默认IO调度器 (X)CFQ



5、Processor type and features ---> 处理器类型
    [*] Subarchitecture Type (PC-compatible) ---> 这选项的主要的目的,是使Linux可以支持多种PC标准,一般我们使用的PC机是遵循所谓IBM兼容结构(pc/at)。这个选项可以让你选择一些其它 架构。我们一般选择PC-compatible就可以了。
          (X) PC-compatible 就在这里选PC模式。
           ( ) AMD Elan
           ( ) Voyager (NCR)
           ( ) NUMAQ (IBM/Sequent)
           ( ) SGI 320/540 (Visual Workstation)
    [*]Processor family (Pentium-Pro) ---> CPU选项 这里针对自己的CPU型号,选取相应的选项。
查看cpu型号:#cat /proc/cpuinfo 我的是 Inter(R) Celeron(R) M processor 1300MHZ
                        
           ( ) 386   - Intel 80386系列及AMD, Cyrix的兼容微处理器
           ( ) 486   - Intel 80486系列及AMD, Cyrix, IBM的兼容微处理器。
           ( ) 586/K5/5x86/6x86/6x86MX   - 非Intel的586/686微处理器,包括AMD K5、Cyrix 5x86, 6x86及6x86MX。
           ( ) Pentium-Classic   - 原始Intel Pentium
           ( ) Pentium-MMX   - 支援MMX图形及多媒体扩充指令的Intel Pentium
           (X) Pentium-Pro   - Intel Pentium Pro
           ( ) Pentium-II/Celeron(pre-Coppermine)   - Intel Pentium II 及 pre-Coppermine Celeron
           ( ) Pentium-III/Celeron(Coppermine)/Pentium-III Xeon   - Intel Pentium III、Coppermine Celeron 及Intel Pentium-III Xeon
           ( ) Pentium M   - Intel Pentium III Mobile (不是 Pentium 4 Mobile)
           () Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon   - Intel Pentium 4,包括 Celeron 、 Xeon及Mobile K6/K6-II/K6-III (MK6) - AMD K6系列
           ( ) K6/K6-II/K6-III   - AMD K6系列
           ( ) Athlon/Duron/K7    - AMD Athlon K7系列
           ( ) Opteron/Athlon64/Hammer/K8   - AMD Opteron 或 Athlon64 Hammer系列
           ( ) Crusoe   - Transmeta Crusoe
           ( ) Efficeon   - Transmeta Efficeon
           ( ) Winchip-C6   - Transmeta Efficeon
           ( ) Winchip-2   - Transmeta Efficeon
       ( ) Winchip-2A/Winchip-3   - IDT Winchip-2A或3
           ( ) GeodeGX1   - Geode GX1 (Cyrix MediaGX)   - AMD Geode GX 或 LX
           ( ) CyrixIII/VIA-C3   - Cyrix III 或 C3
           ( ) VIA C3-2 (Nehemiah)   - VIC C3 "Nehemiah"

    [ ] Generic x86 support 这个选项提供了对X86系列CPU最大的兼容性,用来支持一些很少见的x86体系的CPU,它可能会降低一些系统性能。如果你的CPU能够在上面的列表中找到,就里就不用选了。
    [ ]HPET Timer Support 这也是一个新的特性,HPET是intel制定的新的用以代替传统的8254(PIT)中断定时器与RTC的定时器,全称叫作高精度事件定时器。如果你有 一台较新的机器就选它吧,一般它是一个安全的选项,即使你的硬件不支持HPET也不会造成问题,因为它会自动用8254替换。
    [ ] Symmetric multi-processing support 支持多处理器选项。如果只使用单CPU,那么得关闭。
    Preemptible Model 这可是个新特性,几乎所有介绍2.6的文章都会提到,这就是可抢先式内核。也就是说被一些优先级很高的程序可以先与一些低优先级的程序执行,即使这些程序 是在核心态下执行(这实际上仍然不是真正的抢先式内核)。从而减少内核潜伏期,提高系统的响应。当然在一些特殊的点的内核是不可抢先的,比如内核中的调度 程序自身在执行时就是不可被抢先的。这个特性可以提高桌面系统、实时系统的性能,所以还是选上吧。
          () No Forced Preemption (Server) 适合服务器环境的禁止内核抢占
          (X)Voluntary Kernel Preemption (Desktop)   适合普通桌面环境的自愿内核抢占
          ()Preemptible Kernel (Low-Latency Desktop)   适合运行实时程序的主动内核抢占
    
    [ ]Local APIC support on uniprocessors 这里的都是CPU一级的特性。SMP中的中断分发显然是一个大问题,会自动选择APIC,.不必设置.APIC: Advanced Programmable Interrupt Controller高级程序中断控制器.APIC主要应用于多处理器操作系统,是为了解决IRQ太少和处理器间中断而产生的,当然,单处理器操作系统也 可以使用APIC(不是模拟PIC) 如果你使用 nVidia 显卡,请关闭;
    [*] Machine Check Exception 如果系统出现一些问题比如CPU过热,内核将会在屏幕上打印相关信息来提醒你。这个功能是需要硬件支持的。你可以查看/proc/cpuinfo看看是否 有mce标志,有的话就选吧。如果你十分十分的不幸,选了它之后出现问题,可以在启动时加nomce参数来关闭它。

    < *> Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4 打开这个选项将会检查你机器上可能存在的问题,如果有一个非致命错误出现将会自动的修复并且记录,这可以帮助你查出程序出现问题的原因,是一个不错的选 项。当然它只能用在AMD Athlon/Duron / Intel Pentium 4这类CPU上。如果你正好在用它们中的一个你就选吧。
    < > Toshiba Laptop support 东芝笔记本支持。这个选项是针对Toshiba笔记本的,可以用来访问Toshiba的系统管理模式,也就是可以直接设置BIOS。不过要注意它只在 Toshiba自己的 BIOS中起作用。假如你有一台Toshiba笔记本,可惜它的BIOS是Phoenix的,那这个选项仍然是无用的。台式机就关闭!
    [ ] Enable X86 board specific fixups for reboot修正某些旧x86主板的重起bug,这种主板基本绝种
    /dev/cpu/microcode - Intel IA32 CPU microcode support 是否支持Intel IA32架构的CPU(Xeon)?这个选项将让你可以更新Intel IA32系列处理器的微代码,当然你还必须在文件系统选项中选择devfs才能正常的使用它。如果你把它译为模块你还需要在modprobe.conf中 加上这一行alias char-major-10-184 microcode 内核本身并不带有微代码的二进制文件,
    <> /dev/cpu/*/msr - Model-specific register support 是否打开Pentium CPU特殊功能寄存器的功能?这个选项桌面用户一般用不到,它主要用在Intel的嵌入式CPU中的,这个寄存器的作用也依赖与不同的CPU类型而有所不 同,一般可以用来改变一些CPU原有物理结构的用途,但不同的CPU用途差别也很大。
    <> /dev/cpu/*/cpuid - CPU information support 能从/dev/cpu/x/cpuid获得CPU的唯一标识符(CPUID).是否打开记录Petium CPU相关信息功能?这会在/dev/cpu中建立一系列的设备文件,用以让过程去访问指定的CPU。一般不用选。
    Firmware Drivers --->固件驱动程序
         

         <>BIOS Enhanced Disk Drive calls determine boot disk
           有些BIOS支持从某块特定的硬盘启动(如果BIOS不支持则可能无法启动),目前大多数BIOS还不支持
         < >EFI Variable Support via sysfs 不用选

         <>BIOS update support for DELL systems via sysfs
           仅适用于DELL机器 
         <>Dell Systems Management Base Driver
           仅适用于DELL机器
    High Memory Support (4GB) ---> 高容量内存支持
          如果你的计算机不会拥有1GB或以上的内存,请选off。如内存大小界符1GB和4GB之间,选       4GB。如果多于4GB,请选64GB。
    Allocate 3rd-level pagetables from highmem除非有几G的内存,否则选择这个是没有意义的。(没有这项)

    Memory split   如果你不是绝对清楚自己在做什么,不要改动这个选项    
    Memory model 一般选"Flat Memory",其他选项涉及内存热插拔    
    [ ] Math emulation Linux核心模拟数学浮点运算器,协处理器是在386时代的宠儿,现在早已下岗。
    [*]MTRR (Memory Type Range Register) support 在PCI或者AGP总线众进行更快速的通讯。由于现在所有系统都将它们的显卡接在PCI或AGP总线上,你通常需要选择“MTRR”,可以提升显卡性能。
    [ ] Boot from EFI support (EXPERIMENTAL) EFI是一种可代替传统BIOS的技术(目前的Grub/LILO尚不能识别它),但是现在远未普及,由于我使用的是GRUB,所以选上这个也没什么用, 如果你打算使用EFI的功能,你可以到http://elilo.sourceforge.net看看。
    []Use register arguments(EXPERIMENTAL)使用"-mregparm=3"参数编译内核,将前3个参数以寄存器方式进行参数调用,可以生成更紧凑和高效的代码     这个可以不用选择了

   [*]Enable seccomp to safely compute untrusted bytecode   此选项在数据应用程序执行期间估算不可信的字节代码时非常有效,只有嵌入式系统可以不选
   Timer frequency--->

    内核时钟频率,桌面推荐"1000 HZ",服务器推荐"100 HZ"或"250 HZ"
    [*]kexec system call
    提供kexec系统调用,可以不必重启而切换到另一个内核
6、Power management options (ACPI, APM) ---> 电源管理选项
   --- Power Management support 电源管理有APM和ACPI两种标准且不能同时使用
   [*]Legacy Power Management API 传统的电源管理API,比如软关机和系统休眠等接口 
    [ ] Power Management Debug Support 电源管理的调试信息支持,如果不是要调试内核有关电源管理部份,请不要选择这项。
    []software suspend   选择这个选项你可以挂起你的计算机(有点象XP中的休眠)
    ACPI (Advanced Configuration and Power Interface) Support --->
         
    不用选择,从这里进入ACPI电源管理的配置界面,ACPI和APM不能同时选择。
        [*]ACPI Support
       需要安装acpid守护程序,ACPI才能起作用.ACPI是为了取代APM而设计的,因此应该尽量使用ACPI而不是APM
        [ ] Sleep States (EXPERIMENTAL) 选择这个选项可以使你的系统具有挂起的功能,也就是说你可以暂时中断你的工作,让你的系统处与一种低电能消耗的状态(sleep state),不过目前该功能还不完善,可以不要选上。

       <>AC Adapter 如果你的系统可以在AC和电池之间转换就可以选
       <>Battery 通过/proc/acpi/battery向用户提供电池状态信息,用电池的笔记本可以选
    Button 守护程序捕获Power,Sleep,Lid按钮事件,并根据/proc/acpi/event做相应的动作,软件控制的poweroff需要它
       Video 扩展ACPI在主板上的完整图象显示驱动,仅对集成在主板上的显卡提供ACPI2.0支持,且不是所有集成显卡都支持
       <>Generic Hotkey 统一的热键驱动,建议不选
       <>Fan 允许通过用户层的程序来对系统风扇进行控制(开,关,查询状态),支持它的硬件并不多
       Processor 让处理器在空闲时间节能,同时它还被cpufreq的"Performance-state drivers"选项所依赖
       Thermal Zone
        系统温度过高时可以利用ACPI thermal zone及时调整工作状态以避免你的CPU被烧毁 

       <>ASUS/Medion Laptop Extras
        华硕笔记本专用,以提供额外按钮的支持,用户可以通过/proc/acpi/asus来打开或者关闭LCD的背光/调整亮度/定制LED的闪烁指示等功能 
       <>IBM ThinkPad Laptop Extras   IBM ThinkPad专用
       <>Toshiba Laptop Extras Toshiba笔记本专用
       <>Disable ACPI for systems before Jan 1st this year
        输入四位数的年份,在该年的1月1日前不使用ACPI的功能("0"表示一直使用) 
       <>Debug Statements
        详细的ACPI调试信息,不搞开发就别选 
       <>ACPI0004,PNP0A05 and PNP0A06 Container Driver 支持内存和CPU的热插拔,一般只有那种多CPU的服务器才会用到
    APM (Advanced Power Management) BIOS Support --->
    APM (Advanced Power Management) BIOS support
          [ ] Ignore USER SUSPEND 忽略用户暂停请求。建议关闭.只有NEC Versa M系列的笔记本才需要选择这一项
          [ ] Enable PM at boot time 开机时节能,这项就不用了,建议关闭。
          []Make CPU Idle calls when idle CPU空闲时节能.
          [ ] Enable console blanking using APM 空闲时console转成空白,在屏幕空白时关闭LCD背光,事实上对所有的笔记本都无效.建议关闭。
          [ ] RTC stores time in GMT 按Unix的标准,硬件的时钟应该设为格林威治时间。如果要硬件时钟设成了本地时间,这个选项就不用了。
          [ ] Allow interrupts during APM BIOS calls 允许APM的BIOS调用时中断。多数的机器不需要这项,Thinkpad的一些新机器需要这项。如果休眠时挂机(包括睡下去就醒不来),再把这项选上。
        [ ] Use real mode APM BIOS call to power off 建议最好选上此项,保证软件关机。如果你有兴趣可以试试你的机器不选这项能不能正常的软件关机(多数机器不能)。补充一点,如果既选择了ACPI又选择了 APM,先加载的将被使用.
       CPU Frequency scaling ---> 

        [*]CPU Frequency scaling 这一选项允许改变CPU的主频,使CPU在低负荷或使用电池时降低主频,达到省电的目的,必须同时启用下面的一种governor才行
           [] Enable CPUfreq debugging 是否允许调试CPU改变主频的功能,如果要调试,还需要在启动时加上参数。cpufreq.debug= 1:变频技术的内核调试 2:变频技术的驱动调试 3:变频技术的调节器调试
        < > CPU frequency translation statistics    通过sysfs文件系统输出CPU频率变换的统计信息
           [] CPU frequency translation statistics details 输出详细的CPU频率变换统计信息
        Default CPUFreq governor (performance) ---> 默认的CPU主频调节器.
                    (X) performance '性能'优先,静态的将频率设置为cpu支持的最高频率
                    ( ) userspace 既允许手动调整cpu频率,也允许用户空间的程序动态的调整cpu频率(需要额外的调频软件,比如cpufreqd)
    -----'performance' governor
        <> 'powersave' governor 最大限度的节约电能调节器。
        <>userspace' governor for userspace frequency scaling 既允许手动调整cpu频率,也允许用户空间的程序动态的调整cpu频率(需要额外的调频软件,比如cpufreqd)
        <> 'ondemand' cpufreq policy governor '立即响应',周期性的考察CPU负载并自动的动态调整cpu频率(不需要额外的调频软件),适合台式机,对CPU的频率作轮询,根据CPU的使用来调节 频率
        <*> 'conservative' cpufreq governor '保守',和'ondemand'相似,但是频率的升降是渐变式的(幅度不会很大),更适合用于笔记本/PDA/AMD64环境
    --- CPUFreq processor drivers
         ACPI Processor P-States driver 报告处理器的状态。

        < > AMD Mobile K6-2/K6-3 PowerNow! AMD移动版K6处理器的变频驱动。
        < > AMD Mobile Athlon/Duron PowerNow! AMD移动版毒龙、雷乌的变频驱动。
           < > Cyrix MediaGX/NatSemi Geode Suspend Modulation Cyrix处理器的变频驱动。
        < > Intel Enhanced SpeedStep Intel的变频技术支持。可以让处理器在2种工作模式之间随意地切换,即通电状态时的最高性能模式(Maximum Performance Mode)和电池状态时的电池优化模式Battery Optimized Mode.
           [ ] Use ACPI tables to decode valid frequency/voltage pairs 如果选择了Speedstep,就选上Use ACPI tables.
       [ ]Built-in tables for Banias CPUs 迅驰一代的主频/电压参数.
        < M> Intel Speedstep on ICH-M chipsets (ioport interface) Intel ICH-M南桥芯片组的支持。
        
        Intel Pentium 4 clock modulation P4处理器的时钟模块支持。
        <> Transmeta LongRun Transmeta处理器的支持。
        < > VIA Cyrix III Longhaul VIA Cyrix处理器的支持。
    --- shared options
        [ ] /proc/acpi/processor/../performance interface (deprecated) 从/proc/acpi/processor/../performance获得CPU的变频信息。 内核帮助文档反对使用该选项,即将被废除.
    [*]Relaxed speedstep capability checks 不全面检测Intel Speedstep,有的系统虽然支持Speedstep技术,却无法通过全面的检测
7.Bus options (PCI, PCMCIA, EISA, MCA, ISA) ---> 总线选项 
     --- PCI support 一定要进内核,不能编成模块) 
PCI access mode (Any) ---> PCI外围设备配置,强列建议选Any,系统将优先使用MMConfig,然后使用BIOS,最后使用Direct检测PCI设备
        ( )BIOS
        ( )MMConfig
        ( )Direct
        (X)Any 选用Any,系统会先尝试直接设置,倘若失败便会退回启用BIOS设置。
    [* ] PCI Express support   PCI-E支持 (目前主要用于显卡和千兆网卡)
    PCI Express Hotplug driver如果你的主板和设备都支持PCI Express热插拔就可以选上      
          [ ]Use polling mechanism for hot-plug events对热插拔事件采用轮询机制,仅用于测试目的
   [ ] Legacy /proc/pci interface 使用/proc/pci提供系统中的PCI设备信息.实际上,使用lspci(8)能提供相同甚至更多的信息.发行版都装有lspci包.可不选.
   [ ] PCI Debugging PCI调试,不选.
   [*]ISA support ISA 总路,现已淘汰,建议关闭。是否使用工业总线。如果你没 有老式的ISA设备,可以不选这项。现在基本上都没有ISA的设备了。不过需要注意的是如果你做嵌入式系统的开发,一些PC104的总线可能会桥接到 EISA或者是。VESA总线上。运行lspci | grep ISA, 若有, 则选上.
     [ ] EISA support 扩展ISA总路,早期计算机上的总路,现已淘汰,建议关闭。  
   [ ] MCA support IBM PS/2上的总线,现已淘汰,建议关闭。微通道总线。IBM的台式机和笔记本上可能会有这种总线,包括它的p系列、e系列、z系列机器上都用到了这种总线。
   < > NatSemi SCx200 support   支持National Semiconductor的SCx200处理器的,不选.
    PCCARD (PCMCIA/CardBus) support ---> PCMCIA是专门用在笔记本或PDA、数码相机等便携设备上的一种接口规范(总线结构)为笔记本上使用的网卡等设备
            [ ] Enable PCCARD debugging 仅供调试
             16-bit PCMCIA support   一些老的PCMCIA卡使用16位的CardBus. lspci -v | grep 16查看有没有16位的设备,
        [*] Load CIS updates from userspace (EXPERIMENTAL) 有的PCMCIA卡需要这个功能,选上.
        [*] PCMCIA control ioctl (obsolete)提供PCMCIA的ioctl接口.不懂什么意思,帮助文档建议选上.
             [*]32-bit CardBus support 当前的PCMCIA卡基本上都是32位的CardBus
        CardBus yenta-compatible bridge support 使用PCMCIA卡的基本上都需要选择,子项请按照自己实际使用的PCMCIA卡选择
       PC-card bridges 下面的是不同产家的PCMCIA芯片的驱动支持,如果你知道你的本本用的是什么芯片组的话,可以只选它而不选其它的。要是你不知道,可以全部选上,然后用 modprobe一种一种的试。
             CardBus yenta-compatible bridge support 使用PCMCIA卡的基本上都需要选择这一项
            Cirrus PD6729 compatible bridge support
            i82092 compatible bridge support
            Databook TCIC host bridge support
     PCI Hotplug Support PCI---->热插拔支持,一般来讲只有服务器上会有热插拔的设备,如果你使用的是台式机,你可以不选择此项并跳过这一部份.我没有选.
          <> Support for PCI hotplug
            <>Fake PCI Hotplug driver (NEW),选上这一选项能让你的机器模拟PCI热插拔。注意,它并不是真正意义上的热插拔,决对不允许带电插拔设备除非你的主板上集成了PCI热插拔芯 片并且你的PCI设备本身支持热插拔。
           <>Compaq PCI Hotplug driver (NEW),Compaq服务器上的热插拔芯片组的支持。
           <>IBM PCI Hotplug driver (NEW),IBM服务器上的热插拔芯片组的支持。
           <>ACPI PCI Hotplug driver (NEW),PCI热插拔设备是否支持ACPI电源管理(一般来说都是支持的)。
           <>CompactPCI Hotplug driver (NEW),精简PCI总线的热插拔设备的支持,通常在嵌入式系统中会用到精简PCI总线。
            SHPC PCI Hotplug driver (NEW),SHPC热插拔控制芯片的支持。

8、Executable file formats ---> 可执行文件格式
      [*] Kernel support for ELF binaries ELF是开放平台下最常用的二进制文件,它支持不同的硬件平台。.除非你知道自己在做什么,否则必选.
      Kernel support for a.out and ECOFF binaries   早期UNIX系统的可执行文件格式,目前已经被ELF格式取代 .    目前还有一些.out格式的代码.选为模块.
     < M> Kernel support for MISC binaries此选项允许插入二进制的封装层到内核中,当使用Java、.NET、Python、Lisp等语言编写的程序时非常有用。
9、Networking ---->   
     [*] Networking support 网络支持。这个选项里面的小项,请谨慎谨慎再谨慎!否则,用上新内核后,却上不了网,够你郁闷三天天三夜。
         []Networking options --->
            <*> Packet socket 这种Socket可以让应用程序(比如tcpdump,iptables)绕过IP层直接访问网络设备,直接与网络设备通讯,而不通过内核中的其它中介协议.让kernel支持socket传输
            [*]Packet socket: mmapped IO 让Packet socket驱动程序使用IO映射机制以使连接速度更快,让传输加速。
            <*> Unix domain sockets 一种仅运行于本机上的效率高于TCP/IP的Socket,简称Unix socket.许多程序都使用它在操作系统内部进行进程间通信(IPC),比如X Window和syslog
             IPsec user configration interface 支持IPsec用户设置接口,选为模块.IPsec 在 IP 层提供安全服务,它使系统能按需选择安全协议,决定服务所使用的算法及放置需求服务所需密钥到相应位置。
              PF_KEY sockets 用于可信任的密钥管理程序和操作系统内核内部的密钥管理进行通信,IPsec依赖于它
              [*] TCP/IP networking TCP/IP协议当然要选
              [*] IP: multicasting 群组广播,似乎与网格计算有关,仅在使用MBONE的时候才需要,如果你的电脑使用的带宽很大,用于视频,音频数据传输,那你选上,一般都用不着选,在同一时间将信息传到多部计算机的技术,不同于广播和对等,选
              []IP: advanced router 高级路由,如果想做一个路由器就选吧
              [*] IP: policy routing 策略路由
                 [*]IP: use netfilter MARK value as routing key
              [*] IP: equal cost multipath 用于路由的基于目的地址的负载均衡
                 [] IP: equal cost multipath with caching support (EXPERIMENTAL) 
               []IP: verbose route monitoring 显示冗余的路由监控信息
               [] IP: kernel level autoconfiguration 在内核启动时自动配置ip地址/路由表等,需要从网络启动的无盘工作站才需要这个东西
               <> IP: tunneling IP隧道,将一个IP报文封装在另一个IP报文内的技术, IP隧道,在多个网络中移动不需改变IP地址,信道传输支持,可以让某种通信协议可以用另外的协议来包装,离开后解出,不用选.
               <> IP: GRE tunnels over IP 基是否让Tunneling支持GRE或在IPV4中支持IPV6,不选
                [ ]IP: multicast routing多重传播路由,如果你打算把你的linux系统作为路由使用的话,就选上
                [ ]IP:ARP daemon support 这东西尚处于试验阶段就已经被废弃了
               [*]IP: TCP syncookie support 抵 抗SYN flood攻击的好东西,要启用它必须同时启用/proc文件系统和"Sysctl support",然后在系统启动并挂载了/proc之后执行"echo 1> /proc/sys/net/ipv4/tcp_syncookies"命令,如果选择,SYN cookies默认不会开启.
               IP: AH transformation IPsec验证头(AH)实现了数据发送方的验证处理,可确保数据既对于未经验证的站点不可用也不能在路由过程中更改,可以不选
               IP: ESP transformation   IPsec封闭安全负载(ESP)实现了发送方的验证处理和数据加密处理,用以确保数据不会被拦截/查看或复制,可以不选
               IP: IPComp transformation   IPComp(IP静荷载压缩协议),用于支持IPsec
           以上3个都是IPsec需要的,编为模块.
        IP: tunnel transformation 支持通用IP隧道传输.编为模块.
                IP: TCP socket monitoring interface对TCP套接字的支持,编为模块

               <*> INET: socket monitoring interface 支持socket监听接口,选上.
               [ ]TCP: advanced congestion control 高级拥塞控制,如果没有特殊需求(比如无线网络)就别选了,内核会自动将默认的拥塞控制设为"Cubic"并将"Reno"作为候补
       ---- IP: Virtual Server Configuration Virtual Server Configuration中 的选项设定都用M,按默认负载均衡集群是在应用服务器高负载的情况下,由多台节点提供可伸缩的,高负载的服务器组以保证对外提供良好的服务响应;而LVS 就是实现这一功能的技术,它通过使内核支持ipvs来实现LVS/Direct Routing (DR)、LVS/IP Tunnel、LVS/NAT的功能.对基于单个IP地址的虚拟服务器的支持,如果要使用虚拟Apache和Ftp则编为模块.
                <>IP: Virtual Server Configuration IP虚拟服务器允许你基于多台物理机器构建一台高性能的虚拟服务器,不玩集群就别选了
                
                /
                后面的再慢慢看吧...按menuconfig中的帮助文档来,该不选的绝不选.
               <>The IPv6 protocol 你要是需要IPv6就选吧
                [ ] Network packet filtering (replaces ipchains) ---> 网路封包过滤,如果你打算把你的计算机作为局域网的防火墙及网关的话,就选上,否则可以不要选
                /// [ ]NetLabel subsystem support NetLabel子系统为诸如CIPSO与RIPSO之类能够在分组信息上添加标签的协议提供支持,如果你看不懂就别选了.///
              DCCP Configuration---->数据报拥塞控制协议在UDP的基础上增加了流控和拥塞控制机制,使数据报协议能够更好地用于流媒体业务的传输
        The DCCP Protocol (EXPERIMENTAL)
              SCTP Configuration (EXPERIMENTAL) ---->流控制传输协议是一种新兴的传输层协议.TCP协议一次只能连接一个IP地址而在SCTP协议一次可以连接多个IP地址且可以自动平衡网 络负载,一旦某一个IP地址失效会自动将网络负载转移到其他IP地址上.

                The SCTP Protocol (EXPERIMENTAL) #Stream Control Transmission Protocol,一个新的传输层协议,与tcp,udp同层,不过很少有软件使用这个协议的,一般可以不要选

              TIPC Configuration---->透明内部进程间通信协议,以共享内存为基础实现任务和资源的调度,专门用于内部集群通信

                
      <>Asynchronous Transfer Mode (ATM) 异步传输模式(ATM)支持,如果你有ATM卡就选上,注意此ATM并非提款机,而是一种高速网络。估计咱们这都没有。
              <*>Classical IP over ATM(EXPERIMENTAL)
              [ ]Do not send ICMP if no neighbour
             <> LAN Emulation (LANE) support
       ......
      802.1d Ethernet Bridging 802.1d 以太网桥,如果你打算把你的系统作为以太网的桥连的话就选上,反正大多数人都可以不要选
      802.1Q VLAN Support 802.1Q虚拟局域网
     []DECnet Support DECnet是一种很生僻的协议
      <>ANSI/IEEE 802.2 LLC type 2 Support 对类形为2的定向连接的逻辑链路层的支持,不选
      <>The IPX protocol IPX协议 需要支持Novell网络协议的话就选上
                  [ ] IPX: Full internal IPX network
      Appletalk protocol support 苹果电脑间用来通讯的协议,如果你的linux电脑与其他的苹果电脑相连,需要进行通讯的话就选上
                  []Appletalk interfaces support
                   ...< *> Appletalk-IP driver support
     <>CCITT X.25 Packet Layer 大约没人需要这东西
     <>LAPB Data Link Driver 大约没人需要这东西

     [ ] Frame. Diverter (EXPERIMENTAL) #同上
     <>Acorn Econet/AUN protocols 一种被Acorn计算机使用的又老又慢的协议
     WAN router 广域网路由适用于长远距离之间的电脑通讯,需要很昂贵的设备
        
      QoS and/or fair queueing --->如果你需要Qos或公平队列就选吧,用于路由器或NAT,它可以修改网内各个计算机的各个数据流优先级。但只有使用相应第三方软件修改各个 数据流CoS后,才有效。并且占用一定的CPU资源和网络带宽。当内核通过网络设备来传送包时,必须决定每个包的顺序,如果选N,内核会采用标准的 FIFO方式,如果选Y,则需要选择下列算法中的一种CBQ ,HTB ,HFSC ,The simplest PRIO pseudoscheduler,RED ,SFQ ,TEQL ,TBF , GRED ,Network emulator,Ingress Qdisc,QoS support, Rate estimator,Packet classifier API,我们这里选QoS support并加入Rate estimator支持
      Network testing ---> 网络测试,仅供调试使用
[] Amateur Radio support ---> 配置业余广播支持
< > IrDA (infrared) subsystem support ---> 配置红外线(无线)通讯支持,
< > Bluetooth subsystem support ---> 配置蓝牙通讯支持,呵呵,偶也将这个全咔嚓了。
                     --- Bluetooth subsystem support 蓝牙支持
                                < > L2CAP protocol support
                                < > SCO links support
                                < > RFCOMM protocol support
                                [ ] RFCOMM TTY support
                                < > BNEP protocol support
                                [ ] Multicast filter support
                                [ ] Protocol filter support
                                < > CMTP protocol support
                                < > HIDP protocol support
                     --- Bluetooth device drivers ---> 蓝牙设备驱动

<>Generic IEEE 802.11 Networking Stack 通用无线局域网(IEEE 802.11系列协议)支持
10、Device Drivers
     Generic Driver Options---> 驱动程序通用选项
               [*]Select only drivers that don't need compile-time external firmware 只显示那些不需要内核对外部设备的固件作map支持的驱动程序,除非你有某些怪异硬件,否则请选上
               [*]Prevent firmware from being built 不编译固件.固件一般是随硬件的驱动程序提供的,仅在更新固件的时候才需要重新编译.建议选上
              Userspace firmware loading support 提供某些内核之外的模块需要的用户空间固件加载支持,在内核树之外编译的模块可能需要它
               []Driver Core verbose debug messages 让驱动程序核心在系统日志中产生冗长的调试信息,仅供调试
      Connector - unified userspace <-> kernelspace linker ; 支持基于netlink socket协议的用户空间与内核空间的连接.不确定可以不选
      Memory Technology Devices (MTD) 特殊的存储技术装置,如常用于数码相机或嵌入式系统的闪存卡
      []Parallel port support 并口支持(传统的打印机接口)
      [*]Plug and Play support即插即用设备的支持,视自己的情况,如果需要使用U盘等即插即用设备则选上
         []PnP Debug Messages 该选项仅供调试使用
         []ISA Plug and Play support ISA设备即插即用支持
         []Plug and Play BIOS support   Linux 使用"Plug and Play BIOS"规范v1.0A(1994年)中定义的PNPBIOS自动检测主板上的资源和设备,但是其中的某些特性目前尚未实现,比如:事件通知/扩展坞 (Docking Station)信息/ISAPNP服务.如果你希望由内核检测主板上的设备并为其分配资源(此时BIOS中的"PnP OS"必须开启)可以选上,此外,PNPBIOS还有助于防止主板上的设备与其他总线设备冲突.不过需要注意的是ACPI将会逐渐取代PNPBIOS(虽 然目前两者可以共存),所以如果你的系统不使用ISA设备并且支持ACPI,建议你不要选中该选项并将BIOS中的"PnP OS"关闭
            []Plug and Play BIOS /proc interface 该选项仅供调试使用
            [*]Plug and Play ACPI support 让Linux使用PNPACPI自动检测主板上内建的设备并为其分配资源(即使这些设备已被BIOS禁用),它有助于避免设备之间的资源(如中断)冲突
     Block devices 块设备
         <>Normal floppy disk support 通用软驱支持
         <>XT hard disk support 古董级产品
         <>Parallel port IDE device support 通过并口与计算机连接的IDE设备,比如某些老旧的外接光驱或硬盘之类

         <>Compaq SMA
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章