CONFIG_LOCALVERSION="-myimx6"                     #本地版本
CONFIG_KERNEL_LZO=y                               #内核混合算法
CONFIG_DEFAULT_HOSTNAME="myzr"                     #默认主机名称
CONFIG_SYSVIPC=y                                #进程间通信
CONFIG_NO_HZ=y                                 #时钟相关
CONFIG_HIGH_RES_TIMERS=y                          #内核敏感计时
CONFIG_IKCONFIG=y                #把内核的配置信息编译进内核中,以后可以通过scripts/extract-ikconfig脚本从内核镜像中提取这些信息        
CONFIG_IKCONFIG_PROC=y                #允许通过 /proc/config.gz 文件访问内核的配置信息
CONFIG_LOG_BUF_SHIFT=18                #设置内核日志缓冲区的大小
CONFIG_CGROUPS=y                #允许使用Cgroups
CONFIG_RELAY=y                    #允许为文件系统提供中继支持
CONFIG_BLK_DEV_INITRD=y                #打开初始内存文件系统与初始内存盘支持,一般通过lilo/grub的initrd指令加载
CONFIG_EXPERT=y                    #配置标准的内核特性(仅供专家使用).这个选项允许你改变内核的"标准"特性(比如用于需要"非标准"内核的特定环境中)
CONFIG_KALLSYMS_ALL=y                #装载所有的调试符号表信息到/proc/kallsyms中,包含内核知道的所有符号,内核将会增大300K,仅供调试时选择
# CONFIG_SLUB_DEBUG is not set            #SLUB调试支持,禁用后可显著降低内核大小,同时/sys/kernel/slab也将不复存在.
# CONFIG_COMPAT_BRK is not set            #禁用堆随机化(heap randomization)功能.堆随机化可以让针对堆溢出的攻击变得困难,但是不兼容那些古董级的二进制程序(2000年以前).如果你不需要使用这些古董程序,那么选"N".
CONFIG_PROFILING=y                #添加扩展的性能分析支持,可以被OProfile之类的工具使用.仅用于调试目的
CONFIG_OPROFILE=y    #OProfile性能分析工具支持,仅用于调试目的.
CONFIG_MODULES=y    #打开可加载模块支持,可以通过"make modules_install"把内核模块安装在/lib/modules/中.然后可以使用 modprobe, lsmod, modinfo, insmod, rmmod 等工具进行各种模块操作.
CONFIG_MODULE_UNLOAD=y    #允许卸载已经加载的模块
CONFIG_MODVERSIONS=y    允许使用为其他内核版本编译的模块,可会造成系统崩溃.这同样是个坏主意!建议关闭.
CONFIG_MODULE_SRCVERSION_ALL=y    为模块添加"srcversion"字段,以帮助模块维护者准确的知道编译此模块所需要的源文件,从而可以校验源文件的变动.仅内核模块开发者需要它.
# CONFIG_BLK_DEV_BSG is not set    为块设备启用第四版SG(SCSI generic)支持.v4相比v3能够支持更复杂的SCSI指令(可变长度的命令描述块,双向数据传输,通用请求/应答协议),而且UDEV也要用它来获取设备的序列号.对于使用systemd的系统来说,必须选"Y".对于不使用systemd的系统,如果你需要通过/dev/bsg/*访问块设备,建议开启此选项,否则(通过/dev/{sd*,st*,sr*})可以关闭.
CONFIG_GPIO_PCA953X=y    键盘16*16驱动
CONFIG_ARCH_MXC=y    
CONFIG_MACH_IMX51_DT=y    
CONFIG_MACH_EUKREA_CPUIMX51SD=y    
CONFIG_SOC_IMX50=y    
CONFIG_SOC_IMX53=y    
CONFIG_SOC_IMX6Q=y    
CONFIG_SOC_IMX6SL=y    
CONFIG_SOC_IMX6SX=y    
CONFIG_SOC_IMX6UL=y    
CONFIG_SOC_IMX7D=y    
CONFIG_SOC_VF610=y    
# CONFIG_SWP_EMULATE is not set    
CONFIG_PCI=y        PCI是最重要的内部总线,不但PCI与PCI Express设备依赖于它,而且USB/IDE/SATA/SCSI/火线(IEEE 1394)/PCMCIA/CardBus等各种内部和外部总线也都依赖于它.所以必须选"Y"
CONFIG_PCI_MSI=y    PCI/PCI-E支持三类中断:(1)INTx使用传统的IRQ中断,可以与现行的驱动程序和操作系统兼容.(2)MSI是PCI2.2规范中新增的,通过写入特殊的内存地址来触发和发送中断,该种方式脱离了中断引脚带来的数目限制,并且延迟小/效率高.不过MSI方式将中断全部落在单个CPU上,对多核CPU利用不佳.(3)MSI-X是在PCI3.0规范中新增的,在MSI的基础上,支持更多的消息数量以及独立的消息地址,可以自动在多个CPU上分担中断,更适合多CPU系统.建议开启.开启后,也可以使用"pci=nomsi"内核引导参数关闭MSI特性.
CONFIG_PCI_IMX6=y    
CONFIG_SMP=y    SMP(对称多处理器)支持,如果你有多个CPU或者使用的是多核CPU就选上.
CONFIG_HAVE_ARM_ARCH_TIMER=y    
CONFIG_VMSPLIT_2G=y    
CONFIG_PREEMPT=y    主动内核抢占,允许抢占所有内核代码,对吞吐量有更大影响,适合需要运行实时程序的场合或者追求最快响应速度的桌面环境.
CONFIG_AEABI=y      arm浮点层级混用 可选可不选 推荐默认
CONFIG_HIGHMEM=y  大内存
CONFIG_CMA=y    在使用ARM等嵌入式Linux系统的时候,GPU,Camera,HDMI等都需要预留大量连续内存,这部分内存平时不用,但是传统的做法又必须先预留着.而通过连续内存分配器(Contiguous Memory Allocator)可以做到不预留内存,仅在需要的时候才将大块的连续物理内存分配给相应的驱动程序.这个机制对于那些不支持I/O map和scatter-gather的设备很有作用.详情参见"include/linux/dma-contiguous.h"文件,不确定的选"N".
CONFIG_CMDLINE="noinitrd console=ttymxc0,115200"    将要编译进内核的引导参数字符串.
CONFIG_CPU_FREQ=y    CPUfreq子系统允许动态改变CPU主频,达到省电和降温的目的.现如今的CPU都已经支持动态频率调整,建议开启.不过,如果你是为虚拟机编译内核,就没有必要开启了,由宿主机内核去控制就OK了.
CONFIG_CPU_FREQ_GOV_POWERSAVE=y    节能'优先,静态的将频率设置为cpu支持的最低频率
CONFIG_CPU_FREQ_GOV_USERSPACE=y    既允许手动调整cpu频率,也允许用户空间的程序动态的调整cpu频率(需要额外的调频软件)
CONFIG_CPU_FREQ_GOV_ONDEMAND=y     '立即响应',周期性的考察CPU负载并自动的动态调整cpu频率(不需要额外的调频软件),适合台式机
CONFIG_CPU_FREQ_GOV_INTERACTIVE=y    
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y    '保守',和'ondemand'相似,但是频率的升降是渐变式的(幅度不会很大),更适合用于笔记本/PDA/x86_64环境
CONFIG_ARM_IMX6Q_CPUFREQ=y    
CONFIG_ARM_IMX7D_CPUFREQ=y    
CONFIG_CPU_IDLE=y    CPU idle 指令支持,该指令可以让CPU在空闲时"打盹"以节约电力和减少发热.只要是支持ACPI的CPU就应该开启.由于所有64位CPU都已支持ACPI,所以不必犹豫,开启![提示]为虚拟机编译的内核就没有必要开启了,由宿主机内核去控制就OK了.
CONFIG_VFP=y    提供浮点数基本运算,最有特点是它向量(vectors)功能。它同时支持最多8组单精度4组双精度浮点数的运算
CONFIG_NEON=y    
CONFIG_BINFMT_MISC=m    允许插入二进制封装层到内核中,运行Java,.NET(Mono-based),Python,Emacs-Lisp等语言编写的程序时需要它,DOSEMU也需要它.想要更方便的使用此特性,你还需要使用"mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc"挂载binfmt_misc伪文件系统.具体详情可以参考"Documentation/binfmt_misc.txt"文档.
CONFIG_PM_RUNTIME=y    允许IO设备(比如硬盘/网卡/声卡)在系统运行时进入省电模式,并可在收到(硬件或驱动产生的)唤醒信号后恢复正常.此功能通常需要硬件的支持.建议在笔记本/嵌入式等需要节约电力的设备上选"Y".
CONFIG_PM_DEBUG=y    仅供调试使用
CONFIG_PM_TEST_SUSPEND=y    
CONFIG_NET=y    
CONFIG_PACKET=y    链路层PF_PACKET套接字支持.可以让应用程序(比如:抓包工具tcpdump, DHCP客户端dhclient)直接与网络设备通讯,而无需使用内核中的其它中介协议.不确定的选"Y"或"M".
CONFIG_UNIX=y    Unix domain sockets 支持.许多程序都使用它在操作系统内部进行进程间通信(IPC),比如: X Window, syslog, udev 等等.选"Y",除非你确实知道自己在做什么.
CONFIG_INET=y    TCP/IP协议,必选!
CONFIG_IP_PNP=y    在内核启动时自动配置网卡的ip地址/路由表,配置信息来自于以下途径:内核引导参数,自举协议(BOOTP),反向地址转换协议(RARP),动态主机配置协议(DHCP).通常,需要从网络启动的无盘工作站才需要这个东西(此时还需要开启CONFIG_ROOT_NFS),一般的发行版都通过启动脚本(dhcpcd/dhclient/ifconfig)配置网络.不确定的选"N".
CONFIG_IP_PNP_DHCP=y    DHCP协议支持
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set    IPsec传输模式.常用于对等通信,用以提供内网安全.数据包经过了加密但IP头没有加密,因此任何标准设备或软件都可查看和使用IP头
# CONFIG_INET_XFRM_MODE_TUNNEL is not set    IPsec隧道模式.用于提供外网安全(包括虚拟专用网络).整个数据包(数据头和负载)都已经过加密处理且分配有新的ESP头/IP头/验证尾,从而能够隐藏受保护站点的拓扑结构
# CONFIG_INET_XFRM_MODE_BEET is not set    IPsec BEET模式.
# CONFIG_INET_LRO is not set    LRO(Large Receive Offload) (ipv4/tcp) 支持.它通过将多个TCP数据整合在一个skb结构中,并在稍后的某个时刻作为一个大的数据包交付给上层的网络协议栈,以减少上层协议栈处理skb的开销,提高Linux系统接收TCP数据包的能力.目前,主流网卡驱动都已支持此特性.建议开启.不过,LRO不应该在路由器上开启,因为它破坏了end-to-end原则,并会对路由性能造成显著的不利影响.
CONFIG_IPV6=y    引领未来的IPv6支持.
CONFIG_NETFILTER=y    Netfilter可以对数据包进行过滤和修改,可以作为防火墙("packet filter"或"proxy-based")或网关(NAT)或代理(proxy)或网桥使用.
CONFIG_VLAN_8021Q=y    802.1Q虚拟局域网
CONFIG_LLC2=y    PF_LLC类型套接字支持.也就是IEEE 802.2 LLC 2
CONFIG_CAN=y    CAN(Controller Area Network)是一个低速串行通信协议.被广泛地应用于工业自动化/船舶/医疗设备/工业设备等嵌入式领域.更多信息参见"Documentation/networking/can.txt"文件.
CONFIG_CAN_VCAN=y    
CONFIG_CAN_FLEXCAN=y    
CONFIG_CAN_M_CAN=y    
CONFIG_CAN_DEBUG_DEVICES=y    
CONFIG_BT=y    蓝牙支持.蓝牙目前已经基本取代红外线,成为嵌入式设备/智能设备/笔记本的标配近距离(小于10米)通信设备.在Linux上通常使用来自BlueZ的hciconfig和bluetoothd工具操作蓝牙通信.
CONFIG_BT_RFCOMM=y    虚拟串口协议(RFCOMM)是一个面向连接的流传输协议,提供RS232控制和状态信号,从而模拟串口的功能.它被用于支持拨号网络,OBEX(Object Exchange),以及某些蓝牙程序(例如文件传输).
CONFIG_BT_RFCOMM_TTY=y    允许在RFCOMM通道上模拟TTY终端
CONFIG_BT_BNEP=y    蓝牙网络封装协议(Bluetooth Network Encapsulation Protocol)可以在蓝牙上运行其他网络协议(TCP/IP). Bluetooth PAN(Personal Area Network)需要它的支持.
CONFIG_BT_BNEP_MC_FILTER=y    组播支持
CONFIG_BT_BNEP_PROTO_FILTER=y    协议过滤器支持
CONFIG_BT_HIDP=y    人机接口设备协议(Human Interface Device Protocol)用于支持各种人机接口设备(比如鼠标/键盘/耳机等).
CONFIG_BT_HCIBTUSB=y    使用USB接口的蓝牙设备支持
CONFIG_BT_HCIUART=y    使用串口的蓝牙设备支持.此外,基于UART的蓝牙PCMCIA和CF设备也需要此模块的支持.
CONFIG_BT_HCIUART_H4=y    大多数使用UART接口的蓝牙设备(包括PCMCIA和CF卡)都使用这个协议.
CONFIG_BT_HCIUART_BCSP=y    基于CSR(Cambridge Silicon Radio)公司的BlueCore系列芯片的蓝牙设备(包括PCMCIA和CF卡)支持
CONFIG_BT_HCIUART_ATH3K=y    基于Atheros AR300x系列芯片的蓝牙设备支持
CONFIG_BT_HCIBCM203X=y    
CONFIG_BT_ATH3K=y    
CONFIG_CFG80211=y    cfg80211是Linux无线局域网(802.11)配置接口,是使用WiFi的前提.注意:"WiFi"是一个无线网路通信技术的品牌,由WiFi联盟所持有.目的是改善基于IEEE 802.11标准的无线网路产品之间的互通性.现时一般人会把WiFi及IEEE 802.11混为一谈,甚至把WiFi等同于无线网路(WiFi只是无线网络的一种).
# CONFIG_CFG80211_DEFAULT_PS is not set    默认开启省电模式.可能会导致某些设计拙劣的网络程序掉线.建议开启.详情参见"Documentation/power/pm_qos_interface.txt"文档.
CONFIG_CFG80211_WEXT=y    为那些老旧的用户空间程序提供兼容性,建议关闭.
CONFIG_MAC80211=y    独立于硬件的通用IEEE 802.11协议栈模块(mac80211).它是驱动开发者用来编写softMAC无线设备驱动的框架,softMAC设备允许用软件实现帧的管理(包括解析和产生80211无线帧),从而让系统能更好的控制硬件,现在大多数的无线网卡都是softMAC设备.不确定的选"Y".
CONFIG_DEVTMPFS=y    devtmpfs是一种基于CONFIG_TMPFS的文件系统(与proc和sys有几分相似).在系统启动过程中,随着各个设备的初始化完成,内核将会自动在devtmpfs中创建相应的设备节点(使用默认的文件名和权限)并赋予正确的主次设备号.更进一步,在系统运行过程中,随着各种设备插入和拔除,内核也同样会自动在devtmpfs中创建和删除的相应的设备节点(使用默认的文件名和权限)并赋予正确的主次设备号.如果将devtmpfs挂载到"/dev"目录(通常是系统启动脚本),那么便拥有了一个全自动且全功能的"/dev"目录,而且用户空间程序(通常是udevd)还可以对其中的内容进行各种修改(增删节点,改变权限,创建符号链接).目前的发行版和各种嵌入式系统基本都依赖于此,除非你知道自己在做什么,否则请选"Y".
CONFIG_DEVTMPFS_MOUNT=y    在内核挂载根文件系统的同时,立即自动将devtmpfs挂载到"/dev"目录.因为此时init进程都还尚未启动,所以这就确保在进入用户空间之前,所有设备文件就都已经准备完毕.开启此选项相当于设置内核引导参数"devtmpfs.mount=1",关闭此选项相当于设置内核引导参数"devtmpfs.mount=0".开启此项后,你就可以放心的使用"init=/bin/sh"直接进入救援模式,而不必担心"/dev"目录空无一物.注意:此选项并不影响基于initramfs的启动,此种情况下,devtmpfs必须被手动挂载.所以,如果你的系统使用initrd或者有专门的启动脚本用于挂载"/dev"目录(大多数发行版都有这样的脚本),或者你看了前面的解释,还是不确定,那就选"N".对于实在想要使用"init=/bin/sh"直接进入救援模式的人来说,还是使用"init=/bin/sh devtmpfs.mount=1"吧!
# CONFIG_STANDALONE is not set    只显示那些编译时不需要额外固件支持的驱动程序,除非你有某些怪异硬件,否则请选"Y".
CONFIG_DMA_CMA=y    模拟信号连续分配内存
CONFIG_CMA_SIZE_MBYTES=0    
CONFIG_IMX_WEIM=y    
CONFIG_CONNECTOR=y    统一的用户空间和内核空间连接器,工作在netlink socket协议的顶层.连接器是非常便利的用户态与内核态的通信方式,内核开发者在编写内核子系统或模块时可以采用这种方式方便地进行用户态与内核态的数据交换.内核有两个连接器应用实例:一个是进程事件连接器,另一个是CIFS文件系统.另外还有一个给Gentoo装上启动画面的例子.
CONFIG_MTD=y    MTD子系统是一个闪存转换层.其主要目的是提供一个介于闪存硬件驱动程序与高级应用程序之间的抽象层,以简化闪存设备的驱动.注意:MTD常用于嵌入式系统,而我们常见的U盘/MMC卡/SD卡/CF卡等移动存储设备以及固态硬盘(SSD),虽然也叫"flash",但它们并不是使用MTD技术的存储器.仅在你需要使用主设备号为31的MTD块设备(/dev/romX,/dev/rromX,/dev/flashX,/dev/rflashX),或者主设备号为90的MTD字符设备(/dev/mtdX,/dev/mtdrX)时选"Y",否则选"N".
CONFIG_MTD_CMDLINE_PARTS=y    Memory Technology Device
CONFIG_MTD_BLOCK=y    
CONFIG_MTD_CFI=y    
CONFIG_MTD_JEDECPROBE=y    
CONFIG_MTD_CFI_INTELEXT=y    
CONFIG_MTD_CFI_AMDSTD=y    
CONFIG_MTD_CFI_STAA=y    
CONFIG_MTD_PHYSMAP_OF=y    
CONFIG_MTD_M25P80=y    
CONFIG_MTD_SST25L=y    
CONFIG_MTD_SPI_NOR=y    
CONFIG_SPI_FSL_QUADSPI=y    
CONFIG_BLK_DEV_LOOP=y    loop是指拿文件来模拟块设备(/dev/loopX),比如可以将一个iso9660镜像文件当成文件系统来挂载.建议选"Y".
CONFIG_BLK_DEV_RAM=y    内存中的虚拟磁盘,大小固定.详情参阅"Documentation/blockdev/ramdisk.txt".由于其功能比CONFIG_TMPFS弱许多,使用上也不方便,所以除非你有明确的理由,否则应该选"N",并转而使用CONFIG_TMPFS.
CONFIG_BLK_DEV_RAM_SIZE=65536    默认RAM disk的大小.请保持默认值,除非你知道自己在做什么.
CONFIG_SENSORS_FXOS8700=y    
CONFIG_SENSORS_FXAS2100X=y    
CONFIG_EEPROM_AT24=y    
CONFIG_EEPROM_AT25=y    
# CONFIG_SCSI_PROC_FS is not set    过时的/proc/scsi/接口.某些老旧的刻录程序可能需要它,建议选"N".
CONFIG_BLK_DEV_SD=y    使用SCSI/SAS/SATA/PATA/USB/Fibre Channel存储设备的必选.选"Y".
CONFIG_CHR_DEV_SG=y    通用SCSI协议(/dev/sg*)支持.也就是除硬盘/光盘/磁带之外的SCSI设备(例如光纤通道).这些设备还需要额外的用户层工具支持才能正常工作.例如:SANE,Cdrtools,CDRDAO,Cdparanoia
CONFIG_SCSI_MULTI_LUN=y    默认强制在每个SCSI设备上探测所有的逻辑设备数量(Logical Unit Number),其值会被该模块的内核引导参数"max_luns"覆盖.只在一个SCSI设备上有多个逻辑设备时才需要选它,一般的SCSI设备并不需要.一个SCSI设备上有多个逻辑设备的典型例子:多口USB读卡器,CD点唱机(jukebox),处于"mass storage"模式的智能手机,量产为多个设备后的U盘.注意:此项并不影响符合SCSI-3或更高标准的设备,因为这些设备会明确的向内核报告逻辑设备数.
CONFIG_SCSI_CONSTANTS=y    以易读的方式报告SCSI错误,内核将会增大12K
CONFIG_SCSI_LOGGING=y    启用SCSI日志(默认并不开启,需要"echo [bitmask] > /proc/sys/dev/scsi/logging_level"),可用于跟踪和捕获SCSI设备的错误.关于[bitmask]的说明可以查看"drivers/scsi/scsi_logging.h"文件.
CONFIG_SCSI_SCAN_ASYNC=y    异步扫描的意思是,在内核引导过程中,SCSI子系统可以在不影响其他子系统引导的同时进行SCSI设备的探测(包括同时在多个总线上进行检测),这样可以加快系统的引导速度.但是如果SCSI设备驱动被编译为模块,那么异步扫描将会导致内核引导出现问题(解决方法是加载scsi_wait_scan模块,或者使用"scsi_mod.scan=sync"内核引导参数).不确定的选"N".
# CONFIG_SCSI_LOWLEVEL is not set    底层SCSI驱动程序
CONFIG_ATA=y    SATA与PATA(IDE)设备.桌面级PC以及低端服务器的硬盘基本都是此种接口
CONFIG_SATA_AHCI_PLATFORM=y    这是用于嵌入式系统的与AHCI接口兼容的SATA驱动.并不是常见的芯片组中的SATA控制器驱动.不确定的选"N".
CONFIG_AHCI_IMX=y    
CONFIG_PATA_IMX=y    
CONFIG_NETDEVICES=y    网络设备.除非你不想连接任何网络,否则必选"Y".
# CONFIG_NET_VENDOR_BROADCOM is not set    博通(Broadcom)公司的网卡
CONFIG_CS89x0=y    
CONFIG_CS89x0_PLATFORM=y    
# CONFIG_NET_VENDOR_FARADAY is not set    
# CONFIG_NET_VENDOR_INTEL is not set    
# CONFIG_NET_VENDOR_MARVELL is not set    
# CONFIG_NET_VENDOR_MICREL is not set    
# CONFIG_NET_VENDOR_MICROCHIP is not set    
# CONFIG_NET_VENDOR_NATSEMI is not set    
# CONFIG_NET_VENDOR_SEEQ is not set    
CONFIG_SMC91X=y    
CONFIG_SMC911X=y    
CONFIG_SMSC911X=y    
# CONFIG_NET_VENDOR_STMICRO is not set    
CONFIG_MICREL_PHY=y    
CONFIG_PPP=y    点对点协议(Point to Point Protocol)是SLIP的继任者,使用PPP需要用户层程序pppd的帮助.PPP实际上有两个版本:基于普通模拟电话线的"异步PPP"和基于数字线路(例如ISDN线路)的"同步PPP".使用电脑直接拨号的 PPPoE ADSL 用户需要此项.
CONFIG_PPP_BSDCOMP=y    为PPP提供BSD(等价于LZW压缩算法,没有gzip高效)压缩算法支持,需要通信双方的支持才有效.大多数ISP都不支持此算法.
CONFIG_PPP_DEFLATE=y    为PPP提供Deflate(等价于gzip压缩算法)压缩算法支持,需要通信双方的支持才有效.这是比BSD更好的算法(压缩率更高且无专利障碍).
CONFIG_PPP_FILTER=y    允许对通过PPP接口的包进行过滤.仅在你需要使用pppd的pass-filter/active-filter选项时才需要开启.不确定的选"N".
CONFIG_PPP_MPPE=y    为PPP提供MPPE加密协议支持,它被用于微软的P2P隧道协议中.此特性需要PPTP Client工具的支持.
CONFIG_PPP_MULTILINK=y    多重链路协议(RFC1990)允许你将多个线路(物理的或逻辑的)组合为一个PPP连接一充分利用带宽,这不但需要pppd的支持,还需要ISP的支持
CONFIG_PPPOE=y    这就是ADSL用户最常见的PPPoE,也就是在以太网上跑的PPP协议.这需要RP-PPPoE工具的帮助
CONFIG_PPP_ASYNC=y    基于普通模拟电话线或标准异步串口(COM1,COM2)的"异步PPP"支持. PPPoE ADSL 使用的就是这个.不能与下面的CONFIG_PPP_SYNC_TTY同时并存.
CONFIG_PPP_SYNC_TTY=y    基于同步tty设备(比如SyncLink适配器)的"同步PPP"支持.常用于高速租用线路(比如T1/E1).不确定的选"N".
CONFIG_USB_USBNET=y    
# CONFIG_USB_NET_AX8817X is not set    
# CONFIG_USB_NET_AX88179_178A is not set    
# CONFIG_USB_NET_CDCETHER is not set    
# CONFIG_USB_NET_CDC_NCM is not set    
CONFIG_USB_NET_SMSC95XX=y    
# CONFIG_USB_NET_NET1080 is not set    
# CONFIG_USB_NET_CDC_SUBSET is not set    
# CONFIG_USB_NET_ZAURUS is not set    
CONFIG_BCMDHD=y    
CONFIG_BCMDHD_SDIO=y    
CONFIG_BCMDHD_FW_PATH="/lib/firmware/bcm/fw_bcmdhd.bin"    
CONFIG_BCMDHD_NVRAM_PATH="/lib/firmware/bcm/bcmdhd.cal"    
CONFIG_HOSTAP=y    
CONFIG_IWLWIFI=y    这是目前主流Intel无线网卡的驱动.此驱动依赖于二进制uCode微代码,它通常被安装到"/lib/firmware"目录,不过你最好亲自用眼睛检查一下"/etc/hotplug/firmware.agent"脚本中的"FIRMWARE_DIR"变量的设置是否正确.
CONFIG_IWLMVM=y    DVM固件支持(这也是当前唯一可用的固件).选"Y/M".
CONFIG_IWL4965=y    
CONFIG_RTL8188EU=y    
CONFIG_RTL8188EU_V4324=y    
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set    
CONFIG_INPUT_EVDEV=y    将所有的输入设备事件都通过"/dev/input/eventX"以一种通用的方式进行处理.Xorg需要使用此接口.不确定的选"Y".
CONFIG_INPUT_EVBUG=m    将所有输入设备的动作(键盘按下,鼠标移动等)都记录到系统日志当中.主要用于调试,同时也会带来安全漏洞(键盘输入中很可能包含你的密码).选"N".
CONFIG_KEYBOARD_GPIO=y    
CONFIG_KEYBOARD_IMX=y    
CONFIG_MOUSE_PS2=m    标准的两键或三键的PS/2鼠标,同时兼容Microsoft/Logitech/Genius生产的带有滚轮或者额外按键的PS/2鼠标.使用Synaptics/ALPS/Elantech触摸板的用户还可以看看其专用的X驱动,这些驱动可以提供更多的高级功能.使用USB鼠标的可以选"N".其下的子项是针对各厂商特定产品的扩展协议支持.按需选择即可.[提示]除了台式机PS/2接口上的鼠标外,许多笔记本的触摸板其实也是PS/2鼠标.
CONFIG_MOUSE_PS2_ELANTECH=y    
CONFIG_INPUT_TOUCHSCREEN=y    触摸屏输入设备
CONFIG_TOUCHSCREEN_IMX6UL_TSC=y    
CONFIG_TOUCHSCREEN_EDT_FT5X06=y    
CONFIG_TOUCHSCREEN_MYTS_FT5X0X=y    
CONFIG_TOUCHSCREEN_TSC2007=y    
CONFIG_INPUT_MISC=y    其他杂项输入设备
CONFIG_INPUT_MMA8450=y    
CONFIG_INPUT_ISL29023=y    
CONFIG_INPUT_MPL3115=y    
CONFIG_SENSOR_FXLS8471=y    
CONFIG_SERIO_SERPORT=m    RS232串口(COM).串口鼠标,游戏杆,6自由度摇杆等设备都依赖于它.
# CONFIG_LEGACY_PTYS is not set    
# CONFIG_DEVKMEM is not set    
CONFIG_SERIAL_IMX=y    
CONFIG_SERIAL_IMX_CONSOLE=y    
CONFIG_SERIAL_FSL_LPUART=y    
CONFIG_SERIAL_FSL_LPUART_CONSOLE=y    
CONFIG_FSL_OTP=y    
# CONFIG_I2C_COMPAT is not set    
CONFIG_I2C_CHARDEV=y    I2C设备通常都是由内核控制的,但此选项可以向用户空间提供I2C设备接口,以允许用户空间的程序通过/dev/i2c-*字符设备文件使用I2C总线.详情参见"Documentation/i2c/dev-interface"文档.不确定的选"N".
# CONFIG_I2C_HELPER_AUTO is not set    
CONFIG_I2C_ALGOPCF=m    
CONFIG_I2C_ALGOPCA=m    
CONFIG_I2C_GPIO=y    
CONFIG_I2C_IMX=y    
CONFIG_SPI=y    串行外设接口(Serial Peripheral Interface)是一种标准的四线同步双向串行总线.SPI类似于I2C,但比I2C的"2线"稍微复杂一些,SPI需要4个引脚("4线"),不但传输速率比I2C更高,还能实现全双工通信.大多数SPI设备不支持动态设备检测,有些甚至是只读或者只写的.SPI常用于微控制器(Microcontroller)与外围设备(RTC,传感器,EEPROM,FLASH,解/编码器,模数转换器,数字信号处理器)之间的通信,MMC和SD卡也可以通过SPI协议访问,而MMC接口的DataFlash卡则必须通过SPI才能访问.仅用于嵌入式环境,PC平台上没有这样的设备.
CONFIG_SPI_GPIO=y    为GPIO设备添加sysfs接口.主要用于调试和问题排查.不确定的选"N".
CONFIG_SPI_IMX=y    
CONFIG_SPI_SPIDEV=y    
CONFIG_GPIO_SYSFS=y    为GPIO设备添加sysfs接口.主要用于调试和问题排查.不确定的选"N".
CONFIG_GPIO_MAX732X=y    
CONFIG_GPIO_74X164=y    
CONFIG_POWER_SUPPLY=y    允许用户空间程序通过sysfs/uevent接口对电源(电池,交流电,USB)进行监控.建议选"Y".
CONFIG_SENSORS_MAX17135=y    
CONFIG_SENSORS_MAG3110=y    
CONFIG_THERMAL=y    为ACPI规范中定义的"thermal"(发热控制)提供一个通用的sysfs接口,以方便与诸如温度传感器和风扇之类的设备通信.由于目前所有PC和服务器都已支持ACPI,并且发热控制也越来越重要,所以建议选"Y".详情参见"Documentation/thermal/sysfs-api.txt"文档.
CONFIG_CPU_THERMAL=y    通用的CPU降温机制(通过降低频率来实现,而不是通过ACPI接口).显然通过ACPI接口是更好的机制,所以建议选"N".
CONFIG_IMX_THERMAL=y    
CONFIG_DEVICE_THERMAL=y    
CONFIG_WATCHDOG=y    选"Y"并选中下面相应的驱动之后,再创建一个主/次设备号为10/130的字符设备"/dev/watchdog",即可拥有一只看门狗.其工作原理是:当/dev/watchdog设备被打开后,如果喂狗守护进程超过60秒没有喂狗(写入"/dev/watchdog"),那么底层的看门狗硬件将会触发整个机器硬重启(相当于按下面板上的"RESET"按钮).这对于提高服务器的在线率来说意义重大.详情参见"Documentation/watchdog/watchdog-api.txt"文档.
CONFIG_IMX2_WDT=y    
CONFIG_MFD_DA9052_I2C=y    
CONFIG_MFD_MC13XXX_SPI=y    
CONFIG_MFD_MC13XXX_I2C=y    
CONFIG_MFD_MAX17135=y    
CONFIG_MFD_SI476X_CORE=y    
CONFIG_MFD_STMPE=y    
CONFIG_REGULATOR=y    通用的电压与电流调节器框架.除了提供通用的电压与电流调节接口外,还能通过sysfs向用户空间提供电压与电流的状态信息.目的在于通过动态调节电压和电流,降低能耗,延长电池寿命.建议笔记本用户选"Y".
CONFIG_REGULATOR_FIXED_VOLTAGE=y    
CONFIG_REGULATOR_ANATOP=y    
CONFIG_REGULATOR_GPIO=y    
CONFIG_MEDIA_SUPPORT=y    多媒体设备:摄像头,视频采集,模拟电视,数字电视,机顶盒,收音机,遥控器,数字视频广播(DVB)...内核多媒体子系统由LinuxTV项目负责维护.
CONFIG_MEDIA_CAMERA_SUPPORT=y    摄像头,视频采集卡
CONFIG_MEDIA_RADIO_SUPPORT=y    AM/FM无线电接收机和发射机,包括那些带有收音机功能的电视卡
CONFIG_MEDIA_RC_SUPPORT=y    基于红外线/射频的遥控器,用于控制视频采集卡或者电视卡.大多数电视卡和视频采集卡都需要它的支持,即使这些卡实际并不需要遥控器.
CONFIG_RC_DEVICES=y    各种遥控器产品.其下子项按实际的厂商和型号选择即可.
CONFIG_IR_GPIO_CIR=y    
CONFIG_MEDIA_USB_SUPPORT=y    各种USB总线的多媒体设备
CONFIG_USB_VIDEO_CLASS=m    UVC(USB Video Class)是一个开放的通用USB视频捕获标准.目前大多数摄像头都是UVC摄像头,也就是俗称的"免驱摄像头".所有符合UVC规格的硬件都可以使用通用UVC驱动程序,而无需再使用专用驱动.
CONFIG_MEDIA_PCI_SUPPORT=y    各种PCI/PCIe总线的多媒体设备
CONFIG_V4L_PLATFORM_DRIVERS=y    特定于平台的V4L(Video For Linux)设备,这些设备不是通过USB/PCI这样的总线连接的.一般用于单片机之类的嵌入式环境.
CONFIG_VIDEO_MXC_OUTPUT=y    
CONFIG_VIDEO_MXC_CAPTURE=y    
CONFIG_MXC_CAMERA_OV5640=m    
CONFIG_MXC_CAMERA_OV5642=y    
CONFIG_MXC_CAMERA_OV5640_MIPI=m    
CONFIG_MXC_TVIN_ADV7180=m    
CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=y    
CONFIG_VIDEO_MXC_IPU_OUTPUT=y    
CONFIG_VIDEO_MXC_PXP_V4L2=y    
CONFIG_VIDEO_MXC_CSI_CAMERA=m    
CONFIG_MXC_VADC=m    
CONFIG_MXC_MIPI_CSI=m    
CONFIG_MXC_CAMERA_OV5647_MIPI=m    
CONFIG_SOC_CAMERA=y    所谓"SoC Camera"是指那些不通过PCI或USB总线连接的摄像头(例如通过I2C直接与SoC数据总线连接).此选项为这类摄像头提供了通用的支持.
CONFIG_VIDEO_MX3=y    
CONFIG_V4L_MEM2MEM_DRIVERS=y    使用系统内存作为源和目标缓存(Memory-to-memory)的多媒体设备.一般的采集输出驱动仅将系统内存用于源或目标缓存之一.不确定的选"N".
CONFIG_VIDEO_CODA=y    
CONFIG_RADIO_SI476X=y    
CONFIG_SOC_CAMERA_OV2640=y    
CONFIG_DRM=y    GART(图形地址重映射表)可以看做一种被各种显卡(不只是AGP显卡,还包括PCI-E显卡与集成显卡以及核心显卡)使用的"伪IOMMU"(参见CONFIG_GART_IOMMU选项),它将物理地址不连续的系统内存映射成连续的"显存"供GPU使用.当物理显存容量不够时(大多数集成显卡甚至根本没有物理显存),GART允许通过DMA(直接内存访问)方式将这部分"显存"用于纹理贴图,Z轴缓冲,ALPHA混合,多边形网格生成...等各种3D操作.如果没有GART支持,OpenGL直接渲染将会变得特别慢.GLX与DRI(CONFIG_DRM)也依赖于此.简而言之,需要使用图形化界面的人都应该选"Y".不需要图形界面的用户应该选"N".[注意]对于使用304或更老版本的nVidia闭源驱动的用户,如果使用的是某些老旧的芯片组,那么此处应该选"N".因为在这些特定的芯片组上,闭源驱动自己的agpgart实现(NvAGP)是更好的选择.[提示]老版本的AMD/ATI/NVIDIA闭源驱动都曾经有自己的agpgart实现,但在新版本中都已经被移除.而Intel显卡一直使用的都是内核的agpgart实现.
CONFIG_DRM_VIVANTE=y    
CONFIG_FB=y    帧缓冲(framebuffer)设备(/dev/fb*)是一种对图形硬件的抽象,它把屏幕上的所有像素点都直接映射到一段线性的内存空间,这样就为软件提供了访问图形硬件的统一接口,这些软件不需要了解硬件的底层细节(例如寄存器),只要简单的改变相应内存位置的值,就能改变屏幕上显示的内容(颜色/亮度等).Xorg的高度可移植性也就根源于此.图形界面用户必选.
CONFIG_FB_MXS=y    
CONFIG_BACKLIGHT_LCD_SUPPORT=y    背光与液晶支持.
CONFIG_LCD_CLASS_DEVICE=y    液晶(LCD)底层控制框架.用于控制对比度和LCD开关(而不是背光亮度).选中此项后还需要从子项中选择特定于硬件的驱动.这些LCD硬件目前仅用于智能手机/平板电脑等嵌入式环境.
CONFIG_LCD_L4F00242T03=y    
CONFIG_LCD_PLATFORM=y    
CONFIG_BACKLIGHT_CLASS_DEVICE=y    背光(Backlight)底层控制框架.用于控制背光源的亮度和开关.选中此项后还需要从子项中选择特定于硬件的驱动.
CONFIG_BACKLIGHT_PWM=y    液晶显示器(包括台式机和笔记本)的背光亮度调整方式有两种:(1)PWM调光,(2)非PWM调光.目前主流的液晶显示器基本上都是PWM调光,仅有少数是非PWM调光型号(而且越来越少).
CONFIG_FB_MXC_SYNC_PANEL=y    
CONFIG_FB_MXC_LDB=y    
CONFIG_FB_MXC_MIPI_DSI=y    
CONFIG_FB_MXC_MIPI_DSI_SAMSUNG=y    
CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y    
CONFIG_FB_MXC_HDMI=y    
CONFIG_FB_MXS_SII902X=y    
CONFIG_FB_MXC_DCIC=y    
CONFIG_HANNSTAR_CABC=y    
CONFIG_FRAMEBUFFER_CONSOLE=y    基于Framebuffer的控制台驱动.KMS特性依赖于它.桌面用户建议开启(使用了CONFIG_DRM_*的用户必须开启)
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y    选"Y"表示自动将控制台映射到"主"显卡,选"N"表示自动将控制台映射到第一个加载的显卡驱动.无论是否选中此项,都可以通过"fbcon=map:N"内核引导参数更改映射关系.仅在系统拥有多个显卡时此选项才有意义.参见"Documentation/fb/fbcon.txt"文档.
CONFIG_LOGO=y    启动时显示linux的logo(一幅企鹅图像),企鹅的数量表示内核检测到的CPU数目,喜欢炫一下的就选吧.子项是三种不同质量的图片,分别是黑白,16色,224色.按需选择.
CONFIG_SOUND=y    声卡支持
CONFIG_SND=y    ALSA(高级Linux声音架构)是内核默认的声音子系统.ALSA除了提供了声音设备的驱动,还提供了一个用户空间的函数库,这样用户空间程序就可以通过统一的API使用驱动功能,而不必直接与内核驱动交互.[吐槽]Linux音频系统,比意大利面条更混乱的系统!

