资讯详情

Linux 2.6.19.x内核编译配置选项简介

Code maturity level options 代码成熟度选项

Prompt for development and/or incomplete code/drivers 显示代码和驱动器仍在开发中或尚未完成.除非你是测试人员或开发人员,否则不要选择

General setup 常规设置

Local version - append to kernel release 在内核版本后面添加自定义版本字符串(小于64字符),可以使用"uname -a"命令看到 Automatically append version information to the version string 版本信息自动添加到版本字符串后面,需要编译perl以及git仓库支持 Support for paging of anonymous memory (swap) 使用交换分区或交换文件作为虚拟内存 System V IPC System V进程间通信(IPC)许多程序需要这个功能.除非你知道你在做什么

IPC Namespaces IPC命名空间支持,不确定可以不选择

POSIX Message Queues POSIX这是消息队列POSIX IPC中的一部分 BSD Process Accounting 将流程统计信息写入文件的用户级系统调用,主要包括流程创建时间/创建者/内存占用等信息

BSD Process Accounting version 3 file format 新的第三版文件格式可以包含每个过程PID和其父进程的PID,但不兼容旧版本的文件格式

Export task/process statistics through netlink 通过netlink接口向用户空间导出任务/过程的统计信息BSD Process Accounting不同之处在于,这些统计信息可用于整个任务/过程生存期

Enable per-task delay accounting 统计信息资源包含在统计信息中(cpu,IO同步、内存交换等)所花费的时间

UTS Namespaces UTS不确定的名称空间支持可以不选择 Auditing support 一些内核模块(如审计支持)SELinux)需要它,只有同时选择其子项才能对系统调用进行审计

Enable system-call auditing support 支持系统调用的审计

Kernel .config support 将内核的配置信息编译成内核,以后可以通过scripts/extract-ikconfig脚本来提取这些信息

    Enable access to .config through /proc/config.gz          允许通过/proc/config.gz访问内核的配置信息

Cpuset support      只有含有大量CPU(大于16个)的SMP系统或NUMA(非一致内存访问)系统才需要它  Kernel->user space relay support (formerly relayfs)      在某些文件系统上(比如debugfs)提供从内核空间向用户空间传递大量数据的接口  Initramfs source file(s)      initrd已经被initramfs取代,如果你不明白这是什么意思,请保持空白  Optimize for size (Look out for broken compilers!)      编译时优化内核尺寸(使用"-Os"而不是"-O2"参数编译),有时会产生错误的二进制代码  Enable extended accounting over taskstats      收集额外的进程统计信息并通过taskstats接口发送到用户空间  Configure standard kernel features (for small systems)      配置标准的内核特性(为小型系统)

    Enable 16-bit UID system calls          允许对UID系统调用进行过时的16-bit包装      Sysctl syscall support          不需要重启就能修改内核的某些参数和变量,如果你也选择了支持/proc,将能从/proc/sys存取可以影响内核行为的参数或变量      Load all symbols for debugging/kksymoops          装载所有的调试符号表信息,仅供调试时选择

        Include all symbols in kallsyms              在kallsyms中包含内核知道的所有符号,内核将会增大300K          Do an extra kallsyms pass              除非你在kallsyms中发现了bug并需要报告这个bug才打开该选项

    Support for hot-pluggable devices          支持热插拔设备,如usb与pc卡等,Udev也需要它      Enable support for printk          允许内核向终端打印字符信息,在需要诊断内核为什么不能运行时选择      BUG() support          显示故障和失败条件(BUG和WARN),禁用它将可能导致隐含的错误被忽略      Enable ELF core dumps          内存转储支持,可以帮助调试ELF格式的程序      Enable full-sized data structures for core          在内核中使用全尺寸的数据结构.禁用它将使得某些内核的数据结构减小以节约内存,但是将会降低性能      Enable futex support          快速用户空间互斥体可以使线程串行化以避免竞态条件,也提高了响应速度.禁用它将导致内核不能正确的运行基于glibc的程序      Enable eventpoll support          支持事件轮循的系统调用      Use full shmem filesystem          完全使用shmem来代替ramfs.shmem是基于共享内存的文件系统(可能用到swap),在启用TMPFS后可以挂载为tmpfs供用户空间使用,它比简单的ramfs先进许多      Use full SLAB allocator          使用SLAB完全取代SLOB进行内存分配,SLAB是一种优秀的内存分配管理器,推荐使用      Enable VM event counters for /proc/vmstat          允许在/proc/vmstat中包含虚拟内存事件记数器

