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

linux内核make menuconfig配置

时间:2022-07-09 09:30:00 a05环境传感器

1. 内容目录
1. Code maturity level options 2
2. General setup 常规安装选项 2
3. Loadable module support 引导模块支持 5
4. Block layer 6
5. Processor type and features 8
6. Power management options (ACPI,APM) 17
7. Bus options (PCI,PCMCIA,EISA,MCA,ISA) 总线选项 22
8. Executable file formats 24
9. Networking support 网络支持
10. Device Drivers 设备驱动 47
11. File systems 文件系统 82
12. Instrumentation Support 测试支持项目 86
13. Kernel hacking 内核调试
14. Security options 安全选项。88
15. Cryptographic options88.
16. Library routines 常规库






说明1:
文字中的Y表示选择进入内核。M表示编成模块。N表示不选择。有些人只能选择。Y,有的只能选M。
在make menuconfig 下,*表示Y,M表示M,空白表示N。
make xconfig下,√ 表示Y,? 表示M,空白表示N。


说明2:
你选择了菜单中的一些选项Y才出现,有的选了Y,它不会出现。有些选项根本不会提供选择。所以我提供的菜单不应该是最完整的选项。如果你遇到了一个新的选项,你可以仔细阅读它的英语描述,或者通过在线搜索、论坛问题和其他方式来理解它。