CONFIG_SND_USB_AUDIO=m
CONFIG_SND_SOC=y #SoC系统音频设备支持,重点是节能支持.仅用于嵌入式设备
CONFIG_SND_SOC_FSL_ASRC=y
CONFIG_SND_SOC_FSL_ESAI=y
CONFIG_SND_IMX_SOC=y
CONFIG_SND_SOC_EUKREA_TLV320=y
CONFIG_SND_SOC_IMX_WM8960=y
CONFIG_SND_SOC_IMX_WM8962=y
CONFIG_SND_SOC_IMX_MQS=y
CONFIG_SND_SOC_IMX_SPDIF=y
CONFIG_SND_SOC_IMX_HDMI=y
CONFIG_SND_SOC_IMX_SI476X=y
CONFIG_SND_SOC_CS42XX8_I2C=y
CONFIG_USB=y #主机端(Host-side)USB支持.通用串行总线(USB)是一个串行总线子系统规范,它比传统的串口速度更快并且特性更丰富(供电,热插拔,最多可接127个设备等),其目标是统一PC外设接口.USB总体上呈现一种树型结构,USB的"Host"(主设备)被称为"根"(也可以理解为是主板上的USB控制器),USB的"Slave"(从设备)被称为"叶子",而内部的节点则称为"hub"(集线器).只要使用任何USB设备都必须选中此项.另外,你还需要从下面选中至少一个HCD(Host Controller Driver),比如适用于USB1.1的"UHCI HCD support"或"OHCI HCD support",适用于USB2.0的"EHCI HCD (USB 2.0) support".如果你拿不准的话把他们都选中一般也不会出问题.如果你的系统有设备端的USB接口(也就是你的系统可以作为"叶子"使用),请到"USB Gadget"中进行选择.
CONFIG_USB_OTG_WHITELIST=y #将"otg_whitelist.h"文件用作"OTG Targeted Peripherals List"(外设白名单),白名单之外的USB外设将按照OTG规范的要求不被枚举(也就是初始化).同样,"Embedded Host"也只支持限定的外设.如果选"N",那么白名单之外的外设也同样会被枚举(但会产生一个警告),这将大大方便嵌入式产品的开发.
CONFIG_USB_OTG_FSM=y
CONFIG_USB_EHCI_HCD=y #EHCI(Enhanced Host Controller Interface)就是渐成昨日黄花的USB2.0(HighSpeed USB)主机控制器规范.[提示]因为EHCI通过"Companion"模式来支持USB1.1设备,所以一般还需要额外再开启OHCI或UHCI选项(除非你不想兼容任何USB1.1设备).详见"Documentation/usb/ehci.txt"文档.
CONFIG_USB_EHCI_MXC=y
CONFIG_USB_HCD_TEST_MODE=y
CONFIG_USB_ACM=y #USB接口的猫或ISDN适配器,基本没人用的东西.
CONFIG_USB_STORAGE=y
CONFIG_USB_CHIPIDEA=y #基于ChipIdea silicon IP核的USB2.0控制器.仅用于嵌入式环境.
CONFIG_USB_CHIPIDEA_UDC=y
CONFIG_USB_CHIPIDEA_HOST=y #
CONFIG_USB_SERIAL=y #USB-串口转换支持:(1)USB-串口转换器,(2)连接在USB口上的串口设备.详情参见"Documentation/usb/usb-serial.txt"文档.不确定的选"N"
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_FTDI_SIO=y
CONFIG_USB_SERIAL_PL2303=y
CONFIG_USB_SERIAL_OPTION=y
CONFIG_USB_EHSET_TEST_FIXTURE=y
CONFIG_NOP_USB_XCEIV=y
CONFIG_USB_MXS_PHY=y #
CONFIG_USB_GADGET=y #USB是一个主/从协议,一个主机最多控制127个外设,其结构是非对称的,所以你无法把一个"到主机"的插头连接到外设上.Linux既可以在USB主机上运行,也可以在USB外设上运行.外设USB控制器可以是单独的芯片,也可以是集成在CPU中的微控制器,而常见的主机端控制器通常集成在芯片组的南桥中(xHCI/EHCI/OHCI/UHCI).如果你打算在外设中运行Linux,那么就必须开启此项,然后还需要为外设段的总线控制器配置一个硬件驱动,以及一个用于外设协议的"配件驱动".不过对于大多数人来说,并不将Linux运行于外设端,因此可以放心的选"N".仅那些嵌入式设备(例如智能手机)上运行的Linux才可能由此需求.
CONFIG_USB_CONFIGFS=m
CONFIG_USB_CONFIGFS_SERIAL=y
CONFIG_USB_CONFIGFS_ACM=y
CONFIG_USB_CONFIGFS_OBEX=y
CONFIG_USB_CONFIGFS_NCM=y
CONFIG_USB_CONFIGFS_ECM=y
CONFIG_USB_CONFIGFS_ECM_SUBSET=y
CONFIG_USB_CONFIGFS_RNDIS=y
CONFIG_USB_CONFIGFS_EEM=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_CONFIGFS_F_LB_SS=y
CONFIG_USB_CONFIGFS_F_FS=y
CONFIG_USB_ZERO=m
CONFIG_USB_ETH=m
CONFIG_USB_G_NCM=m
CONFIG_USB_GADGETFS=m
CONFIG_USB_MASS_STORAGE=m
CONFIG_USB_G_SERIAL=m
CONFIG_MMC=y #MMC(MultiMediaCard)/SD(Secure Digital)/SDIO(Secure Digital I/O)主机控制器
CONFIG_MMC_UNSAFE_RESUME=y #假定在系统休眠的过程中,所有MMC/SD/SDIO卡依然插在各自的插槽上没有变动.也许只有嵌入式系统才可以做这样的假定.不确定的选"N".参见CONFIG_USB_DEFAULT_PERSIST选项.
CONFIG_MMC_SDHCI=y #通用SD主控支持.笔记本电脑上用的SD主控(TI(德州仪器)/Ricoh(理光)/Toshiba(东芝)等厂商)基本上都是这个驱动.选中此项后,还需要选中相应的总线驱动(见下,通常是CONFIG_MMC_SDHCI_PCI).
CONFIG_MMC_SDHCI_PLTFM=y #基于platform总线和OpenFirmware的SD主控.
CONFIG_MMC_SDHCI_ESDHC_IMX=y
CONFIG_MXC_IPU=y
CONFIG_MXC_GPU_VIV=y
CONFIG_MXC_IPU_V3_PRE=y
CONFIG_MXC_HDMI_CEC=y
CONFIG_MXC_MIPI_CSI2=y
CONFIG_MXC_SIM=y
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_ONESHOT=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_BACKLIGHT=y
CONFIG_LEDS_TRIGGER_GPIO=y #
CONFIG_RTC_CLASS=y #通用RTC(实时时钟)类支持.所有的PC机主板都包含一个电池动力的实时时钟芯片,以便在断电后仍然能够继续保持时间,RTC通常与CMOS集成在一起,因此BIOS可以从中读取当前时间(精度一般是秒级).选中此项后你就可以在操作系统中使用一个或多个RTC设备(你还必须从下面启用一个或多个RTC接口).[注意]Clock与Timer没有任何关系,Timer是定时器(用于计量时长),Clock是时钟(用于记录当前的时刻"年-月-日 时:分:秒")
CONFIG_RTC_INTF_DEV_UIE_EMUL=y #如果底层rtc芯片驱动没有提供RTC_UIE就仿真一个RTC_UIE.选"N",除非你确实知道自己在做什么.
CONFIG_RTC_DRV_ISL1208=y
CONFIG_RTC_DRV_SNVS=y
CONFIG_DMADEVICES=y #DMA引擎(DMA Engine)可以看做是传统DMA控制器(DMA controller)的新生.在DMA引擎的协助下,CPU只需初始化一个传输动作,其余的动作就可以由DMA引擎独立完成(完成后以中断的方式通知CPU),
                    #这对于高速传输大量数据以及"分散-收集"操作大有益处,可以节约大量的CPU资源(有时也可节约大量的内存操作).目前主要用于:(1)卸载高速网络栈中的内存COPY操作,(2)加速CONFIG_MD_RAID456驱动中的RAID操作.
                    #"DMA引擎"只是一个统称,在不同场合对应着不同的技术,例如Intel I/OAT(PC平台)和AHB(嵌入式).[提示]历史上,ISA架构的电脑都有一个专用的"DMA控制器"(最常见的是Intel 8237),但是到了PCI架构,由于每一个PCI设备都可以控制PCI总线(成为"bus master")并直接读写系统内存,所以虽然DMA的操作方式依然存在,但是"DMA控制器"却消失了.现在新生的"DMA引擎"目前仍然主要出现在Intel的高端芯片上.