Loadable module support  可加载模块支持

Enable loadable module support      打开可加载模块支持,如果打开它则必须通过"make modules_install"把内核模块安装在/lib/modules/中

    Module unloading          允许卸载已经加载的模块

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

    Module versioning support          允许使用其他内核版本的模块(可能会出问题)      Source checksum for all modules          为所有的模块校验源码,如果你不是自己编写内核模块就不需要它      Automatic kernel module loading          让内核通过运行modprobe来自动加载所需要的模块,比如可以自动解决模块的依赖关系

Block layer  块设备层

Enable the block layer      块设备支持,使用硬盘/USB/SCSI设备者必选

    Support for Large Block Devices          仅在使用大于2TB的块设备时需要      Support for tracing block io actions          块队列IO跟踪支持,它允许用户查看在一个块设备队列上发生的所有事件,可以通过blktrace程序获得磁盘当前的详细统计数据      Support for Large Single Files          仅在可能使用大于2TB的文件时需要      IO Schedulers          IO调度器

        Anticipatory I/O scheduler              假设一个块设备只有一个物理查找磁头(例如一个单独的SATA硬盘),将多个随机的小写入流合并成一个大写入流,用写入延时换取最大的写入吞吐量.适用于大多数环境,特别是写入较多的环境(比如文件服务器)          Deadline I/O scheduler              使用轮询的调度器,简洁小巧,提供了最小的读取延迟和尚佳的吞吐量,特别适合于读取较多的环境(比如数据库)          CFQ I/O scheduler              使用QoS策略为所有任务分配等量的带宽,避免进程被饿死并实现了较低的延迟,可以认为是上述两种调度器的折中.适用于有大量进程的多用户系统          Default I/O scheduler              默认IO调度器

Processor type and features  中央处理器(CPU)类型及特性

Symmetric multi-processing support      对称多处理器支持,如果你有多个CPU或者使用的是多核CPU就选上.此时"Enhanced Real Time Clock Support"选项必须开启,"Advanced Power Management"选项必须关闭  Subarchitecture Type      处理器的子架构,大多数人都应当选择"PC-compatible"  Processor family      处理器系列,请按照你实际使用的CPU选择  Generic x86 support      通用x86支持,如果你的CPU能够在上述"Processor family"中找到就别选  HPET Timer Support      HPET是替代8254芯片的新一代定时器,i686及以上级别的主板都支持,可以安全的选上  Maximum number of CPUs      支持的最大CPU数,每增加一个内核将增加8K体积  SMT (Hyperthreading) scheduler support      支持Intel的超线程(HT)技术  Multi-core scheduler support      针对多核CPU进行调度策略优化  Preemption Model      内核抢占模式

    No Forced Preemption (Server)          适合服务器环境的禁止内核抢占      Voluntary Kernel Preemption (Desktop)          适合普通桌面环境的自愿内核抢占      Preemptible Kernel (Low-Latency Desktop)          适合运行实时程序的主动内核抢占

Preempt The Big Kernel Lock      可以抢占大内核,应用于实时要求高的场合,不适合服务器环境  Machine Check Exception      让CPU检测到系统故障时通知内核,以便内核采取相应的措施(如过热关机等)

    Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4          每5秒检测一次这些cpu的非致命错误并纠正它们,同时记入日志      check for P4 thermal throttling interrupt          当P4的cpu过热时显示一条警告消息

