- 1.进到linux内核源代码目录下cd /home/linux-2.6.16
- 2.make clean
- 删除大多数由编译生成的文件,但保留内核配置文件.config。
- make mrproper
- 删除所有编译文件、内核配置文件和各种备份文件。
- make distclean
- mrproper删除的文件,加上编辑备份文件和一些补丁文件。
- 3.配置内核make menuconfig
-
2.5Linux核心配置选项
- 以下是最新的Linux 2.6.以20核为例,介绍一些常用的内核Linux读者可以参考系统提供的内核配置选项的帮助信息。
- 需要说明的是,在内核配置中,某项选择Y表示把该项选择进内核,选择M则表示把该项编译成模块,选择N则表示不选择进内核。在make menuconfig 下,*表示Y,M表示M,空白表示N。在make xconfig下,√表示Y,·表示M,空白表示N。如果一个选项可以在配置菜单中选择,这并不意味着目标系统支持该功能,当然,大多数选项是目标系统;同样,配置菜单中没有的选项并不一定意味着目标系统不支持该功能,可能是因为该功能尚未在目标系统上测试,或者维护人员未将该功能选项添加到各级系统配置文件中config.in中,具体查看核心的英文说明。
-
2.5.1General setup
- General setup选项为常规安装选项,包括版本信息、虚拟内存、过程间通信、系统调用、审计支持等基本核心配置选项。以下是常规安装选项下主要子选项的配置方法。
- 1)Local version - append to kernel release
- 在核心后面添加一个自定义的版本字符串。使用这些字符uname-a命令将显示。字符最多不得超过64位。如果不清楚,则选择N。
- 2)Automatically append version information to the version string(LOCALVERSION_ AUTO)
- 自动生成版本信息。这个选项会自动探测内核并且生成相应的版本。在编译时需要有perl及git仓库支持。一般情况下,建议选择Y。
- 3)Support for paging of anonymous memory(swap)
- 使用交换分区或交换文件作为虚拟内存,即使计算机似乎比实际内存有更多的内存空间来执行大程序。Linux中间的虚拟内存是SWAP除非不需要分区SWAP分区,否则在这里选择Y。
- 4)System V IPC(Inter Process Communication,IPC)
- System V进程间通信(IPC)很多程序都需要这个功能,所以选择Y。中间过程连接是一组功能和系统调用,使过程能够同步和交换信息。info ipc命令来了解IPC具体用法。
- 其中,IPC Namespaces (IPC_NS)子选项表示IPC命名空间,命名空间的功能是区分同名设备。该选项还为不同的服务器提供服务IPC多命名,达到一个IPC提供多对象支持的目的。若不清楚,则选择N。
- 5)POSIX Message Queues
- POSIX(可移植操作系统接口)消息队列POSIX IPC部分通信队列优先保持通信畅通。如果需要编译和操作,Solaris操作系统上写的 POSIX选择信息队列程序Y。同时还需要 mqueue 支持这些特征的库。它存在于文件系统中(mqueue),可设置。为保证未来不同程序的协调稳定。若不清楚,则选择N。
- 6)BSD Process Accounting
- 将过程的统计信息写入文件的用户级系统,通常包括建立时间、所有者、命令名称、内存使用、控制终端等。如果选择Y,用户级程序可以通过特殊的系统调用通知内核将过程统计信息记录在文件中,当过程存在时,信息将被内核记录在文件中,这对用户级程序非常有用,所以通常选择Y。
- 其中,BSD Process Accounting version 3 file forma子选项表示使用新的第三版文件格式,通常选择Y。统计信息将以新的格式进行(V3)写入,包含过程ID和父亲的过程。请注意,这种格式与旧版本不兼容。(V0/V1/V2)文件格式,需要升级相关工具使用。
- 7)Export task/process statistics through netlink(EXPERIMENTAL)
- 这是一个处于实验阶段的功能,表示通过netlink接口向用户空间导出任务、过程等统计信息BSD Process Accounting不同之处在于,这些数据可以在过程中通过相关命令访问。如果不清楚,则选择N。
- 8)UTS Namespaces
- UTS(通用终端系统)命名空间支持。它允许容器,如Vservers利用UTS命名空间为不同的服务器提供不同的服务器UTS。若不清楚,则选择N。
- 9)Auditing support
- 一些内核模块(如审计支持)SELinux)需要它,只有同时选择子项才能审计系统调用。其他核心子系统可以使用允许审计的下层,如SELinux,登录时需要此声音和视频输出。CONFIG_AUDITSYSCALL系统无法调用时间(即下一个选项)。
- 其中,Enable system-call auditing support (AUDITSYSCALL)子选项表示支持系统调用审计,允许系统独立或通过其他核心子系统调用审计支持,如SELinux。使用此审计文件系统查看特征,请确保 INOTIFY 已设置。这两个选项,要选择Y就都选择,以便调用其他内核。
- 10)Kernel.config support
- 将内核的配置信息编译成内核,以后可以通过scripts/extract-ikconfig脚本提取这些信息。
- 允许此选项.config文件(即编译)Linux时间配置文件)编译成内核。可通过内核镜像文件kernel image file,用命令script scripts/extract-ikconfig作为当前内核重编译或另一个内核编译的参考,提取这些配置信息。如果核心在运行中,可以通过/proc/config.gz读取文件。
- 其中Enable access to .config through/proc/config.gz子选项表示可以通过/proc/config.gz 访问当前内核.config。为了调用其他内核,选择Y这两个选项。
- 11)Cpuset support
- 多CPU支持。可以建立和管理此选项。CPU它可以动态地将系统分割在每个集群中CPU在内存节点中,每个节点都是独立运行的,这对大型系统特别有效。一般来说,它只包含大量CPU(超过16个)SMP系统或NUMA(非一致内存访问)系统需要它。如果不清楚,则选择N。
- 12)Kernel->user space relay support(formerly relayfs)
- 支持内核系统区和用户区传输通信。在某些文件系统(如debugfs)从核心空间向用户空间提供大量数据的接口。
- 该选项在特定的文件系统中提供数据传输接口支持,可以提供从核心空间到用户空间的大量数据传输工具和设施。如果不清楚,请选择N。
- 13)Initramfs source file(s)
- initrd已经被initramfs取代,选择N。
- 14)Optimize for size(Look out for broken compilers!)
- 这个选项将在GCC命令后用“-Os”代替“-O2.编译时优化内核尺寸,编译时优化内核尺寸。
- 警告:某些GCC版本会产生错误的二进制代码。如果有错,请升级GCC。
- 这是优化核心大小的功能,一般不需要选择。因为一个编译的核心只有7~10MB,如果有足够的空间,就不要冒出优化核心大小的问题风险。
- 15)Configure standard kernel features(for small systems)
- 配置标准的核心特性(小系统)。该选项可使核心的基本选项和设置无效或扭曲。这是在特定的环境中使用的,允许非标准核心。它用于编译一些特殊用途的核心,如引导盘系统。通常选择这个选项,也不必关心其子选项。
-
2.5.2Loadable module support
- Loadable module support即指导模块支持,包括加载模块、卸载模块、模块验证、自动加载模块等指导模块配置相关子选项。本节主要介绍了指导模块支持子选项的配置方法。
- 1)Enable loadable module support
- 打开可加载模块支持,必须打开make modules_install安装内核模块/lib/modules/中。该模块是一个小代码,编译后可以在系统内核运行过程中动态添加内核,从而为内核增加一些特性或支持某些硬件。一般来说,一些不常用的驱动或特性可以编译成模块,以减少内核的体积。可用于运行modprobe命令将其加载到内核中在不需要时还可以移除它)。一些特性是否编译为模块的原则有不常使用的,或是在系统启动时不需要的驱动可以将其编译为模块,如果是一些在系统启动时就要用到的驱动,比如说文件系统,系统总线的支持就不要编为模块,否则无法启动系统。在启动时不用到的功能编成模块是最有效的方式。可以查看MAN手册来了解modprobe、lsmod、modinfo、insmod和rmmod。
- 如果选择了这项,则需要运行make modules_install命令来把模块添加到/lib/modules/目录下,以便 modprobe 可以找到它们。如果不清楚,则选择Y。
- 2)Module unloading
- 允许卸载已经加载的模块。如果选择N,将不能卸载任何模块(有些模块一旦加载就不能卸载,不管是否选择了这个选项)。如果不清楚,则选择Y。
- 其中,Forced module unloading子选项允许强制卸载正在使用中的模块,即使内核认为这不安全,内核也将会立即移除模块,而不管是否有人在使用它(用rmmod -f命令)。如果不清楚,则选择N。
- 3)Module versioning support(MODVERSIONS)
- 允许使用其他内核版本的模块。选这项会添加一些版本信息,来给编译的模块提供独立的特性,以使不同的内核在使用同一模块时区别于它原有的模块。如果不清楚,则选择N。
- 4)Source checksum for all modules
- 为所有的模块校验源码,如果不是自己编写内核模块就不需要它。这个功能是为了防止在编译模块时不小心更改了内核模块的源代码但忘记更改版本号而造成版本冲突。如果不清楚,则选择N。
- 5)Automatic kernel module loading
- 允许内核通过运行modprobe自动加载模块,比如可以自动解决模块的依赖关系。在一般情况下,如果我们的内核在某些任务中要使用一些被编译为模块的驱动或特性时,我们要先使用modprobe命令来加载它,内核才能使用。如果选择了这个选项,在内核需要一些模块时它可以自动调用modprobe命令来加载需要的模块。如果不清楚,则选择Y。
-
2.5.3 Processor type and features
- Processor type and features即处理器类型及特性,该模块包括处理器系列、内核抢占模式、抢占式大内核锁、内存模式、使用寄存器参数等处理器配置相关信息。本节介绍其中与嵌入式开发有关的主要子选项的配置方法。
- 1)Symmetric multi-processing support(SMP)
- 对称多处理器支持。将支持多个CPU的系统,此时Enhanced Real Time Clock Support选项必须开启,Advanced Power Management选项必须选择N。如果系统只有一个CPU,则选择N。反之,选择Y。如果选择N,内核将会在单个或者多个CPU的机器上运行,但是只会使用一个CPU。如果选择Y,内核可以在很多(但不是所有)单CPU的机器上运行,在这样的机器上选择N,会使内核运行得更快。如果不清楚,则选择N。
- 2)Processor family
- 处理器系列。针对嵌入式系统所使用的处理器类型,选取相应的选项。
- 3)Preemptible kernel
- 内核抢占模式。一些优先级很高的程序可以先让一些低优先级的程序执行,即使这些程序是在内核态下执行。从而减少内核潜伏期,提高系统的响应。当然在一些特殊的点的内核是不可抢占的,比如内核中的调度程序自身在执行时就是不可被抢占的。这个特性可以提高桌面系统、实时系统的性能。有下面3个选项。
- n No Forced Preemption(Server):非强迫式抢占。这是传统的Linux抢占式模型,针对于高吞吐量设计。它同样在很多时候会提供很好的响应,但是也可能会有较长的延迟。如果是要建立服务器或者用于科学运算,或者要最大化内核的运算能力而不理会调度上的延迟,则选这项。
- n Voluntary Kernel Preemption(Desktop):自动式内核抢占。这个选项通过向内核添加更多的“清晰抢占点”来减少内核延迟。这些新的抢占点以降低吞吐量为代价,来降低内核的最大延迟,提供更快的应用程序响应。这通过允许低优先级的进程自动抢占来响应事件,即使进程在内核中进行系统调用。这使得应用程序运行得更“流畅”,即使系统已经是高负荷运转。嵌入式系统里面通常选择N。
- n Preemptible Kernel(Low-Latency Desktop):可抢占式内核(低延迟桌面)。这个选项通过使所有内核代码(非致命部分)编译为“可抢占”来降低内核延迟。通过允许低优先级进程进行强制抢占来响应事件,即使这些进程正在进行系统调用或者未达到正常的“抢占点”。这使得应用程序运行得更加“流畅”,即使系统已经是高负荷运转。代价是吞吐量降低,内核运行开销增大。嵌入式系统编译内核通常选择Y,这样只有很少的延迟。
- 其中,Preemptible Kernel子选项提供了最快的响应,适合对实时性要求较高的嵌入式系统。
- 4)Preempt The Big Kernel Lock
- 抢占式大内核锁。应用于实时要求高的场合,适合嵌入式系统。这个选项通过让大内核锁变成“可抢占”来降低延迟。构建实时性要求较高的嵌入式系统,通常选择N。
- 5)Machine Check Exception
- 机器例外检查。让CPU检测到系统故障时通知内核,以便内核采取相应的措施(如过热关机等)。内核根据问题的严重程度来决定下一步的行为,比如在命令行上打印警告信息或者关机。处理器必须是 Pentium或者更新版本才能支持这个功能。用cat /proc/cpuinfo来检测 CPU是否有mce 标志。
- 所以使用ARM处理器的嵌入式系统在这里选择N。
- 6)Memory model
- 内存模式。一般选Flat Memory(平坦内存模式),Sparse Memory(稀疏内存模式)选项涉及内存热插拔。
- 7)Use register arguments(REGPARM)
- 使用寄存器参数。使用-mregparm=3参数编译内核,将前3个参数以寄存器方式进行参数调用,这使 GCC使用更高效的应用程序二进制接口(ABI)来跳过编译时的前3个调用寄存器参数,可以生成更紧凑和高效的代码。如果选择N,这个选项默认的ABI将会使用。如果不清楚,则选择Y。
- 8)kexec system call(KEXEC)
- kexec系统调用。使用此选项可以不必重启而切换到另一个内核。
- kexec是一个用来选择N当前内核,然后开启另一个内核的系统调用。它和重启很像,但是它不访问系统固件。由于和重启很像,可以启动任何内核,不仅仅是Linux。kexec这个名字是从exec系统调用来的,它只是一个进程,可以确定硬件是否正确,所以这段代码可能不会正确地进行初始化工作。为慎重起见,在一般情况下,建议选择N。
-
2.5.4 Networking support
- Networking support即网络支持,该选项配置的是网络协议,内容庞杂,这里就不一一介绍了。只要对网络协议有所了解,应该可以看懂相关帮助文件。如果要开发嵌入式系统能像PC一样使用各类网络协议,则可以使用默认选项,其中,最常用的TCP/IP networking选项当然要选择。
-
2.5.5 Device Drivers
- Device Drivers即设备驱动,该选项包括内核所支持的各类硬件设备的配置信息。对于嵌入式系统来说,设备驱动配置选项是最重要的步骤之一,下面详细介绍它们。
- 1)Generic Driver Options
- 驱动程序通用选项。包括以下几个子选项。
- n Select only drivers that don't need compile-time external firmware:只显示不需要内核对外部设备的固件做map支持的驱动程序,除非有某些怪异硬件,否则要选择Y。
- n Prevent firmware from being built:不编译固件。固件一般是随硬件的驱动程序提供的,仅在更新固件的时候才需要重新编译。建议选择Y。
- n Userspace firmware loading support:提供某些内核之外的模块需要的用户空间固件加载支持,在内核树之外编译的模块可能需要它。如果不清楚,则选择N。
- n Driver Core verbose debug messages:让驱动程序内核在系统日志中产生冗长的调试信息,仅供调试使用。如果不清楚,则选择N。
- 2)Connector - unified userspace <-> kernelspace linker
- 统一的用户空间和内核空间连接器,工作在netlink socket协议的顶层。如果不确定,则选择N。
- 其中,Report process events to userspace子选项表示向用户空间报告进程事件。
- 3)Memory Technology Devices(MTD)
- 特殊的存储技术装置,如常用于数码相机或嵌入式系统的闪存卡。如果不清楚,则选择N。
- 4)Parallel port support
- 并口支持(传统的打印机接口)。如果不清楚,则选择N。
- 5)Plug and Play support
- 支持即插即用,若未选,则应当在BIOS中的“PnP OS”选择N。这里的选项与PCI设备无关。包括以下几个子选项。
- n PnP Debug Messages:该选项仅供调试使用。
- n ISA Plug and Play support:ISA设备支持即插即用。如果不清楚,则选择N。
- n Plug and Play BIOS support:Linux使用Plug and Play BIOS规范v1.0A(1994年)中定义的PnPBIOS自动检测主板上的资源和设备,但是其中的某些特性目前尚未实现,比如,事件通知/扩展坞(Docking Station)信息/ISAPnP服务。如果希望由内核检测主板上的设备并为其分配资源(此时BIOS中的“PnP OS”必须开启)可以选择Y。此外,PnPBIOS还有助于防止主板上的设备与其他总线设备冲突。不过需要注意的是ACPI将会逐渐取代 PnPBIOS(虽然目前两者可以共存),所以如果系统不使用ISA设备并且支持ACPI,建议不要选择Y。将BIOS中的“PnP OS”选择N。
- n Plug and Play BIOS/proc interface:该选项仅供调试使用。如果不清楚,则选择N。
- n Plug and Play ACPI support:让Linux使用PnPACPI自动检测主板上内建的设备并为其分配资源(即使这些设备已被BIOS禁用),它有助于避免设备之间的资源(如中断)冲突。如果不清楚,则选择N。
- 6)Block devices
- 块设备。包括以下几个子选项。
- n normal floppy disk support:通用软驱支持。如果嵌入式系统采用这种设备,则选择Y。
- n XT hard disk support:一种老式产品。如果嵌入式系统采用这种设备,则选择Y。
- n Parallel port IDE device support:通过并口与计算机连接的IDE设备。如果嵌入式系统采用这种设备,则选择Y。
- n Compaq SMART2 support:基于Compaq SMART2控制器的磁盘阵列卡。如果嵌入式系统采用这种设备,则选择Y。
- n Compaq Smart Array 5xxx support:基于Compaq SMART控制器的磁盘阵列卡。如果嵌入式系统采用这种设备,则选择Y。
- n Mylex DAC960/DAC1100 PCI RAID Controller support:一种老式产品。如果嵌入式系统采用这种设备,则选择Y。
- n Micro Memory MM5415 Battery Backed RAM support:一种使用电池做后备电源的内存。如果嵌入式系统采用这种设备,则选择Y。
- n Loopback device support:Loopback是指拿文件来模拟块设备,比如可以将一个iso9660镜像文件挂成一个文件系统。如果嵌入式系统采用这种设备,则选择Y。
- n Cryptoloop Support:使用系统提供的加密API对Loopback设备加密,但不能用于日志型文件系统。如果嵌入式系统采用这种设备,则选择Y。
- n Network block device support:让系统成为网络块设备的客户端。如果不清楚,则选择N。
- n Promise SATA SX8 support:基于Promise公司的SATA SX8控制器的RAID卡。如果嵌入式系统采用这种设备,则选择Y。
- n Low Performance USB Block driver:该选项并非表示支持U盘。一般情况下,建议选择N。
- n RAM disk support:内存中的虚拟磁盘,大小固定(由下面的选项决定,也可给内核传递ramdisk_size=参数来决定),它的功能和代码都比shmem简单许多。如果嵌入式系统采用RAM disk,则选择Y。
- n Default number of RAM disks:默认RAM disk的数量。一般不必修改。
- n Default RAM disk size(kbytes):默认RAM disk容量。一般不必修改。
- n Default RAM disk block size(bytes):每一个RAM disk的默认块大小,设为PAGE_SIZE的值时效率最高。
- n Initial RAM filesystem and RAM disk(initramfs/initrd)support:如果启动系统所必须的模块都在内核里,则选择Y。
- n Packet writing on CD/DVD media:CD/DVD刻录支持。如果嵌入式系统采用这种设备,则选择Y。
- n Free buffers for data gathering:用于收集写入数据的缓冲区个数(每个占用64KB内存),在内存运行的情况下,缓冲区越多性能越好。
- n Enable write caching:为CD-R/W设备启用写入缓冲。由于安全性问题,在一般情况下,建议选择Y。
- n ATA over Ethernet support:以太网ATA设备支持。如果嵌入式系统采用这种设备,则选择Y。
- 7)Misc devices
- 杂项设备。如果不清楚,则选择N。
- 8)ATA/ATAPI/MFM/RLL support
- SCSI设备通常是IDE硬盘和ATAPI光驱。纯SCSI系统且不使用这些接口可以选择N。
- 9)SCSI device support
- SCSI设备。如果不清楚,则选择N。
- 10)Serial ATA and Parallel ATA drivers
- SATA与PATA设备。如果不清楚,则选择N。
- 11)Old CD-ROM drivers(not SCSI,not IDE)
- 老旧的CD-ROM驱动,这种CD-ROM既不使用SCSI接口,也不使用IDE接口。如果不清楚,则选择N。
- 12)Multi-device support(RAID and LVM)
- 多设备支持(RAID和LVM)。RAID和LVM的功能是使多个物理设备组建成一个单独的逻辑磁盘。如果不清楚,则选择N。
- 13)Fusion MPT device support
- Fusion MPT设备支持。如果不清楚,则选择N。
- 14)IEEE 1394(FireWire)support
- IEEE 1394(火线)。如果不清楚,则选择N。
- 15)I2O device support
- I2O(智能I/O)设备使用专门的I/O处理器负责中断处理、缓冲存取、数据传输等烦琐任务以减少CPU占用,一般PC的主板上没有。如果不清楚,则选择N。
- 16)Network device support
- 网络设备。包含以下子选项。
- n Network device support:网络设备支持,如果要开发的嵌入式系统需要上网,则选择Y。
- n Intermediate Functional Block support:这是一个中间层驱动,可以用来灵活的配置资源共享。如果不清楚,则选择N。
- n Dummy net driver support:哑接口网络,使用SLIP或PPP传输协议(如ADSL用户)的需要它。如果不清楚,则选择N。
- n Bonding driver support:将多个以太网通道绑定为一个,也就是两块网卡具有相同的IP地址并且聚合成一个逻辑链路工作,可以用来实现负载均衡或硬件冗余。如果不清楚,则选择N。
- n EQL(serial line load balancing)support:串行线路的负载均衡。如果有两个MODEM和两条电话线而且用SLIP或PPP协议,该选项可以让你同时使用这两个 MODEM以达到双倍速度(在网络的另一端也要有同样的设备)。如果不清楚,则选择N。
- n Universal TUN/TAP device driver support:TUN/TAP可以为用户空间提供包的接收和发送服务,比如可以用来虚拟一张网卡或点对点通道。如果不清楚,则选择N。
- n General Instruments Surfboard 1000:Surfboard 1000插卡式Cable Medem(ISA接口),一种老式产品。如果不清楚,则选择N。
- n ARCnet devices:一般人没有ARCnet类型的网卡。如果不清楚,则选择N。
- n PHY device support:数据链路层芯片简称为MAC控制器,物理层芯片简称为PHY,通常的网卡把MAC和PHY的功能做到了一颗芯片中,但也有一些仅含PHY的“软网卡”。如果不清楚,则选择N。
- n Ethernet(10/100Mbit):目前最广泛的10/100MB网卡。如果不清楚,则选择N。
- n Ethernet(1000 Mbit):目前已成装机主流的1000MB网卡。如果不清楚,则选择N。
- n Ethernet(10000 Mbit):高速(万兆)网卡。如果不清楚,则选择N。
- n Token Ring devices:令牌环网设备。如果不清楚,则选择N。
- n Wireless LAN(non-hamradio):无线LAN。如果不清楚,则选择N。
- n PCMCIA network device support:PCMCIA或CardBus网卡。如果不清楚,则选择N。
- n WAN interfaces:WAN接口。如果不清楚,则选择N。
- n ATM drivers:异步传输模式。如果不清楚,则选择N。
- n FDDI driver support:光纤分布式数据接口。如果不清楚,则选择N。
- n HIPPI driver support:HIPPI(高性能并行接口)是一个在短距离内高速传送大量数据的点对点协议。如果不清楚,则选择N。
- n PLIP(parallel port)support:将并口映射成网络设备,这样两台机器即使没有网卡也可以使用并口通过并行线传输IP数据包。如果不清楚,则选择N。
- n PPP(point-to-point protocol)support:点对点协议,PPP已经基本取代SLIP了,若使用ADSL则要选择Y。如果不清楚,则选择N。
- n PPP multilink support:多重链路协议(RFC1990)允许将多个线路(物理的或逻辑的)组合为一个PPP连接以充分利用带宽,这不但需要pppd的支持,还需要ISP的支持。如果不清楚,则选择N。
- n PPP filtering:允许对通过PPP接口的包进行过滤。如果不清楚,则选择N。
- n PPP support for async serial ports:通过标准异步串口(COM1,COM2)使用PPP,比如使用老式的外置MODEM(非同步MODEM或ISDN MODEM)上网。如果不清楚,则选择N。
- n PPP support for sync tty ports:通过同步tty设备(比如SyncLink适配器)使用PPP,常用于高速租用线路(比如T1/E1)。如果不清楚,则选择N。
- n PPP Deflate compression:为PPP提供Deflate(等价于gzip压缩算法)压缩算法支持,需要通信双方的支持才有效。如果不清楚,则选择N。
- n PPP BSD-Compress compression:为PPP提供BSD(等价于LZW压缩算法,没有gzip高效)压缩算法支持,需要通信双方的支持才有效。如果不清楚,则选择N。
- n PPP MPPE compression(encryption):为PPP提供MPPE加密协议支持,它被用于微软的P2P隧道协议中。如果不清楚,则选择N。
- n PPP over Ethernet:这就是ADSL用户最常见的PPPoE,也就是在以太网上运行的PPP协议。如果不清楚,则选择N。
- n PPP over ATM:在ATM上运行的PPP。如果不清楚,则选择N。
- n SLIP(serial line)support:一个在串行线上(例如电话线)传输IP数据报的TCP/IP协议。小猫一族的通信协议,与宽带用户无关。如果不清楚,则选择N。
- n CSLIP compressed headers:CSLIP协议比SLIP快,它将TCP/IP头(而非数据)进行压缩传送,需要通信双方的支持才有效。如果不清楚,则选择N。
- n Keepalive and linefill:让SLIP驱动支持RELCOM linefill和keepalive监视,这在信号质量比较差的模拟线路上是个好主意。如果不清楚,则选择N。
- n Six bit SLIP encapsulation:这种线路非常罕见,在一般情况下,建议选择N。
- n Fibre Channel driver support:光纤通道。如果不清楚,则选择N。
- n Traffic Shaper:流量整形,已废弃。在一般情况下,建议选择N。
- n Network console logging support:通过网络记录内核信息。如果不清楚,则选择N。
- n Netpoll support for trapping incoming packets:在一般情况下,建议选择N。
- n Netpoll traffic trapping:在一般情况下,建议选择N。
- 17)ISDN subsystem
- 综合业务数字网(Integrated Service Digital Network)。如果不清楚,则选择N。
- 18)Telephony Support
- VoIP支持。如果不清楚,则选择N。
- 19)Input device support
- 输入设备。包括以下子选项。
- n Generic input layer(needed for keyboard,mouse):通用输入层,如果是使用键盘鼠标的,则选择Y。如果不清楚,则选择N。
- n Support for memoryless force-feedback devices:游戏玩家使用的力反馈设备。如果不清楚,则选择N。
- n Mouse interface:鼠标接口。如果不清楚,则选择N。
- n Provide legacy/dev/psaux device:仍然支持作为传统的/dev/psaux设备。如果不清楚,则选择N。
- n Horizontal screen resolution:数字化转换器或图形输入板的水平分辨率。如果不清楚,则选择N。
- n Vertical screen resolution:数字化转换器或图形输入板的垂直分辨率。如果不清楚,则选择N。
- n Joystick interface:游戏杆。如果不使用,则选择N。
- n Touchscreen interface:触摸屏。如果不使用,则选择N。
- n Event interface:能够利用/dev/input/eventX来存取输入设备的事件。如果不清楚,则选择N。
- n Event debugging:该选项仅供调试使用。如果不清楚,则选择N。
- n Keyboards:键盘驱动,一般选个AT键盘即可。如果不清楚,则选择N。
- n Mouse:鼠标驱动,一般选个PS/2鼠标即可。如果不清楚,则选择N。
- n Joysticks:游戏杆驱动。如果不使用,则选择N。
- n Touchscreens:触摸屏驱动。如果不使用,则选择N。
- n Miscellaneous devices:其他杂项驱动,一般选个PC喇叭即可。如果不清楚,则选择N。
- n Hardware I/O ports:硬件I/O端口。如果不清楚,则选择N。
- n Serial I/O support:使用PS/2键盘或鼠标,则选择Y。如果不使用,则选择N。
- n i8042 PC Keyboard controller:PS/2接口的键盘和鼠标。如果不使用,则选择N。
- n Serial port line discipline:串口键盘或鼠标。如果不使用,则选择N。
- n ct82c710 Aux port controller:一种德州仪器TravelMate笔记本上使用QuickPort接口的鼠标。如果不使用,则选择N。
- n Parallel port keyboard adapter:并口键盘或鼠标。如果不使用,则选择N。
- n PCI PS/2 keyboard and PS/2 mouse controller:接在移动式扩展坞(Docking station)上的键盘或鼠标。如果不使用,则选择N。
- n PS/2 driver library:为PS/2接口上的设备提供驱动(比如PS/2鼠标或标准AT键盘)。如果不使用,则选择N。
- n Raw access to serio ports:在一般情况下,建议选择N。
- n Gameport support:类似早年“小霸王”游戏机上的那种手柄。如果不使用,则选择N。
- 20)Character devices
- 字符设备。包含以下子选项。
- n Virtual terminal:虚拟终端。嵌入式系统在一般情况下,建议选择N。
- n Support for console on virtual terminal:内核将一个虚拟终端用做系统控制台(将诸如模块错误、内核错误、启动信息之类的警告信息发送到这里,通常是第一个虚拟终端)。嵌入式系统在一般情况下,建议选择N。
- n Support for binding and unbinding console drivers:虚拟终端是通过控制台驱动程序与物理终端相结合的,但在某些系统上可以使用多个控制台驱动程序(如framebuffer控制台驱动程序),该选项使得可以选择其中之一。如果不清楚,则选择N。
- n Non-standard serial port support:非标准串口支持。这样的设备已废弃不用。在一般情况下,建议选择N。
- n Serial drivers:串口驱动。如果有老式的串口鼠标或小猫,则选择Y。否则选择N。
- n Unix98 PTY support:伪终端(PTY)可以模拟一个终端,它由slave(等价于一个物理终端)和master(被一个诸如xterms之类的进程用来读写 slave设备)两部分组成的软设备。如果使用telnet或ssh远程登录者,则选择Y。如果不清楚,则选择N。
- n Legacy(BSD)PTY support:使用过时的BSD风格的/dev/ptyxx作为master,/dev/ttyxx作为slave。这个方案有一些安全问题,建议选择N。
- n Parallel printer support:并口打印机。如果不使用,则选择N。
- n Support for console on line printer:允许将内核信息输出到并口,这样就可以打印出来。如果不清楚,则选择N。
- n Support for user-space parallel port device drivers:/dev/parport设备支持,比如deviceid之类的程序需要使用它。在一般情况下,建议选择N。
- n Texas Instruments parallel link cable support:德州仪器生产的一种使用并行电缆的图形计算器。如果不清楚,则选择N。
- n IPMI:可以利用IPMI远程监视服务器的物理特征(温度、电压、风扇、电源、机箱入侵),它是独立于CPU、BIOS、OS的,只要接通电源就可以实现对服务器的监控。如果不清楚,则选择N。
- n IPMI top-level message handler:IPMI消息处理器,要启用IPMI远程监视,则选择Y。如果不清楚,则选择N。
- n Generate a panic event to all BMCs on a panic:当发生紧急情况(panic)时,IPMI消息处理器将会向每一个已注册的底板管理控制器(BMC)接口生成一个描述该panic的IPMI 事件,这些事件可以引发日志记录、报警、重启、关机等动作。如果不清楚,则选择N。
- n Generate OEM events containing the panic string:当发生紧急情况(panic)时,IPMI消息处理器将会产生OEM类型的事件。如果不清楚,则选择N。
- n Device interface for IPMI:为IPMI消息处理器提供一个IOCTL接口,以便用户空间的进程也可以使用IPMI。如果不清楚,则选择N。
- n IPMI System Interface handler:向系统提供接口(KCS、SMIC),一般用了IPMI就需要选择Y。如果不清楚,则选择N。
- n IPMI WatchDog Timer:启用IPMI WatchDog定时器。如果不清楚,则选择N。
- n IPMI Poweroff:允许IPMI消息处理器选择N。如果不清楚,则选择N。
- n WatchDog Cards:能让系统在出现致命故障后自动重启,如果没有硬件WatchDog,建议使用Hangcheck timer而不是软件WatchDog。如果不清楚,则选择N。
- n Watchdog Timer Support:选择Y。下面的一个Driver之后,再创建一个/dev/ watchDog节点即可拥有一只WatchDog了。更多信息请参考内核帮助。如果不清楚,则选择N。
- n Disable watchDog shutdown on close:一旦WatchDog启动后就禁止将其停止。如果不清楚,则选择N。
- n Software watchDog:软件WatchDog,使用它不需要有任何硬件的支持,但是可靠性没有硬件WatchDog高。如果不清楚,则选择N。
- n Hardware Random Number Generator Core support:硬件随机数发生器内核支持。如果不清楚,则选择N。
- n Intel HW Random Number Generator support:Intel芯片组的硬件随机数发生器。如果不清楚,则选择N。
- n AMD HW Random Number Generator support:AMD芯片组的硬件随机数发生器。如果不清楚,则选择N。
- n AMD Geode HW Random Number Generator support:AMD Geode LX的硬件随机数发生器。如果不清楚,则选择N。
- n VIA HW Random Number Generator support:VIA芯片组的硬件随机数发生器。如果不清楚,则选择N。
- n /dev/nvram support:直接存取主板上CMOS的接口。可能发生安全性问题,建议选择N。
- n Enhanced Real Time Clock Support:启用该选项并创建/dev/RTC文件后就可以通过/proc/driver/RTC访问系统的硬件时钟(RTC),众多功能依赖于它(如SMP、IRQ共享、定时器)。在一般情况下,建议选择Y。
- n Double Talk PC internal speech card support:由RC Systems公司制造的一种语音合成器。如果不清楚,则选择N。
- n Siemens R3964 line discipline:与使用西门子R3964协议的设备同步通信。除非有一些诸如PLC之类的特殊设备,否则在一般情况下,建议选择N。
- n Applicom intelligent fieldbus card support:Applicom international公司生产的用于现场总线连接卡。如果不清楚,则选择N。
- n Sony Vaio Programmable I/O Control Device support:Sony VAIO笔记本上的设备。如果不清楚,则选择N。
- n Ftape,the floppy tape device driver:针对使用磁带的系统。如果不清楚,则选择N。
- n /dev/agpgart(AGP Support):AGP总线支持,有AGP显卡的还必须从子项中选取符合嵌入式系统所使用显卡型号的驱动。如果不清楚,则选择N。
- n Direct Rendering Manager:DRI允许应用程序以高效安全的方式直接访问图形处理,主要用于硬件3D加速。建议桌面用户选择此方式,同时还必须从子项中选取符合嵌入式系统所使用显卡型号的驱动。如果不清楚,则选择N。
- n PCMCIA character devices:使用PCMCIA接口的字符设备。如果不清楚,则选择N。
- n ACP Modem(Mwave)support:IBM Thinkpad上的一种软猫,一种老式产品。如果不清楚,则选择N。
- n NatSemi SCx200 GPIO Support:松下的一种通用输入、输出(GPIO)芯片。嵌入式系统一般选择Y。
- n NatSemi PC8736x GPIO Support:松下的一种通用输入、输出(GPIO)芯片。嵌入式系统一般选择Y。
- n NatSemi Base GPIO Support:松下的一种通用输入、输出(GPIO)芯片。嵌入式系统一般选择Y。
- n AMD CS5535/CS5536 GPIO:常用于AMD Geode的一种通用输入、输出(GPIO)芯片。嵌入式系统一般选择Y。
- n RAW driver(/dev/raw/rawN):一种老式设备,已废弃。在一般情况下,建议选择N。
- n HPET-High Precision Event Timer:高精度事件定时器。如果不清楚,则选择N。
- n Allow mmap of HPET:允许对HPET寄存器进行映射。在一般情况下,建议选择Y。
- n Hangcheck timer:宕机检测定时器周期性地检查系统任务调度程序,以确定系统的运行状况,如果超过阈值,计算机将重新启动。它通常可以比WatchDog更好地解决可用性和可靠性问题。如果不清楚,则选择N。
- n TPM devices:基于硬件的“可信赖平台模块”。在一般情况下,建议选择N。
- n Telecom clock driver for MPBL0010 ATCA SBC:在一般情况下,建议选择N。
- 21)I2C support
- I2C是Philips极力推动的微控制应用中使用的低速串行总线协议,可用于监控电压、风扇转速、温度等。SMBus(系统管理总线)是I2C的子集。除硬件传感器外,Video For Linux也需要该模块的支持。包含以下子选项。
- n I2C device interface:I2C设备接口,允许用户空间的程序通过/dev/i2c-*设备文件使用I2C总线。如果不清楚,则选择N。
- n I2C Algorithms:I2C算法支持,可以全选择N。若有其他部分依赖其子项时,建议选择Y。
- n I2C Hardware Bus support:按实际硬件情况选对应的子项即可。
- n Miscellaneous I2C Chip support:其他不常见的产品,按需求选择。如果不清楚,则选择N。
- n I2C Core debugging messages:仅供调试使用。如果不清楚,则选择N。
- n I2C Algorithm debugging messages:仅供调试使用。如果不清楚,则选择N。
- n I2C Bus debugging messages:仅供调试使用。如果不清楚,则选择N。
- n I2C Chip debugging messages:仅供调试使用。如果不清楚,则选择N。
- 22)SPI support
- 串行外围接口(SPI)常用于微控制器(MCU)与外围设备(传感器、EEprom、Flash、编码器、模数转换器)之间的通信,比如MMC和SD卡就通常需要使用SPI。
- 23)Dallas's 1-wire bus
- 一线总线。如果不清楚,则选择N。
- 24)Hardware Monitoring support
- 当前主板大多都有一个监控硬件健康的设备用于监视温度、电压、风扇转速等,请按照嵌入式系统所使用主板实际使用的芯片选择相应的子项。另外,该功能还需要I2C的支持。如果不清楚,则选择N。
- 25)Multimedia devices
- 多媒体设备。包括以下子选项。
- n Video For Linux:如果是使用音频/视频设备或FM收音卡的则选择Y。此功能还需要I2C的支持。如果不清楚,则选择N。
- n Enable Video For Linux API 1:使用老旧的V4L第一版API。在一般情况下,建议选择N。
- n Enable Video For Linux API 1 compatible Layer:提供对第一版V4L的兼容。在一般情况下,建议选择N。
- n Video Capture Adapters:视频捕获卡。如果不清楚,则选择N。
- n Enable advanced debug functionality:该选项仅供调试使用。如果不清楚,则选择N。
- n Autoselect pertinent encoders/decoders and other helper chips:为视频卡自动选择所需的编码和解码模块。在一般情况下,建议选择Y。
- n Virtual Video Driver:虚拟视频卡,仅供测试视频程序和调试。如果不清楚,则选择N。
- n SAA5246A,SAA5281 Teletext processor:该选项仅面向欧洲用户,中国用户一般选择N。
- n SAA5249 Teletext processor:该选项仅面向欧洲用户,中国用户一般选择N。
- n V4L USB devices:使用USB接口的视频卡,子选项请根据嵌入式系统实际使用的视频卡选择。
- n Radio Adapters:音频卡,子选项请根据嵌入式系统实际使用的音频卡选择。
- n Digital Video Broadcasting Devices:数字视频广播设备(DVB卡或机顶盒),子选项请根据嵌入式系统实际使用的硬件选择
- n DABUSB driver:USB接口的数字音频广播设备接收器。如果不清楚,则选择N。
- 26)Graphics support
- 图形设备/显卡支持。包括以下子选项。
- n Enable firmware EDID:允许访问Video BIOS中的扩展显示器识别数据(EDID)。如果不清楚,则选择N。
- n Support for frame buffer devices:帧缓冲设备是为了让应用程序使用统一的接口操作显示设备而对硬件进行的抽象。如果不清楚,则选择N。
- n Enable Video Mode Handling Helpers:使用GTF和EDID来帮助处理显示模式,可以选择N。若有其他选项依赖于它时,则会自动选择Y。
- n Enable Tile Blitting Support:可以选择N。若有其他选项依赖于它时,会自动选择Y。
- n VGA 16-color graphics support:16色VGA显卡。如果有这样一种老式设备,则选择Y。
- n VESA VGA graphics support:符合VESA 2.0标准的显卡的通用驱动,如果显卡芯片在下面能够找到就可以选择N。
- n Virtual Frame Buffer support:仅供调试使用。
- n Console display driver support:控制台显示驱动。如果不清楚,则选择N。
- n VGA text console:文本控制台。如果不清楚,则选择N。
- n Enable Scrollback Buffer in System RAM:在内存中开辟额外的屏幕缓冲区,这将允许回滚屏幕。如果不清楚,则选择N。
- n Scrollback Buffer Size(in KB):在内存中开辟的额外屏幕缓冲区大小。如果不清楚,则选择N。
- n Video mode selection support:允许在内核启动时使用vga=选择文本模式,如果希望一行能够显示更多字符的话可以打开它。如果不清楚,则选择N。
- n MDA text console(dual-headed):如果有老式的单色显卡并且作为第二块显卡使用以实现双头显示,则选择Y。如果不清楚,则选择N。
- n Framebuffer Console support:基于Framebuffer的控制台驱动,服务器可以选择N。
- n Framebuffer Console Rotation:显示画面旋转,它可能大大降低显示速度,建议选择N。
- n Select compiled-in fonts:选择内建字体。如果不清楚,则选择N。
- n VGA 8x8 font:高分辨率下的小字体。如果不清楚,则选择N。
- n VGA 8x16 font:低分辨率下的大字体。如果不清楚,则选择N。
- n Logo configuration:启动时显示Linux的logo(一幅企鹅图像),喜欢炫一下的则选择Y。
- n Backlight&LCD device support:LCD显示器支持。如果不清楚,则选择N。
- 27)Sound
- 声卡。包括以下子选项。
- n Advanced Linux Sound Architecture:使用声卡者选择Y。
- n Sequencer support:音序器支持(MIDI必需),除非确定不需要,否则请选择Y。
- n Sequencer dummy client:除非要同时连接到多个MIDI设备或应用程序,否则一般选择N。
- n OSS Mixer API:OSS混音器API仿真,许多程序目前仍然需要使用它。在一般情况下,建议选择Y。
- n OSS PCM(digital audio)API:OSS数字录音(PCM)API模拟,许多程序目前仍然需要使用它。在一般情况下,建议选择Y。
- n OSS PCM(digital audio)API-Include plugin system:在一般情况下,建议选择N。
- n OSS Sequencer API:OSS音序器支持,许多程序目前仍然需要使用它。在一般情况下,建议选择Y。
- n RTC Timer support:为ALSA启用RTC定时器支持。在一般情况下,建议选择Y。
- n Use RTC as default sequencer timer:将RTC当做默认的时序脉冲发生器。如果不清楚,则选择N。
- n Dynamic device file minor numbers:仅供拥有多个声卡的用户选择。如果不清楚,则选择N。
- n Support old ALSA API:支持已被废弃的老版本ALSA API。如果不清楚,则选择N。
- n Verbose procfs contents:仅供调试使用。
- n Verbose printk:仅供调试使用。
- n Debug:仅供调试使用。
- n Generic devices:通用设备。如果不清楚,则选择N。
- n Dummy(/dev/null)soundcard:仅供调试使用。
- n Virtual MIDI soundcard:虚拟MIDI驱动,允许将使用原始MIDI设备的应用程序连接到音序器客户端。如果不清楚,则选择N。
- n PCI devices:PCI接口的声卡,请按实际使用的声卡选择子项。
- n USB devices:USB接口的声卡,请按实际使用的声卡选择子项。
- n PCMCIA devices:PCMCIA接口的声卡,请按实际使用的声卡选择子项。
- n Open Sound System:在一般情况下,建议选择N。
- 28)USB support
- USB支持。包括以下子选项。
- n Support for Host-side USB:主机端(Host-side)USB支持。通用串行总线(USB)是一个串行总线子系统规范,它比传统的串口速度更快并且特性更丰富(供电、热插拔,最多可接127个设备等),有望在将来统一PC外设接口。USB的“Host”(主机)被称为“根”(也可以理解为是主板上的USB控制器),外部设备被称为“叶子”,而内部的节点则称为HUB(集线器)。基本上只要想使用任何USB设备都必须选择此项。另外,还需要从下面选择Y。至少一个Host Controller Driver(HCD),比如适用于USB 1.1的UHCI HCD support或OHCI HCD support,适用于USB 2.0的EHCI HCD(USB 2.0)support。如果拿不准的话把他们全部选择Y,一般也不会出问题。如果系统有设备端的USB接口(也就是系统可以作为叶子使用),请到USB Gadget中进行选择。
- n USB verbose debug messages:仅供调试使用。
- n USB device filesystem:在/proc/bus/USB里列出当前连接的USB设备(mount-t USBfs none/proc/bus/USB),这样用户空间的程序就可以直接访问这些USB设备。如果要使用USB设备的话就必须选择Y。
- n Enforce USB bandwidth allocation:执行USB带宽分配限制,禁止打开占用USB总线带宽超过90%的设备,选择N可能会导致某些设备无法正常工作。
- n Dynamic USB minor allocation:除非有超过16个同类型的USB设备,否则选择N。
- n USB selective suspend/resume and wakeup:USB设备的挂起和恢复。在一般情况下,建议选择N。
- n EHCI HCD(USB 2.0)support:USB 2.0支持(大多数2002年以后的主板都支持)。如果此项选择Y,一般来说OHCI或UHCI驱动选项同时需要也选择Y。
- n Full speed ISO transactions:由于USB 2.0支持低速(1.5Mbps)、全速(12Mbps)、高速(480Mbps)3种规格的外部设备,为了将全/低速设备对高速设备可用带宽的影响减到最小,在USB 2.0集线器中提供了一种事务转换(Transaction Translator)机制,该机制支持在HUB连接的是全/低速设备的情况下,允许主控制器与HUB之间以高速传输所有设备的数据,从而节省不必要的等待。如果没有外置的USB集线器可以选择N。
- n Root Hub Transaction Translators:带有USB 2.0接口的主板上都有一个根集线器(Root Hub),以允许在无须额外购买HUB的情况下就可以提供多个USB插口,其中的某些产品还在其中集成了事务转换(Transaction Translator)功能,这样就不需要再额外使用一个兼容OHCI或UHCI的控制器来兼容USB 1.1,即使不太清楚嵌入式系统所使用主板上的根集线器是否集成了事务转换功能,也可以安全地选择此项。
- n Improved Transaction Translator scheduling:如果有一个高速USB 2.0 HUB并且某些接在这个HUB上的低速或全速设备不能正常工作(显示'cannot submit datapipe: error-28'或'error-71'错误),可以考虑选择Y。
- n ISP116X HCD support:ISP1160/ISP1161主机USB控制器,是符合USB 2.0全速规范的单片主机控制器和设备控制器,支持OHCI标准。
- n OHCI HCD support:开放主机控制接口(OHCI)是主要针对嵌入式系统的USB 1.1主机控制器规范。如果不清楚,则选择N。
- n UHCI HCD(most Intel and VIA)support:通用主机控制器接口(UHCI)是主要针对PC的USB 1.1主机控制器规范。另外,EHCI也可能需要它。如果不清楚,则选择N。
- n Elan U132 Adapter Host Controller:如果嵌入式系统采用这种设备,则选择Y。
- n SL811HS HCD support:如果嵌入式系统采用这种设备,则选择Y。
- n USB Bluetooth TTY support:USB蓝牙TTY设备支持。如果嵌入式系统采用这种设备,则选择Y。
- n USB MIDI support:USB MIDI设备支持。如果嵌入式系统采用这种设备,则选择Y。
- n USB MODEM(CDC ACM)support:USB接口的猫或ISDN适配器。如果嵌入式系统采用这种设备,则选择Y。
- n USB Printer support:USB打印机。如果嵌入式系统采用这种设备,则选择Y。
- n USB Mass Storage support:USB存储设备(优盘、USB硬盘、USB软盘、USB CD-ROM、USB磁带、memory sticks、数码相机、读卡器等)。该选项依赖于SCSI device support,且大部分情况下还依赖于SCSI disk support(比如优盘或USB硬盘)。如果嵌入式系统采用这种设备,则选择Y。
- n USB Mass Storage verbose debug:仅供调试使用。
- n &nb