kernel裁剪

一、linux内核裁剪的具体过程

(1)、裁剪原因:
①、在arm有限的资源内,秉持简洁为前提。
②、不必要的驱动,不仅使得内核占用空间,运行速度慢,还会引起不必要得问题。
(2)、对应的硬件资源包获取:
①、以NXP imxull为例子,从NXP 官方提供的获取到Linux 内核进行裁剪。
(3)、内核配置裁剪有多种方式
①、通过 /arch/arm/configs目录下的imx_v7_defconfig或imx_v7_mfg_defconfig 进行裁剪的文本配置方式
②、通过make menuconfig 菜单配置方式;
③、make xconfig 图形界面配置方式(需安装qt)

二、使用make menuconfig进行裁剪

(1)、配置界面操作指南
①、按y包含进内核中;
②、按n不包含内核中;
③、按m编译成模块;
④、按Esc键返回上一级菜单;
⑤、按方向键选择菜单;
⑥、[*]表示已包含;
⑦、[ ]表示未包含。

(2)、裁剪原则:
内核裁剪需要根据项目需求,这里介绍一些必须包含的选项,其余根据个人需求包含或删除。General setup–>System V IPC (IPC:Inter Process Communication)是组系统调用及函数库,程序运行必备的,必须包含。
(3)、详细介绍make menuconfig的使用
①、使用make distclean 清除残留的内核的配置文件.config
②、配置内核make menuconfig,及每个选项代表的功能。
2.5.1 General 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.2 Loadable 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 The shared table of common(或usual)storage devices:该模块包含一张记录了常用USB存储设备及其驱动的表格,这样无须重新编译模块即可在切换这些设备时自动邦定对应的驱动(还需要对 /etc/modprobe。conf进行相应的设置)。如果不清楚,则选择N。
n USB Human Interface Device(full HID)support:USB人机界面设备(鼠标、键盘、游戏杆、手写板等操作计算机的设备),该驱动不能和USB HID Boot Protocol drivers同时使用。如果不清楚,则选择N。
n HID input layer support:如果有USB接口的鼠标、键盘、游戏杆、手写板等输入设备,则选择Y。
n Enable support for iBook/PowerBook special keys:苹果iBooks/PowerBooks键盘上的Fn/Numlock等功能键支持。如果不清楚,则选择N。
n Force feedback support:力反馈设备。如果不清楚,则选择N。
n /dev/hiddev raw HID device support:如果有USB监控装置或不间断电源(UPS)之类的非输入设备就选择Y。
n USB HID Boot Protocol drivers:如果有绝对的把握确信不为嵌入式系统所使用的键盘和鼠标使用通常的HID驱动,而要使用Boot Protocol模式的HID驱动(常见于嵌入式环境),则选择Y。
n Aiptek 6000U/8000U tablet support:一种手写板。如果嵌入式系统采用这种设备,则选择Y。
n Wacom Intuos/Graphire tablet support:一种手写/绘图板。如果嵌入式系统采用这种设备,则选择Y。
n Acecad Flair tablet support:一种数控绘图板。如果嵌入式系统采用这种设备,则选择Y。
n KB Gear JamStudio tablet support:一种手写/绘图板。如果嵌入式系统采用这种设备,则选择Y。
n Griffin PowerMate and Contour Jog support:一种具有调节音量、滚动文本、视频快进/快退等功能的产品。如果嵌入式系统采用这种设备,则选择Y。
n USB Touchscreen Driver:USB触摸屏驱动。如果嵌入式系统采用USB触摸屏硬件,则选择Y。
n Yealink USB-p1k voip phone:一种VoIP电话。如果嵌入式系统采用这种设备,则选择Y。
n X-Box gamepad support:X-Box游戏板。如果嵌入式系统采用这种设备,则选择Y。
n ATI/X10 USB RF remote control:一种USB远程控制设备。如果嵌入式系统采用这种设备,则选择Y。
n ATI/Philips USB RF remote control:一种USB远程控制设备。如果嵌入式系统采用这种设备,则选择Y。
n Keyspan DMR USB remote control:一种USB远程控制设备。如果嵌入式系统采用这种设备,则选择Y。
n Apple USB Touchpad support:苹果机上的触摸板。如果嵌入式系统采用这种设备,则选择Y。
n USB Mustek MDC800 Digital Camera support:一种数码相机。如果嵌入式系统采用这种设备,则选择Y。
n Microtek X6USB scanner support:一种扫描仪。如果嵌入式系统采用这种设备,则选择Y。
n USB Network Adapters:USB网络适配器,如果有这种设备请根据嵌入式系统实际使用的硬件选择子项。
n USB Monitor:USB流量监控。在一般情况下,建议选择N。
n USS720 parport driver:一种USB接口转并口的转换设备。如果嵌入式系统采用这种设备,则选择Y。
n USB Serial Converter support:USB接口转串口的转换设备。如果嵌入式系统采用这种设备,则选择Y。
n EMI 6|2m USB Audio interface support:一种USB音频设备。如果嵌入式系统采用这种设备,则选择Y。
n EMI 2|6 USB Audio interface support:一种USB音频设备。如果嵌入式系统采用这种设备,则选择Y。
n ADU devices from Ontrak Control Systems:Ontrak Control Systems公司的一种自动拨号设备。如果嵌入式系统采用这种设备,则选择Y。
n USB Auerswald ISDN support:一种ISDN设备。如果嵌入式系统采用这种设备,则选择Y。
n USB Diamond Rio500 support:一种MP3播放器。如果嵌入式系统采用这种设备,则选择Y。
n USB Lego Infrared Tower support:一种无线发射机。如果嵌入式系统采用这种设备,则选择Y。
n USB LCD driver support:USB液晶显示器。如果嵌入式系统采用这种设备,则选择Y。
n USB LED driver support:USB发光二极管。如果嵌入式系统采用这种设备,则选择Y。
n Cypress CY7C63xxx USB driver support:德国AK Modul-Bus Computer GmbH公司的一种产品。如果嵌入式系统采用这种设备,则选择Y。
n Cypress USB thermometer driver support:一种温度计。如果嵌入式系统采用这种设备,则选择Y。