CONFIG_MXC_PXP_V2=y
CONFIG_MXC_PXP_V3=y
CONFIG_IMX_SDMA=y
CONFIG_MXS_DMA=y
CONFIG_STAGING=y #尚在开发中或尚未完成的,目前尚不完善的驱动,切勿用于生产环境.仅供测试人员或者开发者试用.
CONFIG_STAGING_MEDIA=y 
# CONFIG_IOMMU_SUPPORT is not set 
CONFIG_IIO=y #IIO子系统为各种不同总线(i2c,spi,等)的嵌入式传感器驱动提供了一个统一的框架.例如:(1)模数转换器,(2)加速度传感器,(3)陀螺仪,(4)惯性测量仪,(5)电容-数字转换器,(6)压力/温度/光线传感器,等等.主要用于工业领域和嵌入式领域.不确定的选"N".
CONFIG_VF610_ADC=y
CONFIG_AD2802A=y #
CONFIG_PWM=y #PWM(脉宽调制)是将模拟信号转换为脉波的一种技术.在计算机领域,这项技术常被用于控制风扇转速和背光显示器的亮度.很多微型处理器内部都包含有PWM控制器,此选项为所有PWM控制器驱动提供了一个统一的框架.主要用于嵌入式环境.不确定的选"N".
CONFIG_PWM_IMX=y
CONFIG_EXT2_FS=y #Ext2文件系统,无日志.详见"Documentation/filesystems/ext2.txt"文档.
CONFIG_EXT2_FS_XATTR=y #Ext2文件系统扩展属性(与inode关联的name:value对)支持.详见attr手册.不确定的选"N".
CONFIG_EXT2_FS_POSIX_ACL=y #POSIX ACL(访问控制列表)支持,这是一种超越"owner/group/world"的权限管理方式,可以更精细的针对每个用户进行访问控制.详见acl手册.不确定的选"N".
CONFIG_EXT2_FS_SECURITY=y #"安全标签"允许选择使用不同安全模块(如SELinux)实现的访问控制模型,如果你没有使用需要扩展属性的安全模块,可以选"N".
CONFIG_EXT3_FS=y #Ext3日志型文件系统.详见"Documentation/filesystems/ext3.txt"文档.
CONFIG_EXT3_FS_POSIX_ACL=y #POSIX ACL(访问控制列表)支持,这是一种超越"owner/group/world"的权限管理方式,可以更精细的针对每个用户进行访问控制.详见acl手册.不确定的选"N".
CONFIG_EXT3_FS_SECURITY=y #"安全标签"允许选择使用不同安全模块(如SELinux)实现的访问控制模型,如果你没有使用需要扩展属性的安全模块,可以选"N".
CONFIG_EXT4_FS=y #Ext4日志型文件系统.详见"Documentation/filesystems/ext4.txt"文档.
CONFIG_EXT4_FS_POSIX_ACL=y #POSIX ACL(访问控制列表)支持,这是一种超越"owner/group/world"的权限管理方式,可以更精细的针对每个用户进行访问控制.详见acl手册.不确定的选"N".
CONFIG_EXT4_FS_SECURITY=y #"安全标签"允许选择使用不同安全模块(如SELinux)实现的访问控制模型,如果你没有使用需要扩展属性的安全模块,可以选"N".
CONFIG_QUOTA=y #通用的磁盘配额支持(限制某个用户或者某组用户的磁盘占用空间).需要配合quota-tools工具使用.
CONFIG_QUOTA_NETLINK_INTERFACE=y #通过netlink接口报告QUOTA的警告信息(例如"到达限额").不确定的选"Y".
# CONFIG_PRINT_QUOTA_WARNING is not set
CONFIG_AUTOFS4_FS=y #新的内核按需自动加载远程文件系统的支持(也支持v3).此特性需要配合用户空间工具(autofs)使用,并且需要开启NFS文件系统支持.如果你的计算机不是大型分布式网络的一部分,你应该不会需要此功能.
CONFIG_FUSE_FS=y #FUSE允许在用户空间实现一个全功能的文件系统,还有一个与之对应的libfuse2库和相关工具.详见"Documentation/filesystems/fuse.txt"文档.如果你打算开发一个自己的文件系统或者使用一个基于FUSE的文件系统(例如NTFS-3G或ZFS-FUSE),可以选"Y".
CONFIG_ISO9660_FS=m #ISO9660是所有CD/DVD光盘通用的标准文件系统.建议选"Y".详见"Documentation/filesystems/isofs.txt"文档.
CONFIG_JOLIET=y #Microsoft对ISO9660文件系统的Joliet扩展,允许在文件名中使用Unicode字符,也允许长文件名.建议选"Y".
CONFIG_ZISOFS=y #Linux对ISO9660文件系统的扩展,允许将数据透明的压缩存储在CD上.使用并不广泛,不确定的可以选"N".
CONFIG_UDF_FS=m #UDF的目标是取代ISO9660,现已经广泛地用于大容量DVD光盘上(特别是刻录盘).建议选"Y".详见"Documentation/filesystems/udf.txt"文档.
CONFIG_MSDOS_FS=m #古老的MSDOS文件系统(FAT16),基本绝种了
CONFIG_VFAT_FS=y #从Win95开始使用的VFAT文件系统(FAT32).如果你要使用基于UEFI平台的电脑,并且使用GPT磁盘分区,则必须选"Y".详见"Documentation/filesystems/vfat.txt"文档.
CONFIG_TMPFS=y #tmpfs文件系统(以前叫shm[共享内存]文件系统),大多数系统的正常运行都依赖于它(例如Udev使用的"/dev/"目录通常挂载为tmpfs).选"Y",除非你知道自己在做什么.详见"Documentation/filesystems/tmpfs.txt"文档.
# CONFIG_MISC_FILESYSTEMS is not set
CONFIG_NFS_FS=y  #NFS(Network File System)客户端支持,这样就可以使用nfs-utils包中的mount.nfs工具挂载远程服务器提供的NFS文件系统.详见nfs手册页.
CONFIG_NFS_V3_ACL=y #为NFSv3添加POSIX ACL支持(Solaris NFSv3 ACL).大多数NFS服务器都不支持这个扩展.不确定的选"N".s
CONFIG_NFS_V4=y #NFSv4(RFC 3530)版本协议支持
CONFIG_ROOT_NFS=y #允许将NFS挂载为根文件系统(root=/dev/nfs),通常用于没有本地存储设备的无盘工作站(还必须开启CONFIG_IP_PNP以及至少一个子项).详见"Documentation/filesystems/nfs/nfsroot.txt"文档.
CONFIG_NLS_DEFAULT="cp437" #挂载文件系统时,控制台的默认本地语言(不是文件系统用于存储文件名的语言),建议设为"utf8"(因为控制台的默认编码是"utf8":vt.default_utf8=1).
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_15=m
CONFIG_NLS_UTF8=y #
CONFIG_DEBUG_FS=y    #debugfs是内核开发者用来存储调试信息的虚拟文件系统.不搞内核开发就别选
CONFIG_MAGIC_SYSRQ=y #开启"魔法键"(SysRq)支持(可以通过"echo 0 > /proc/sys/kernel/sysrq"关闭).由于SysRq会带来安全隐患(允许未经登录的操作),所以你应该仅在确实需要的场合开启.更多详情参见"Documentation/sysrq.txt"文档
# CONFIG_SCHED_DEBUG is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_FTRACE is not set
CONFIG_CORESIGHT=y
CONFIG_CORESIGHT_LINK_AND_SINK_TMC=y
CONFIG_CORESIGHT_SINK_TPIU=y #
CONFIG_CORESIGHT_SINK_ETBV10=y #
CONFIG_CORESIGHT_SOURCE_ETM3X=y #
CONFIG_SECURITYFS=y  #securityfs安全文件系统支持.当前仅被TPM bios字符设备驱动以及IMA(完整性提供者)使用.它与SELinux或SMACK之类没有关系.不确定的选"N".
CONFIG_CRYPTO_USER=y #用户空间加密实例配置.不确定的选"N
CONFIG_CRYPTO_TEST=m  #丑陋的加密测试模块.仅供调试使用
CONFIG_CRYPTO_GCM=y    #GCM(Galois/Counter Mode)与GMAC(Galois Message Authentication Code)支持.IPsec需要它.[注释]GCM是一种对称加密算法的块密码工作模式,使用128位块大小.块密码工作模式可以分为加密模式,认证模式,认证加密模式.GCM模式为认证模式的一种,提供认证和加密两种功能.
CONFIG_CRYPTO_CBC=y    #块密码工作模式:密码分组链接(Cipher Block Chaining)模式.IPSec需要它.
CONFIG_CRYPTO_CTS=y #块密码工作模式:密文窃取(Cipher Text Stealing)模式.Kerberos gss机制支持的AES加密需要它
CONFIG_CRYPTO_LRW=y    #块密码工作模式:LRW(Liskov Rivest Wagner)模式.这个模式以三个人名命名.这是一种小数据块加密模式,加密后的数据保持与明文数据同样的长度,专门用于CONFIG_DM_CRYPT模块加密磁盘区块(使用"aes-lrw-benbi"指定).
CONFIG_CRYPTO_XTS=y    #块密码工作模式:XTS模式.这是IEEE1619/D16规范制定的一种小数据块加密模式,加密后的数据保持与明文数据同样的长度,专门用于加密磁盘区块(使用"aes-xts-plain"指定
CONFIG_CRYPTO_MD4=y #老旧的MD4(RFC1320)摘要算法,已经被淘汰.
CONFIG_CRYPTO_MD5=y    #广泛使用的MD5(RFC1321)摘要算法,128位.已经被发现可以快速找到碰撞,正逐渐淘汰中.
CONFIG_CRYPTO_RMD128=y #RIPEMD-128(ISO/IEC 10118-3:2004)128位摘要算法.安全性不高,不建议使用.
CONFIG_CRYPTO_RMD160=y #RIPEMD-160(ISO/IEC 10118-3:2004)160位摘要算法.是替代各种128位摘要算法(RIPEMD-128,MD5,MD4)的首选.其运算速度和SHA1相当,但是目前尚无已知有效的攻击方法.
CONFIG_CRYPTO_RMD256=y #RIPEMD-256在本质上和RIPEMD-128是一样的.因为RIPEMD的设计者们根本就没有真正设计256和320位这两种标准,他们只是在128位和160位的基础上,修改了初始参数和s-box来达到输出为256和320位的目的.所以,256位的强度和128相当,而320位的强度和160位相当.
CONFIG_CRYPTO_RMD320=y #RIPEMD-320在本质上和RIPEMD-160是一样的.因为RIPEMD的设计者们根本就没有真正设计256和320位这两种标准,他们只是在128位和160位的基础上,修改了初始参数和s-box来达到输出为256和320位的目的.所以,256位的强度和128相当,而320位的强度和160位相当.
CONFIG_CRYPTO_SHA512=y #SHA-384和SHA-512摘要算法,速度大约只有SHA1的40-50%,都属于"SHA-2"系列,目前尚无已知的有效攻击方法.但并未被广泛使用.
CONFIG_CRYPTO_TGR192=y #Tiger号称是最快的哈希算法,专门为64位机器做了优化.
CONFIG_CRYPTO_WP512=y #Whirlpool是一种512位的摘要算法,利用了已有的AES分组密码算法构造Hash函数,拥有相当高的安全性,已经被列入了ISO标准,目前最新版本为3.0(2003年发布)
CONFIG_CRYPTO_BLOWFISH=y #Blowfish对称加密算法,一种又老又慢的对称加密算法.
CONFIG_CRYPTO_CAMELLIA=y #Camellia是欧盟NESSIE项目的选定算法,也是日本CRYPTREC项目的推荐算法.可以使用128/192/256位密钥,具有与AES同等级的安全强度及运算速度
CONFIG_CRYPTO_DES=y #老旧的DES和三重DES对称加密算法.
CONFIG_CRYPTO_TWOFISH=y #Twofish是派生自Blowfish的对称加密算法,曾经是AES的最终5个候选算法之一,最终得票数第三
CONFIG_CRYPTO_DEFLATE=y #Deflate(RFC1951)无损数据压缩算法.当在IPSec中使用IPCOMP协议时才需要.
CONFIG_CRYPTO_LZO=y #LZO是致力于解压速度的一种无损数据压缩算法.
# CONFIG_CRYPTO_ANSI_CPRNG is not set
CONFIG_CRYPTO_DEV_FSL_CAAM=y
CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y
CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=y
CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=y
CONFIG_CRC_T10DIF=y #为内核树外的模块提供CRC循环验证算法支持.
                    #从而允许内核树外的SCSI模块利用T10/SCSI Data Integrity Field保障端到端的数据完整性.
