多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
make menuconfig后进入general setup也叫常规选项: ![](https://img.kancloud.cn/2b/32/2b32001a264f5046a3b21a49ead4af05_832x560.png =600x) ### **Cross-compiler tool prefix** CONFIG\_CROSS\_COMPILE 交叉编译工具前缀(比如"arm-linux-"相当于使用"make CROSS\_COMPILE=arm-linux-"进行编译).除非你想配置后默认自动进行交叉编译,否则不要使用此选项. ### **Compile also drivers which will not load** CONFIG\_COMPILE\_TEST 显示专属于其他平台(非x86平台)的驱动选项(需要交叉编译),仅供驱动开发者使用,普通的发行版制作者应该选"N". ### **Local version - append to kernel release** CONFIG\_LOCALVERSION 在内核版本后面加上自定义的版本字符串(最大64字符),可以用"uname -a"命令看到 ### **Automatically append version information to the version string** CONFIG\_LOCALVERSION\_AUTO 自动在版本字符串(CONFIG\_LOCALVERSION)后面添加版本信息(类似"-gxxxxxxxx"格式),需要有perl以及git仓库支持 ### **Default hostname** CONFIG\_DEFAULT\_HOSTNAME 设置默认主机名,默认值是"(none)".用户可以随后使用系统调用sethostname()来修改主机名. ### **Support for paging of anonymous memory (swap)** CONFIG\_SWAP 使用交换分区或者交换文件来做为虚拟内存 ### **System V IPC** CONFIG\_SYSVIPC System V 进程间通信(IPC)支持,用于进程间同步和交换数据,许多程序需要这个功能.选"Y"。 ### **POSIX Message Queues** CONFIG\_POSIX\_MQUEUE POSIX消息队列是POSIX IPC的一部分,如果你想编译和运行那些使用"mq\_\*"系统调用的程序(比如为Solaris开发的程序),或者需要使用Docker容器,就必须开启此选项.POSIX消息队列可以作为"mqueue"文件系统挂载以方便用户对队列进行操作.不确定的选"Y". ### **open by fhandle syscalls** CONFIG\_FHANDLE 用户程序可以使用句柄(而非文件名)来追踪文件(使用open\_by\_handle\_at(2)/name\_to\_handle\_at(2)系统调用),即使某文件被重命名,用户程序依然可定位那个文件.此特性有助于实现用户空间文件服务器(userspace file server).建议选"Y",因为systemd和udev依赖于它. ### **uselib syscall** CONFIG\_USELIB 启用老旧的uselib()系统接口支持,仅在你需要使用基于libc5的古董级程序时才需要,不确定的选"N". ### **Auditing support** CONFIG\_AUDIT 内核审计(跟踪每个进程的活动情况)支持,某些安全相关的内核子系统(例如SELinux)需要它.但是它会与systemd冲突,所以在使用systemd的系统上必须关闭. ### **Enable system-call auditing support** CONFIG\_AUDITSYSCALL 对系统调用进行审计.既可独立使用,也可被其他内核子系统(例如SELinux)使用. **IRQ subsystem** IRQ(中断请求)子系统 ### **Expose hardware/virtual IRQ mapping via debugfs** CONFIG\_IRQ\_DOMAIN\_DEBUG 通过debugfs中的irq\_domain\_mapping文件向用户显示硬件IRQ号/Linux IRQ号之间的对应关系.仅用于开发调试. ### **Timer tick handling** 内核时钟滴答处理程序。 ### **Periodic timer ticks (constant rate, no dynticks)** CONFIG\_HZ\_PERIODIC 无论CPU是否需要,都强制按照固定频率不断触发时钟中断.这是最耗电的方式,不推荐使用。 ### **Idle dynticks system (tickless idle)** CONFIG\_NO\_HZ\_IDLE CPU在空闲状态时不产生不必要的时钟中断,以使处理器能够在较低能耗状态下运行以节约电力,适合于大多数场合 ### **Full dynticks system (tickless)** CONFIG\_NO\_HZ\_FULL 完全无滴嗒:即使CPU在忙碌状态也尽可能关闭所有时钟中断,适用于CPU在同一时间仅运行一个任务,或者用户空间程序极少与内核交互的场合.即使开启此选项,也需要额外设置"nohz\_full=?"内核命令行参数才能真正生效. ### 篇幅所限,我们提供一个文档,路径在:…/2. 系统篇/5.内核Config,也就是本章的目录下;文件名称是:Linux内核(4.x)config选项介绍.pdf,里面会较为详细的解析其他config选项的含义,可以参考。