Enable VM86 support      虚拟X86支持,在DOSEMU下运行16-bit程序或XFree86通过BIOS初始化某些显卡的时候才需要  Toshiba Laptop support      Toshiba笔记本模块支持  Dell laptop support      Dell笔记本模块支持  Enable X86 board specific fixups for reboot      修正某些旧x86主板的重起bug,这种主板基本绝种了  /dev/cpu/microcode - Intel IA32 CPU microcode support      使用不随Linux内核发行的IA32微代码,你必需有IA32微代码二进制文件,仅对Intel的CPU有效  /dev/cpu/*/msr - Model-specific register support      在多cpu系统中让特权CPU访问x86的MSR寄存器  /dev/cpu/*/cpuid - CPU information support      能从/dev/cpu/x/cpuid获得CPU的唯一标识符(CPUID)  Firmware Drivers      固件驱动程序

    BIOS Enhanced Disk Drive calls determine boot disk          有些BIOS支持从某块特定的硬盘启动(如果BIOS不支持则可能无法启动),目前大多数BIOS还不支持      BIOS update support for DELL systems via sysfs          仅适用于DELL机器      Dell Systems Management Base Driver          仅适用于DELL机器

High Memory Support      最高内存支持,总内存小于等于1G的选"off",大于4G的选"64G"  Memory split      如果你不是绝对清楚自己在做什么,不要改动这个选项  Memory model      一般选"Flat Memory",其他选项涉及内存热插拔  64 bit Memory and IO resources      使用64位的内存和IO资源  Allocate 3rd-level pagetables from highmem      在内存很多(大于4G)的机器上将用户空间的页表放到高位内存区,以节约宝贵的低端内存  Math emulation      数学协处理器仿真,486DX以上的cpu就不要选它了  MTRR (Memory Type Range Register) support      打开它可以提升PCI/AGP总线上的显卡2倍以上的速度,并且可以修正某些BIOS错误  Boot from EFI support      EFI是一种可代替传统BIOS的技术(目前的Grub/LILO尚不能识别它),但是现在远未普及  Enable kernel irq balancing      让内核将irq中断平均分配给多个CPU以进行负载均衡,但是要配合irqbanlance守护进程才行  Use register arguments      使用"-mregparm=3"参数编译内核,将前3个参数以寄存器方式进行参数调用,可以生成更紧凑和高效的代码  Enable seccomp to safely compute untrusted bytecode      只有嵌入式系统可以不选  Timer frequency      内核时钟频率,桌面推荐"1000 HZ",服务器推荐"100 HZ"或"250 HZ"  kexec system call      提供kexec系统调用,可以不必重启而切换到另一个内核  kernel crash dumps      被kexec启动后产生内核崩溃转储  Physical address where the kernel is loaded      内核加载的物理地址,除非你知道自己在做什么,否则不要修改.在提供kexec系统调用的情况下可能要修改它  Support for hot-pluggable CPUs      对热插拔CPU提供支持  Compat VDSO support      如果Glibc版本大于等于2.3.3就不选,否则就选上

Power management options  电源管理选项

Power Management support      电源管理有APM和ACPI两种标准且不能同时使用.即使关闭该选项,X86上运行的Linux也会在空闲时发出HLT指令将CPU进入睡眠状态

    Legacy Power Management API          传统的电源管理API,比如软关机和系统休眠等接口      Power Management Debug Support          仅供调试使用      Driver model /sys/devices/.../power/state files          内核帮助文档反对使用该选项,即将被废除