CONFIG_CRC7=m #为内核树外的模块提供CRC7循环验证算法支持.
CONFIG_LIBCRC32C=m  #为内核树外的模块提供CRC32c循环验证算法支持
CONFIG_FONTS=y  #选择内嵌到内核中的字体(点阵字库,仅包含ASCII字符和扩展ASCII字符,共256个)
                #.选"N"表示内嵌自动选择的默认字体,选"Y"表示可以手动选择内嵌的字体.
                #[提示]可到drivers/video/console目录下找到相应的"font_*.c"文件,将其中的"0"全部替换为空格,
                #即可看到点阵字符.
CONFIG_FONT_8x8=y #这是传统上高分辨率(高于80x50)下使用的字体.因为点阵太小,所以显示的字体质量非常低劣.
CONFIG_FONT_8x16=y #这是传统上的标准字体(用于80x25),也是默认内嵌的字体,最为常见.建议选"Y".

禁用 内核调试 kdb

#未设置CONFIG_STRICT_KERNEL_RWX
CONFIG_FRAME_POINTER = y #仅供内核开发者使用
CONFIG_KGDB = y #仅供内核开发者使用
CONFIG_KGDB_SERIAL_CONSOLE = y
CONFIG_KGDB_KDB = y
CONFIG_KDB_KEYBOARD = y