n USB Phidgets drivers:来自Phidgets公司的各种USB产品。如果嵌入式系统采用这种设备,则选择Y。
n Siemens ID USB Mouse Fingerprint sensor support:西门子公司的一种指纹传感器。如果嵌入式系统采用这种设备,则选择Y。
n Elan PCMCIA CardBus Adapter USB Client:Elan公司的一种USB转PCMCIA的适配器。如果嵌入式系统采用这种设备,则选择Y。

n Apple Cinema Display support:苹果公司的一种Cinema Display。如果嵌入式系统采用这种设备,则选择Y。
n USB 2.0 SVGA dongle support(Net2280/SiS315):一种软件狗。如果嵌入式系统采用这种设备,则选择Y。
n USB LD driver:USB LD驱动。如果嵌入式系统采用USB LD硬件,则选择Y。
n PlayStation 2 Trance Vibrator driver support:SONY的PS2上面的“入迷振荡器”,类似于力反馈手柄。如果嵌入式系统采用这种设备,则选择Y。
n USB testing driver:这是一种测试中的驱动。在一般情况下,建议选择N。
n USB DSL modem support:对USB DSL猫的支持。如果嵌入式系统采用这种设备,则选择Y。
n USB Gadget Support:USB杂项支持。如果不清楚,则选择N。
29)MMC/SD Card support
MMC/SD卡支持。如果嵌入式系统采用此类设备,则选择Y。
30)LED devices
发光二级管(LED)设备。如果嵌入式系统采用此类设备,则选择Y。
31)InfiniBand support
InfiniBand是一个通用的高性能I/O规范,它使得存储区域网中以更低的延时传输I/O消息和集群通信消息并且提供很好的伸缩性。用于Linux服务器集群系统。如果不清楚,则选择N。
32)EDAC-error detection and reporting(RAS)
错误检测与纠正(EDAC)的目标是发现并报告,甚至纠正在计算机系统中发生的错误,这些错误是由CPU或芯片组报告的底层错误(内存错误、缓存错误、PCI错误、温度过高等)。在一般情况下,建议选择Y。如果这些代码报告了一个错误,请到以下网站查看更多信息。
n http://bluesmoke.Sourceforge.net/。
n http://buttersideup.com/edacwiki/。
该选项包括以下子选项。
n Debugging:仅供调试使用。
n Main Memory EDAC(Error Detection And Correction)reporting:一些系统能够检测和修正主内存中的错误,EDAC能够报告这些信息(EDAC自己检测到的或者根据ECC得到的)。EDAC还会尽量检测这些错误发生在哪里,以便于替换损坏的内存。建议选择并按照实际使用的芯片组选取子项。
n Error detecting method:错误检测方法,当前只有一个Poll for errors(错误轮询)可用。如果不清楚,则选择N。
33)Real Time Clock
所有的PC主板都包含一个电池动力的实时时钟芯片,以便在断电后仍然能够继续保持时间,RTC通常与CMOS集成在一起,因此BIOS可以从中读取当前时间。该选项包括以下子选项。
n RTC class:通用RTC类支持,选择此项后就可以在操作系统中使用一个或多个RTC设备,还必须从下面启用一个或多个RTC接口。如果不清楚,则选择N。
n Set system time from RTC on startup:系统启动时使用从指定的RTC设备中读取的时间来设定系统时间,通常这将有助于避免不必要的文件系统检测程序(fsck)的运行。在一般情况下,建议选择Y。
n The RTC to read the time from:指定具体从哪个RTC设备中读取时间。如果不清楚,则选择N。
n RTC debug support:仅供调试使用。
n sysfs:允许通过sysfs接口使用RTC,允许多个RTC设备,也就是/sys/class/RTC/ RTC0_N。如果不清楚,则选择N。
n proc:允许通过proc接口使用RTC,仅允许一个RTC设备,也就是/proc/driver/RTC。如果不清楚,则选择N。
n dev:允许通过dev接口使用RTC,允许多个RTC设备,也就是udev设置的/dev/RTC0_N,建议建立一个指向其中之一的软连接/dev/RTC,某些程序(比如hwclock)需要使用/dev/RTC。如果不清楚,则选择N。
n RTC UIE emulation on dev interface:该选项的作用是,如果底层RTC芯片接口没有提供RTC_UIE支持,就仿真一个RTC_UIE。如果不清楚,则选择N。
34)DMA Engine support
从Intel Bensley双核服务器平台开始引入的数据移动加速(Data Movement Acceleration)引擎,它将某些传输数据的操作从CPU转移到专用硬件,从而可以进行异步传输并减轻CPU负载。Intel已将此项技术变为开放的标准,将来应当会有更多的厂商支持。该选项包括以下子选项。
n TCP receive copy offload:通过在网络栈中利用DMA引擎来减少接收数据包时的copy-to-user操作,以释放CPU资源,这是DMA引擎目前最主要的用途。如果不清楚,则选择N。
n Intel I/OAT DMA support:Intel I/O加速技术(Intel I/O Acceleration Technology)中的DMA支持,基于Intel Bensley的新一代服务器平台都支持它。如果不清楚,则选择N