1. Code maturity level options
代码完成等级选项
1.1. Prompt for development and/or incomplete code/drivers
提示开发中或未完成的代码和驱动。
LINUX下的很多东西,比如网络设备、文件系统、网络协议等等,它们的功能、稳定性、或者测试等级等等还不能够符合大众化的要求,还处于开发之中。这就是所谓的阿尔法版本:最初开发版本;接下来的是BETA版本,公开测试版本。如果这是阿尔法版本,开发人员通常不允许它发布,以避免收到为什么它不工作等信件的麻烦。然而,积极测试和使用阿尔法版本对软件开发非常有益。你只需要明白,它可能工作得不好,在某些情况下可能会有问题。报告详细的错误对开发人员非常有帮助。
这个选项也可以使用一些旧的驱动程序。许多旧的驱动程序已经在未来的核心中被替换或删除。除非你想帮助软件测试,或开发软件,或者你的机器需要这些特性,否则你可以选择N,在配置菜单中,你会得到更少的选项。假如你选择了Y,您将获得更多的阿尔法版本驱动和代码配置菜单。
2. General setup 常规安装选项
2.1. Local version - append to kernel release
在你的核心后面添加一串字符来表示版本。这些字符是你用的uname -a 命令将显示。您的字符最多不得超过64位。
2.2. Automatically append version information to the version string (LOCALVERSION_AUTO)
版本信息自动生成。此选项将自动检测您的内核并生成相应的版本,以免与原始版本重复。Perl的支持。
由于编译命令make-kpkg我们会加入- - append-to-version 选项生成自定义版本,所以在这里选择N。
2.3. Support for paging of anonymous memory (swap)
这个选项将使您的核心支持虚拟内存,即使计算机似乎比实际内存有更多的内存空间来执行大程序。这个虚拟内存存在LINUX中就是SWAP分区。除非你不想要SWAP分区,否则这里必须选择Y。
2.4. System V IPC (IPC:Inter Process Communication)
中间过程连接是一组功能和系统调用,使过程同步和交换信息。这通常是一件好事,只有你选择了一些程序Y运行 。特别是,你想LINUX下运行 DOS你必须选择模拟程序Y。
你可以用info ipc 命令来理解IPC。
一定要选Y。
2.4.1. IPC Namespaces (IPC_NS)
IPC命名空间,命名空间的作用是区分同名的东西,如李宁和张宁,被称为宁,加一个姓来区分。该选项还为不同的服务器提供服务器IPC的多命名,达到一个IPC提供多对象支持的目的。如果不清楚,请选择N。
2.5. POSIX Message Queues
可移植操作系统接口信息队列IPC在通信队列中,有更高的优先级来保持通信畅通。如果你想编译和操作它Solaris操作系统上写的POSIX选择信息队列程序Y,还需要 mqueue 库支持这些特性。它作为文件系统存在(mqueue),你可以mount它。为了保证未来不同程序的协调稳定,如果不清楚,选择Y。
2.6. BSD Process Accounting BSD进程统计
如果你选Y,用户级程序可以通过特殊的系统调用通知内核将过程统计信息记录在文件中,当过程存在时,信息将被内核记录在文件中。信息通常包括建立时间、所有者、命令名称、内存使用、控制终端等。这对用户级程序非常有用。所以通常会选择Y是个好主意。
2.6.1. BSD Process Accounting version 3 file format
选Y,统计信息将以新的格式进行(V3)写入,包含过程ID和父进程。注意这种格式和以前的 v0/v1/v2 格式不兼容,需要升级相关工具使用。
2.7. Export task/process statistics through netlink (EXPERIMENTAL)
实验阶段的功能。通过通用网络输出工作/过程的相应数据和BSD不同的是,这些数据在进程运行的时候就可以通过相关命令访问。和BSD类似地,数据将在过程结束时发送到用户空间。如果不清楚,则选择N。
2.8. UTS Namespaces
通用终端系统的命名空间。它允许容器,如Vservers利用UTS命名空间为不同的服务器提供不同的服务器UTS。若不清楚,选择N。
2.9. Auditing support 审计支持(AUDIT)
允许审计的下层可用于其他核心系统,如SE-Linux,登录时需要此声音和视频输出。CONFIG_AUDITSYSCALL 系统无法调用时间(即下一个选项)。
2.9.1. Enable system-call auditing support (AUDITSYSCALL)
允许系统独立或通过其他核心子系统调用审计支持,如SE-Linux。使用此审计文件系统查看特性,请确保 INOTIFY 已设置。
最后一个子选项,两个选项。我不知道审计的意义,也许是为了调用其他核心的东西。所以我选择了它们,因为我的机器上有一个官方的2.6.15-27内核。
2.10. Kernel .config support
允许此选项.config文件(即编译)LINUX配置文件)保存在内核中。
它提供了正在运行或仍在硬盘中的内核的相关配置选项。通过内核镜像文件 kernel image file 用命令 script scripts/extract-ikconfig 提取作为当前内核重编译或另一个内核编译的参考。如果您的内核正在运行,可以通过/proc/config.gz阅读文件。下一个选项提供这个支持。
它看起来像一个很好的功能,可以编译 .config文件保存在内核中,供以后参考和调用。当用于重编和编译其他内核时,可以使用。如果你是一个编译内核的疯子,你应该选择这个(比如我,但我总是备份所有 .config 文件)。
2.10.1. Enable access to .config through /proc/config.gz
通过/proc/config.gz 访问当前内核的.config 。新功能,如果最后一项选择,这个选择。
2.11. Cpuset support
多CPU支持。这个选项可以让你建立和管理。CPU它可以动态地将系统分割在每个集群中CPU和内存节点中,在各个节点是独立运行的。这对大型的系统尤其有效。
若不清楚,选择N。
2.12. Kernel->user space relay support (formerly relayfs)
支持核心系统区域和用户区域的传输通信。该选项在特定的文件系统中提供数据传输接口支持,可以提供从核心空间到用户空间的大量数据传输工具和设施。
若不清楚,选择N。
2.13. Initramfs source file(s)
没有选项。
2.14. Optimize for size (Look out for broken compilers!) 
这个选项将在GCC命令后用 "-Os" 代替 "-O2"参数,这样可以得到更小的内核。警告:某些GCC版本会导致错误。如果有错,请升级你的GCC。 
如果不清楚,选N。 
这是优化内核大小的功能,没必要选。一个编译好的内核才7-10多M,大家不会少这么点空间吧。选上了可能会出一些问题。最好不选。 
2.15. Configure standard kernel features (for small systems) 
这个选项可以让内核的基本选项和设置无效或者扭曲。这是用于特定环境中的,它允许“非标准”内核。你要是选它,你一定要明白自己在干什么。 
这是为了编译某些特殊用途的内核使用的,例如引导盘系统。通常你可以不选择这一选项,你也不用关心他的子选项。 
3. Loadable module support 引导模块支持 
3.1. Enable loadable module support 
这个选项可以让你的内核支持模块,模块是什么呢?模块是一小段代码,编译后可在系统内核运行时动态的加入内核,从而为内核增加一些特性或是对某种硬件进行支持。一般一些不常用到的驱动或特性可以编译为模块以减少内核的体积。在运行时可以使用modprobe命令来加载它到内核中去(在不需要时还可以移除它)。一些特性是否编译为模块的原则是,不常使用的,特别是在系统启动时不需要的驱动可以将其编译为模块,如果是一些在系统启动时就要用到的驱动比如说文件系统,系统总线的支持就不要编为模块,否则无法启动系统。在启动时不用到的功能,编成模块是最有效的方式。你可以查看MAN手册来了解:modprobe, lsmod, modinfo, insmod 和 rmmod. 
如果你选了这项,你可能需要运行 "make modules_install" 命令来把模块添加到/lib/modules/目录下,以便 modprobe 可以找到它们。 
如果不清楚,选Y。 
3.2. Module unloading 
这个选项可以让你卸载不再使用的模块,如果不选的话你将不能卸载任何模块(有些模块一旦加载就不能卸载,不管是否选择了这个选项)。 
如果不清楚,选Y。 
3.2.1. Forced module unloading 
这个选项允许你强行卸除模块,即使内核认为这不安全。内核将会立即移除模块,而不管是否有人在使用它(用rmmod -f 命令)。这主要是针对开发者和冲动的用户提供的功能。 
如果不清楚,选N。 
3.3. Module versioning support (MODVERSIONS) 
有时候,你需要编译模块。有时候,你需要编译模块。选这项会添加一些版本信息,来给编译的模块提供独立的特性,以使不同的内核在使用同一模块时区别于它原有的模块。这有时可能会有点用。 
如果不清楚,选N。 
3.4. Source checksum for all modules 
这个功能是为了防止你在编译模块时不小心更改了内核模块的源代码但忘记更改版本号而造成版本冲突。 
如果不清楚,选N。 
3.5. Automatic kernel module loading 
允许内核自动加载模块。一般情况下,如果我们的内核在某些任务中要使用一些被编译为模块的驱动或特性时,我们要先使用modprobe命令来加载它,内核才能使用。不过,如果你选择了这个选项,在内核需要一些模块时它可以自动调用modprobe命令来加载需要的模块。 
如果不清楚,选Y。 
4. Block layer 
块设备。 
4.1. Enable the block layer (BLOCK) 
这选项使得块设备可以从内核移除。如果不选,那么 blockdev 文件将不可用,一些文件系统比如 ext3 将不可用。这个选项会禁止 SCSI 字符设备和 USB 储存设备,如果它们使用不同的块设备。 
选Y,除非你知道你不需要挂载硬盘和其他类似的设备。不过此项无可选项。 
4.1.1. Support for Large Block Devices (LBD) 
如果你要用大于2TB的硬盘,选这个。 
4.1.2. Support for tracing block io actions 
对块设备进行跟踪和分析的功能。 
4.1.3. Support for Large Single Files (LSF) 
大文件支持。如果你准备建的文件大于2TB,选这个。 
4.1.4. IO Schedulers 磁盘I/O调度器 
I/O是输入输出带宽控制,主要针对硬盘,是核心的必須的东西。这里提供了三个IO调度器。 
4.1.4.1. Anticipatory I/O scheduler 
抢先式 I/O 调度方式是默认的磁盘调度方式。它对于大多数环境通常是比较好的选择。但是它和Deadline I/O 调度器相比有点大和复杂,它有时在数据调入时会比较慢。 
4.1.4.2. Deadline I/O scheduler 
Deadline I/O调度器简单而又紧密,在性能上和抢先式调度器不相上下,在一些数据调入时工作得更好。至于在单进程I/O磁盘调度上,它的工作方式几乎和抢先式调度器相同,因此也是一个好的选择。 
看介绍这个好像比上面的更好,可以试试。不过按照我的平衡观点,好东西都会带来问题。 
4.1.4.3. CFQ I/O scheduler 
CFQ调度器尝试为所有进程提供相同的带宽。它将提供平等的工作环境,对于桌面系统很合适。 
4.1.4.4. Default I/O scheduler 选择默认的I/O调度器 
我选了Anticipatory I/O scheduler。 
我这样理解上面三个IO调度器:抢先式是传统的,它的原理是一有响应,就优先考虑调度。如果你的硬盘此时在运行一项工作,它也会暂停下来先响应用户。 
期限式则是:所有的工作都有最终期限,在这之前必须完成。当用户有响应时,它会根据自己的工作能否完成,来决定是否响应用户。 
CFQ则是平均分配资源,不管你的响应多急,也不管它的工作量是多少,它都是平均分配,一视同仁的。
2. 5. Processor type and features 处理器类型及特性 
5.1. Symmetric multi-processing support (SMP) 对称多处理器支持。 
这将支持有多CPU的系统。如果你的系统只有一个CPU,选N。反之,选Y。 
如果你选N,内核将会在单个或者多个CPU的机器上运行,但是只会使用一个CPU。如果你选Y,内核可以在很多(但不是所有)单CPU的机器上运行,在这样的机器,你选N会使内核运行得更快。 
注意如果你选Y,然后在Processor family选项中选择"586" or "Pentium" ,内核将不能运行在486构架的机器上。同样的,多CPU的运行于PPro构架上的内核也无法在 Pentium 系列的板上运行。 
使用多CPU机器的人在这里选Y,通常也会在后面的选项“Enhanced Real Time Clock Support”中选Y。如果你在这选Y,"Advanced Power Management" 的代码将不可用。 
如果不清楚,选N。 
5.2. Subarchitecture Type 子构架类型 
5.2.1. PC-compatible 
选这个如果你的机器是标准PC 
5.2.2. AMD Elan 
注意,如果你是 K6/Athlon/Opteron处理器不要选这个 
5.2.3. Voyager 
5.2.4. NUMAQ (IBM/Sequent) 
5.2.5. Summit/EXA (IBM x440) 
5.2.6. SGI 320/540 (Visual Workstation) 
5.2.7. Generic architecture (Summit, bigsmp, ES7000, default) 
5.2.8. Support for Unisys ES7000 IA32 series 
5.3. Processor family 
处理器类型。针对自己的CPU类型,选取相应的选项。 
这里是处理器的类型。这里的信息主要目的是用来优化。为了让内核能够在所有X86构架的CPU上运行(虽然不是最佳速度),在这你可以选386。 
内核不会运行在比你选的构架还要老的机器上。比如,你选了Pentium构架来优化内核,它将不能在486构架上运行。 
如果你不清楚,选386。 
5.3.1. - "386" 
5.3.2. - "486" 
5.3.3. - "586" 
5.3.4. - "Pentium-Classic" 
5.3.5. - "Pentium-MMX" 
5.3.6. - "Pentium-Pro" 
5.3.7. - "Pentium-II" 
5.3.8. - "Pentium-III" 
5.3.9. - "Pentium-4" 
5.3.10. - K6, K6-II and K6-III 
5.3.11. - "Athlon" K7 (Athlon/Duron/Thunderbird). 
5.3.12. -Opteron/Athlon64/Hammer/K8 
5.3.13. - "Crusoe" 
5.3.14. - "Efficeon" 
5.3.15. - "Winchip-C6" 
5.3.16. - "Winchip-2" 
5.3.17. - "Winchip-2A" 
5.3.18. - "GeodeGX1" 
5.3.19. - "Geode GX/LX" 
5.3.20. - "CyrixIII/VIA C3" 
5.3.21. - VIA C3-2 "Nehemiah". 
5.4. Generic x86 support 
通用X86支持。 
除了对上面你选择的X86 CPU进行优化,它还对更多类型X86 CPU的进行优化。这将会使内核在其他的X86 CPU上运行得更好。 
对于供应商来说,他们非常需要这些功能,因为他们需要更通用的优化支持。 
这个选项提供了对X86系列CPU最大的兼容性,用来支持一些少见的x86构架的CPU。如果你的CPU能够在上面的列表中找到,就里就不用选了。 
5.5. HPET Timer Support 
HPET时钟支持 
允许内核使用 HPET 。HPET 是代替当前8254的下一代时钟,全称叫作高精度事件定时器。你可以安全地选Y。但是,HEPT只会在支持它的平台和BIOS上运行。如果不支持,8254将会激活。 
选N,将继续使用8254时钟。 
5.6. Maximum number of CPUs (2-255) 
设置最高支持的CPU数,无法选择。我的显示为8。 
5.7. SMT (Hyperthreading) scheduler support 
超线程调度器支持 
超线程调度器在某些情况下将会对 Intel Pentium 4 HT系列有较好的支持。 
如果你不清楚,选N。 
5.8. Multi-core scheduler support 
多核调度机制支持,双核的CPU要选。 
多核心调度在某些情况下将会对多核的CPU系列有较好的支持。 
如果你不清楚,选N。 
5.9. Preemptible Kernel 抢先式内核。 
一些优先级很高的程序可以先让一些低优先级的程序执行,即使这些程序是在核心态下执行。从而减少内核潜伏期,提高系统的响应。当然在一些特殊的点的内核是不可抢先的,比如内核中的调度程序自身在执行时就是不可被抢先的。这个特性可以提高桌面系统、实时系统的性能。 
下面有三个选项: 
5.9.1. No Forced Preemption (Server) 非强迫式抢先。 
这是传统的LINUX抢先式模型,针对于高吞�
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章