Linux 内核配置项详解 myimx6相关推荐

  1. linux内核中断详解

    linux内核中断详解 1.中断的硬件触发流程 外设:如果外设有操作或者有数据可用,那么就会产生一个电信号,这个电信号发送给中断控制器. 中断控制器:中断控制器接收到外设发来的电信号以后,进行进一步的 ...

  2. linux内核参数详解 sysctl -a dns内核优化 dns优化 dnsmasq配置

    一 linux内核基础知识 原文:https://www.cnblogs.com/cnwcl/p/9811327.html sysctl 命令用于查看和修改内核参数 查看指定参数: sysctl ke ...

  3. linux 内核编译详解

    一.准备工作 准备工作如何做,这里就不详说了. a) 首先,你要有一台PC,装好了Linux. b) 安装好GCC(这个指的是host gcc,用于编译生成运行于pc机程序的).make.ncurse ...

  4. linux 内核 编译详解

    一.内核简介  内核,是一个操作系统的核心.它负责管理系统的进程.内存.设备驱动程序.文件和网络系统,决定着系统的性能和稳定性.  Linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可 ...

  5. linux内核编译详解

    不习惯读英文资料的非LINUX高手 声卡不响光驱不转连不上网等等,只要有问题就行 开发嵌入式操作系统 现在流行的ODL(only disk linux)中做内核部分,那些文章不介绍此点内容.我正在做 ...

  6. linux内核makefile详解,linux kernel编译Makefile和Kconfig,make menuconfig详解

    Sam需要看看2.6 kernel中USB Mouse的代码.顺便谈谈Kernel中Makefile和Kconfig文件的关系以及配合使用. 背景知识: 背景知识一:Kconfig介绍: 在#make ...

  7. 【转】Linux内核结构详解

    Linux内核主要由五个子系统组成:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信. 1.进程调度 (SCHED):控制进程对CPU的访问.当需要选择下一个进程运行时,由调度程序选择最值得运行 ...

  8. linux内核体系结构详解

    关于linux内核体系结构 说到操作系统,我们都会知道windows操作系统,linux操作系统,苹果的iOS操作系统,以前很火的塞班操作系统,还有最近消费类电子很火的Android操作系统.一个完整 ...

  9. linux内核参数详解

    kernel.acct acct功能用于系统记录进程信息,正常结束的进程都会在该文件尾添加对应的信息.异常结束是指重启或其它致命的系统问题,不能够记录永不停止的进程.该设置需要配置三个值,分别是: 1 ...