(4)、所有配置裁剪后保存并编译
①、在所有需要的选项配置完毕之后,按Esc退出,选择Yes保存。
②、使用make .config 命令进行编译
③、注意:我们图形化界面配置后的配置项是保存在.config 中,但是我们使用make clean”清理工程以后.config 文件就会被删除掉,因此我们所有的配置内容都会丢失,结果就是前功尽弃,所以我们测试没问题的时候要进行配置保存,保存配置的方法有两个。
方式一:
直接将.config 文件另存为imx_v7_defconfig然后其复制到 arch/arm/configs 目录下,之后执行make imx_v7_defconfig就会默认使用配置好的配置文件。
方式二:
在图形界面中保存配置文件,在图形界面中会有“< Save >”选项选择保存路径arch/arm/configs/imx_v7_defconfig

  • 5
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
T31是一种型号的芯片,裁剪kernel通常是指在Linux操作系统中裁剪内核kernel)的配置,以满足特定设备或应用的需求。裁剪kernel可以减小内核的体积,提高系统的性能和效率。 要裁剪T31的kernel,您需要进行以下步骤: 1. 获取T31芯片的相关资料和开发工具,包括kernel源码和交叉编译工具链。 2. 配置交叉编译工具链,确保能够在主机上编译T31的kernel。 3. 打开kernel源码目录,在终端中运行`make menuconfig`命令,进入配置界面。 4. 在配置界面中,可以通过勾选或取消勾选不同的选项来裁剪内核。通常可以通过以下方式进行裁剪: - 去除不需要的设备驱动程序。根据T31的硬件特性,可以去除不需要的设备驱动程序,以减小内核体积。 - 禁用不需要的功能和子系统。根据实际需求,可以禁用一些不需要的功能和子系统,以减小内核体积。 - 调整内核配置参数。根据T31的性能和需求,可以调整一些内核配置参数,以提高系统性能和效率。 5. 完成配置后,保存并退出配置界面。 6. 在终端中运行`make`命令,开始编译裁剪后的kernel。 7. 编译完成后,将生成的kernel镜像文件烧录到T31芯片中,即可使用裁剪后的kernel。 请注意,在裁剪kernel时需要谨慎操作,确保不要去除必要的模块和功能,以免导致系统无法正常运行。建议在裁剪前备份原始的kernel源码和配置文件,以便需要时能够还原。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值