ACPI (Advanced Configuration and Power Interface) Support      必须运行acpid守护程序ACPI才能起作用.ACPI是为了取代APM而设计的,因此应该尽量使用ACPI而不是APM

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

        Thermal Zone              系统温度过高时可以利用ACPI thermal zone及时调整工作状态以避免你的CPU被烧毁

    ASUS/Medion Laptop Extras          ASUS笔记本专用,以提供额外按钮的支持,用户可以通过/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调试信息,不搞开发就别选      Power Management Timer Support          这个Timer在所有ACPI兼容的平台上都可用,且不会受PM功能的影响,建议总是启用它.如果你在kernel log中看到了'many lost ticks'那就必须启用它      ACPI0004,PNP0A05 and PNP0A06 Container Driver          支持内存和CPU的热插拔      Smart Battery System          支持依赖于I2C的"智能电池".这种电池非常老旧且罕见,还与当前的ACPI标准兼容性差

APM (Advanced Power Management) BIOS Support      APM在SMP机器上必须关闭,一般来说当前的笔记本都支持ACPI,所以应尽量关闭该该选项

    Ignore USER SUSPEND          只有NEC Versa M系列的笔记本才需要选择这一项      Enable PM at boot time          系统启动时即启用APM,选上这个选项能让系统自动的进行电源管理,但常常导致启动时死机      Make CPU Idle calls when idle          系统空闲时调用空闲指令(halt),只有老式的CPU才需要选它,且对于SMP系统必须关闭      Enable console blanking using APM          在屏幕空白时关闭LCD背光,事实上对所有的笔记本都无效      RTC stores time in GMT          将硬件时钟应该设为格林威治时间,否则视为本地时间.建议你使用GMT,这样你无须为时区的改变而担心      Allow interrupts during APM BIOS calls          允许APM的BIOS调用时中断,IBM Thinkpad的一些新机器需要这项.如果休眠时挂机(包括睡下去就醒不来),可以试试它      Use real mode APM BIOS call to power off          此驱动为某些有Bug的BIOS准备,如果你的系统不能正常关机或关机时崩溃,可以试试它

CPU Frequency scaling      允许动态改变CPU主频,达到省电和降温的目的,必须同时启用下面的一种governor才行

    Enable CPUfreq debugging          允许对CPUfreq进行调试      CPU frequency translation statistics          通过sysfs文件系统输出CPU频率变换的统计信息

        CPU frequency translation statistics details              输出详细的CPU频率变换统计信息

    Default CPUFreq governor          默认的CPU频率调节器      'performance' governor          '性能'优先,静态的将频率设置为cpu支持的最高频率      'powersave' governor          '节能'优先,静态的将频率设置为cpu支持的最低频率      'userspace' governor for userspace frequency scaling          既允许手动调整cpu频率,也允许用户空间的程序动态的调整cpu频率(需要额外的调频软件,比如cpufreqd)      'ondemand' cpufreq policy governor          '立即响应',周期性的考察CPU负载并自动的动态调整cpu频率(不需要额外的调频软件),适合台式机      'conservative' cpufreq governor          '保守',和'ondemand'相似,但是频率的升降是渐变式的(幅度不会很大),更适合用于笔记本/PDA/AMD64环境      ACPI Processor P-States driver          将ACPI2.0的处理器性能状态报告给CPUFreq processor drivers以决定如何调整频率,该选项依赖于ACPI->Processor      {省略的部分请按照自己实际使用的CPU选择}      /proc/acpi/processor/../performance interface          内核帮助文档反对使用该选项,即将被废除      Relaxed speedstep capability checks          放松对系统的speedstep兼容性检查,仅在某些老旧的Intel系统上需要打开

Bus options (PCI, PCMCIA, EISA, MCA, ISA)  总线选项

PCI support      PCI支持,如果使用了PCI或PCI Express设备就必选

    PCI access mode          PCI访问模式,强列建议选"Any"(系统将优先使用"MMConfig",然后使用"BIOS",最后使用"Direct"检测PCI设备)      PCI Express support          PCI Express支持(目前主要用于显卡和千兆网卡)

        PCI Express Hotplug driver              如果你的主板和设备都支持PCI Express热插拔就可以选上

            Use polling mechanism for hot-plug events                  对热插拔事件采用轮询机制,仅用于测试目的

        Root Port Advanced Error Reporting support              由PCI Express AER驱动程序处理发送到Root Port的错误信息

    Message Signaled Interrupts (MSI and MSI-X)          PCI Express支持两类中断:INTx使用传统的IRQ中断,可以与现行的PCI总线的驱动程序和操作系统兼容;MSI则是通过inbound Memory Write触发和发送中断,更适合多CPU系统.可以使用"pci=nomsi"内核引导参数关闭MSI      PCI Debugging          将PCI调试信息输出到系统日志里      Interrupts on hypertransport devices          允许本地的hypertransport设备使用中断