最新文章

  1. 亚马逊首席科学家李沐「实训营」国内独家直播,马上报名 !
  2. SDWebImage 在Swift中遇坑解决
  3. android sina oauth2.0 code认证,Android通过第三方登录理解oauth2.0机制
  4. LeetCode 100相同的树101对称二叉树
  5. 用Gridview和ObjectDataSource轻松实现自定义分页
  6. 开源题材征集 + MVCEF Core 完整教程小结
  7. python format函数实例_【Python】-String的Format格式规约函数及实例
  8. Subarray Sum K
  9. SpringCloud-网关gateway-zuul
  10. oracle 嵌套表 例子,什么是Oracle中的嵌套表对象?
  11. Windows XP64位系统与语言包下载
  12. 经典面试题 TCP和UDP有什么区别?
  13. dfuse 现在提供持币人的完整视图及其历史
  14. java 用0部补位_java 用0部补位
  15. 小米note4退出google账号
  16. MIP 问题解决方案大全(2018-06更新)
  17. Excel 自动画图表
  18. [SWPU2019]伟大的侦探1
  19. u盘固定盘符_浅析固定U盘盘符的原理
  20. AIRIOT物联网低代码平台如何配置三菱PLC驱动?

热门文章

  1. 获取微信小程序页面路径【保姆级教程】
  2. python代码怎么修改_python修改微信和支付宝步数的示例代码
  3. 深度分析红米note9和华为nova8哪个好-红米note9和华为nova8区别
  4. 安卓虚拟摄像头_iPhone 的第四颗摄像头位置,为什么给了激光雷达?
  5. 【BFS】营救铁达尼号(C++)
  6. Java中线程基础-线程间的共享-volatile
  7. 数据结构算法实现及例题
  8. 你是王者荣耀里的哪种程序员?来看看你的属性,是貂蝉还是吕布!
  9. Jenkins——Jenkins介绍+基于云平台的Jenkins安装和持续集成环境配置(插件+用户权限+凭据+Maven打包)
  10. .bat批处理命令的介绍