ISA support      现在基本上没有ISA的设备了,如果你有就选吧  MCA support      微通道总线,老旧的IBM的台式机和笔记本上可能会有这种总线  NatSemi SCx200 support      在使用AMD Geode处理器的机器上才可能有  PCCARD (PCMCIA/CardBus) support      PCMCIA卡(主要用于笔记本)支持

    Enable PCCARD debugging          仅供调试      16-bit PCMCIA support          一些老的PCMCIA卡使用16位的CardBus      32-bit CardBus support          当前的PCMCIA卡基本上都是32位的CardBus      CardBus yenta-compatible bridge support          使用PCMCIA卡的基本上都需要选择这一项,子项请按照自己实际使用的PCMCIA卡选择      {省略的部分请按照自己实际使用的PCMCIA卡选择}

PCI Hotplug Support      PCI热插拔支持,如果你有这样的设备就到子项中去选吧

Executable file formats  可执行文件格式

Kernel support for ELF binaries      ELF是开放平台下最常用的二进制文件格式,支持动态连接,支持不同的硬件平台.除非你知道自己在做什么,否则必选  Kernel support for a.out and ECOFF binaries      早期UNIX系统的可执行文件格式,目前已经被ELF格式取代  Kernel support for MISC binaries      允许插入二进制的封装层到内核中,使用Java,.NET,Python,Lisp等语言编写的程序时需要它

Networking  网络

Networking options      网络选项

    Network packet debugging          在调试不合格的包时加上额外的附加信息,但在遇到Dos攻击时你可能会被日志淹没      Packet socket          这种Socket可以让应用程序(比如tcpdump,iptables)直接与网络设备通讯,而不通过内核中的其它中介协议

        Packet socket: mmapped IO              让Packet socket驱动程序使用IO映射机制以使连接速度更快

    Unix domain sockets          一种仅运行于本机上的效率高于TCP/IP的Socket,简称Unix socket.许多程序都使用它在操作系统内部进行进程间通信(IPC),比如X Window和syslog      Transformation user configuration interface          为IPsec(可在ip层加密)之类的工具提供XFRM用户配置接口支持      Transformation sub policy support          XFRM子策略支持,仅供开发者使用      PF_KEY sockets          用于可信任的密钥管理程序和操作系统内核内部的密钥管理进行通信,IPsec依赖于它      TCP/IP networking          TCP/IP协议当然要选

        IP: multicasting              群组广播,似乎与网格计算有关,仅在使用MBONE的时候才需要          IP: advanced router              高级路由,如果想做一个路由器就选吧          IP: policy routing              策略路由          IP: equal cost multipath              用于路由的基于目的地址的负载均衡          IP: verbose route monitoring              显示冗余的路由监控信息          IP: kernel level autoconfiguration              在内核启动时自动配置ip地址/路由表等,需要从网络启动的无盘工作站才需要这个东西          IP: tunneling              IP隧道,将一个IP报文封装在另一个IP报文内的技术          IP: GRE tunnels over IP              基于IP的GRE(通用路由封装)隧道          IP: multicast routing              多重传播路由          IP: ARP daemon support              这东西尚处于试验阶段就已经被废弃了          IP: TCP syncookie support              抵抗SYN flood攻击的好东西,要启用它必须同时启用/proc文件系统和"Sysctl support",然后在系统启动并挂载了/proc之后执行"echo 1 >/proc/sys/net/ipv4/tcp_syncookies"命令          IP: AH transformation              IPsec验证头(AH)实现了数据发送方的验证处理,可确保数据既对于未经验证的站点不可用也不能在路由过程中更改          IP: ESP transformation              IPsec封闭安全负载(ESP)实现了发送方的验证处理和数据加密处理,用以确保数据不会被拦截/查看或复制          IP: IPComp transformation              IPComp(IP静荷载压缩协议),用于支持IPsec          IP: IPsec transport mode              IPsec传输模式,常用于对等通信,用以提供内网安全.数据包经过了加密但IP头没有加密,因此任何标准设备或软件都可查看和使用IP头          IP: IPsec tunnel mode              IPsec隧道模式,用于提供外网安全(包括虚拟专用网络).整个数据包(数据头和负载)都已经过加密处理且分配有新的ESP头/IP头和验证尾,从而能够隐藏受保护站点的拓扑结构          IP: IPsec BEET mode              IPsec BEET模式          INET: socket monitoring interface              socket监视接口,一些Linux本地工具(如:包含ss的iproute2)需要使用它          TCP: advanced congestion control              高级拥塞控制,如果没有特殊需求(比如无线网络)就别选了,内核会自动将默认的拥塞控制设为"Cubic"并将"Reno"作为候补          IP: Virtual Server Configuration              IP虚拟服务器允许你基于多台物理机器构建一台高性能的虚拟服务器,不玩集群就别选了          The IPv6 protocol              你要是需要IPv6就选吧          NetLabel subsystem support              NetLabel子系统为诸如CIPSO与RIPSO之类能够在分组信息上添加标签的协议提供支持,如果你看不懂就别选了

    Security Marking          对网络包进行安全标记,类似于nfmark,但主要是为安全目的而设计,如果你不明白的话就别选      Network packet filtering (replaces ipchains)          Netfilter可以对数据包进行过滤和修改,可以作为防火墙("packet filter"或"proxy-based")或网关(NAT)或代理(proxy)或网桥使用.选中此选项后必须将"Fast switching"关闭,否则将前功尽弃

        Network packet filtering debugging              仅供开发者调试Netfilter使用          Bridged IP/ARP packets filtering              如果你希望使用一个针对桥接的防火墙就打开它          Core Netfilter Configuration              核心Netfilter配置(当包流过Chain时如果match某个规则那么将由该规则的target来处理,否则将由同一个Chain中的下一个规则进行匹配,若不match所有规则那么最终将由该Chain的policy进行处理)

            Netfilter netlink interface                  允许Netfilter在与用户空间通信时使用新的netlink接口.netlink Socket是Linux用户态与内核态交流的主要方法之一,且越来越被重视.

                Netfilter NFQUEUE over NFNETLINK interface                      通过NFNETLINK接口对包进行排队                  Netfilter LOG over NFNETLINK interface                      通过NFNETLINK接口对包记录.该选项废弃了ipt_ULOG和ebg_ulog机制,并打算在将来废弃基于syslog的ipt_LOG和ip6t_LOG模块

            Layer 3 Independent Connection tracking                  独立于第三层的链接跟踪,通过广义化的ip_conntrack支持其它非IP协议的第三层协议              Netfilter Xtables support                  如果你打算使用ip_tables,ip6_tables,arp_tables之一就必须选上

                "CLASSIFY" target support                      允许为包设置优先级,一些排队规则(atm,cbq,dsmark,pfifo_fast,htb,prio)需要使用它                  "CONNMARK" target support                      类似于"MARK",但影响的是连接标记的值                  "DSCP" target support                      允许对ip包头部的DSCP(Differentiated Services Codepoint)字段进行修改,该字段常用于Qos                  "MARK" target support                      允许对包进行标记(通常配合ip命令使用),这样就可以改变路由策略或者被其它子系统用来改变其行为                  "NFQUEUE" target Support                      用于替代老旧的QUEUE

标签: sub连接器dmr

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

锐单商城 - 一站式电子元器件采购平台