内核配置与裁剪
linux内核配置与裁剪的书籍
关于Linux内核配置与裁剪的书籍,有以下几本值得推荐:
* 《深入理解Linux内核(第三版)》:这本书是深入理解Linux内核的经典之作,涵盖了Linux内核的主要数据结构、算法和编程技巧。它不仅解释了Linux运作方式的理论支撑,而且逐行剖析了相关的代码片段。第三版涵盖了Linux 2.6,并集中讨论了内存管理、虚拟文件系统层、进程创建及调度等关键内容。
* 《Linux内核设计与实现(第二版)》:这本书详细介绍了Linux 内核系统,覆盖了从核心内核系统的应用到内核设计与实现等各方面的内容。主要内容包括进程管理、进程调度、时间管理和定时器、系统调用接口、内存寻址、内存管理和页缓存等。
以上书籍仅供参考,可以访问图书馆或网上商城了解更多关于Linux内核配置与裁剪的书籍。
linux内核裁剪、编译与烧写
linux内核裁剪、编译与烧写实验日志
实验题目:linux内核裁剪、编译与烧写
实验目的:
1、了解linux内核移植的相关知识
2、熟练掌握linux内核裁剪的一般过程
3、完成一个自己linux内核裁剪
4、熟练掌握内核烧写
实验步骤及结果:
1、硬件连接
连接好实验箱电源线、串口线、网线,并打开实验箱电源。
2、打开桌面上的超级终端arm
打开超级终端后,并敲回车键,直到出现开发板的启动界面[/mnt/yaffts]
3、测试自带avi文件
[/mnt/yaffts] cd mplayer
。。。。。。。。。。mplayer test.avi
这时可以看得见在lcd上有图像显示,并且伴有声音没有声音出现。
4、内核裁剪
从linux终端到/arm2410cl/kernel/linux-2.4.18-2410cl/目录,输入命令make memuconfig 回车,即可打开裁剪的主界面,根据自己情况对裁剪选项进行选择,不清楚的选项就选择默认选项。在裁剪选择时,上下箭头可以上下选择,进入某一层用回车键,用空格键对其进行选择切换。
我们这里至少要把满足根文件系统的linux内核要求选项选上:
(1) 配置MTD·要使用Cramfs和YAFFS文件系统,首先需要配置MTD.在Memory Technology Devices (MTD) --->选项中选中如下选项(图略):
<*> Memory Technology Device (MTD) support MTD支持
[*] MTD partitioning support MTD分区支持
Linux内核裁减
Linux内核裁减及根文件系统定制
目录:
一、内核编译
二、根文件系统定制
三、内核选项说明
一、内核编译
1、准备工作
(1)整理出系统需要支持的硬件、文件系统类型以及网络协议等内容。
(2)建议用命令uname –r 查看一下系统的版本号,如果你的系统版本与将要编译的内核版本一致,建议将/lib/modules下的内
容备份,否则将来的make modules_install 步骤产生的文件
会覆盖这个路径下的内容。
(3)下载并解压linux内核。
以下假设你已经下载了内核的为linux-x-y-z.tar.gz。一般都
将linux内核源代码放在/usr/src下,这里仍然遵守这个习惯,
如果你的这个路径下已经存在这个版本的内核,建议将已有的
改个名称。
2、开始编译
(1)make mrproper
确保源代码目录下没有不正确的.o文件和文件依赖关系,执行
该命令后,内核选项会回到默认的状态下。如果你是下载的内
核源码,而且是第一次编译,就没有必要执行这一步操作(2)make menuconfig
以文本菜单方式选择内核选项(与它功能相同的命令还有make
config;make xconfig;make oldconfig),不同版本的内核,
选项可能会有一些差异。
{注:#make config(基于文本的最为传统的配置界面,不推荐使用)
#make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)
#make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)
#make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,
linux内核裁剪的具体步骤(Linuxkernelcuttingspecificsteps)
linux内核裁剪的具体步骤(Linux kernel cutting specific steps)Configuration in menuconfig:
The kernel configuration options and delete details
Part 1: delete all
Code maturity level options I code maturity level options
[]Prompt for development and/or incomplete code/drivers is chosen by default, which will display code or drivers that are still under development or have not been completed in the setup interface.
The second part: delete all but the following options General, setup -
System V IPC (IPC:Inter Process Communication) is a group system call and function library, it allows the program to exchange information synchronously with each other. Some programs and the DOS simulation environment need it. Providing communication mechanisms for processes that enable the exchange of information and synchronization between processes in the system. Some programs run only in the case of Y, so don't worry about it.
实验三 内核裁减与根文件系统建立
实验三内核裁减与根文件系统建立实验目的:熟悉内核的裁剪的基本操作, 熟悉根文件系统的建立
实验设备:PC机,虚拟机Linux系统, 开发板
实验内容:
1.内核的裁剪过程的基本名令
2.文件系统建立busybox的配置, 建立目录,复制文件,建立文件镜像.
3.在虚拟机pc-linux启动tftp服务,下载内核和文件系统到开发板.
操作步骤:
实验3-1 内核的裁剪过程(制作开发板的linux操作系统)
(1)Linux内核的获取
将linux内核备份,然后裁减: # cp –arf /arm2410cl/kernel /home
进入到内核目录:#cd /home /kernel/linux-2.4.18-2410cl
#make clean
(2) 配置内核# make menuconfig
配置usb无线网卡驱动
Networking –wireless-- Generic IEEE 802.11 Networking Stack
Device driver--Network device support--Wireless LAN--Wireless LAN (IEEE 802.11)
配置(查看)字符设备
Device driver—input device
Device driver –character device
配置(查看)文件系统
File systems—
(3) 建立依赖关系# make dep
(4)修改Makefile文件#vi Makefile
ARCH :=arm
CROSS_COMPILE = /opt/host/armv4l/bin/armv4l-unknown-linux-
裁剪内核——精选推荐
裁剪内核
转
⼀、裁剪内核
1.1 第⼀次修改
现在的内核⼤⼩为2.8M左右,要裁剪到2.0M以下,毕竟给内核分区就只有2.0M。
这两个设备我们没有,裁剪掉。
进⼊make menuconfig中,搜索mousedev:
进⼊⾥⾯按需要进⾏裁剪。
搜索 lp:
hostname修改:
⽂件系统再此修改:
去掉如下选项:
再次进⼊device driver,-》input device->touch creen
配置上
去掉:
修改完后,保存。然后编译执⾏,查看uImage的⼤⼩
裁剪出来的⼤⼩为2.66M,还得继续裁剪。
1.2 第⼆次修改
查看.config⽂件,查看哪些能修改的。
NETworking support->bluetooth
蓝⽛设备,我们的开发板上没有蓝⽛,去掉
device driver->network device support
⽆线WIFI也不⽀持,去掉。
这个去不掉,放那⾥了。
编译
根本没减少多少,只能现在内核⾃带属性越来越多了。只能修改分区了。 修改两个分区,u-boot分区和linux⾥⾯的分区。
⼆、修改分区
2.1 修改u-boot分区
u-boot 的分区在 include/configs/jz2440.h 中修改,修改为4M⼤⼩
编译,然后下载。使⽤openjtag下载
分区:
删除原有的分区:
mtdparts delall
新建分区:mtdparts default
分区已经建⽴好。
2.2 内核修改
Mach-mini2440.c (arch\arm\mach-s3c24xx)
Linux内核裁剪实例
Linux内核裁剪实例
从零开始配置内核是不明智的,建议在某一个默认配置的基础上进行修改,以达到自己产品的实际需求。
裁剪和配置内核的基本原则:
⏹基于某一个最接近的主板配置来修改;
⏹必须的、能确定的选项选中;
⏹不能确定的则不要改变原来配置;
⏹可选可不选的,建议根据help信息决定或者不选;
⏹一次改动不要太多,渐进式修改和验证;
⏹注意及时备份配置文件,出现意外可以回退恢复。
下面给出一些常见功能的配置裁剪实例,很多功能与所采用的主板硬件相关,与其它不同主板的内核配置上不一定完全相同,但还是有一些参考意义。
1.1.1 GPIO子系统配置
Linux 2.6以上内核引入了子系统,GPIO子系统将全部GPIO的操作接口都通过
“/sys/class/gpio/”目录导出,非常方便用户使用。
输入下列命令,进入内核配置菜单:
$ make ARCH=arm menuconfig
在主菜单界面中选择“Device Drivers”:
[*] Networking support --->
Device Drivers --->
File systems --->
Kernel hacking --->
进入“Device Drivers”界面,选择并进入“GPIO Support”:
[*] SPI support --->
PPS support --->
PTP clock support
-*- GPIO Support --->
<*> PWM Support --->
在“GPIO Support”中选中“/sys/cla ss/gpio…”:
在menuconfig中配置Linux内核裁剪的具体步骤3
在menuconfig中配置Linux内核裁剪的具体步骤3
[]NLS ISO 8859-1 必须选择,这个是关于U盘挂载的。
CD-ROM/DVD Filesystems ---> 这个是关于挂载ISO文件的,用的话就选。
ISO 9660 CDROM file system support
第十二部分: 全部删除
Instrumentation support
第十三部分:全部删除
Kernel hacking --->破解核心?可不是当骸客啦,不选
第十四部分:全部删除
Security options --->
第十五部分:全部删除
Cryptographic options --->这是核心支持加密的选项
第十六部分:全部删除
Library routines --->
附:内核配置
内核配置的方法很多,make config、make xconfig、make menuconfig、make oldconfig等等,它们的功能都是一样的,区别应该从名字上就能看出来,只有make oldconfig是指用系统当前的设置(./.config)作为缺省值。这里用的是make menuconfig。
需要牢记:不必要的驱动越多,内核就越大,不仅运行速度慢、占用内存多,在少数情况下、还会引发其他问题。具体步骤如下:
首先确定shell是bash。
然后
$make menuconfig
有一些默认的符号其含义如下:
y:加载
n:不加载
m:作为模块加载
可以配置的选项有以下一些:
1)code maturity level option 代码成熟度
内核移植、内核裁剪、方案的理解
内核移植、内核裁剪、⽅案的理解
1.内核移植:
即在内核官⽹下载内核源码,移植到⾃⼰的开发板上,但是需要⾃⼰针对需要进⾏裁剪,⼀般不提倡程序员这样做,例如:
我现在⽤的是全志的sun8i芯⽚⽅案,⽽这个配置源码并没有收录到内核官⽅源码中,所以我们下载下来的需要根据板⼦的设计去调整相应的驱动等,特别⿇烦还容易出错。所以⼀般采⽤芯⽚⼚商提供的⽅案进⾏设计。(切记:尽量不要做内核移植,除⾮你很⽜逼)
2.内核裁剪:
下⾯根据我个⼈的芯⽚进⾏说明,(全志sun8i)
我们有了内核源码以后(最好是⽅案公司提供的),进⼊arch/arm/configs/ ⽬录下,有
sun8iw7p1smp_android_defconfig //
执⾏make sun8iw7p1smp_android_defconfig ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- //进⾏默认配置
make menuconfig ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 进⼊内核配置菜单,选中<*>即可编译内核,选中<M>编译成模块,不选即不编译,
这就是内核裁剪
3.⽅案:(扩展后的内核源码)
⼀般做⽅案的公司都有⾃⼰的芯⽚,他们会将内核源码下载后,根据客户的需求或者不同板⼦的型号对内核源码进⾏不同的配置,来符和客户要求,客户可以基于芯⽚公司的⽅案(修改后的内核源码)进⾏⾃⼰的开发。
Linux内核裁剪的具体过程和方法
Linux内核裁剪的具体过程和方法
根据部分网摘资料和实际烧录结果进行整理:
内核功能:
在能够实现AT91SAM9260开发板基本功能的基础上,通过串口连接上读卡器后能进行一系列的操作和控制功能等,将读卡器的相应数据进行存储或者通过网络传输到远程的PC 机上。远程PC机能够通过网络方式在开发板上对所连接的读卡器参数进行更新配置,如设置天线接口、设置读卡方式等。(待与读卡器配套使用后再对内核的功能描述进行补充和完善。)
编译环境:
源代码解压完成后,进入linux 2.6.19目录下,使用VI命令编辑Makefile。确定编译环境为arm交叉编译工具与本机的安装路径一致ARCH = arm
CROSS_COMPILE = /opt/timesys/toolchains/armv5l-linux/bin/armv5l-linux-
内核版本是linux 2.6.19 ,开发板的版本是AT91SAM9260 BOARD V1.01 ,主机系统是ubuntu11.10
内核配置:
内核配置的方法很多,make config、make xconfig、make menuconfig、make oldconfig 等等,它们的功能都是一样的,区别应该从名字上就能看出来,只有make oldconfig是指用系统当前的设置(./.config)作为缺省值。这里用的是make menuconfig。需要牢记:不必要的驱动越多,内核就越大,不仅运行速度慢、占用内存多,在少数情况下、还会引发其他问题。具体步骤如下:首先确定shell是bash。然后$make menuconfig。有一些默认的符号其含义如下:"[ ]"表示该选项有两种选择方式;[*] 直接编译进内核;[] 不编译;"<>"表示该选项有三种选择方式; <*>直接编译进内核; 编译成模块形式,但不编译进内核;<> 不编译。
Linux内核裁剪与编译
06
总结与展望
总结
内核裁剪
Linux内核裁剪是针对特定 硬件平台或应用需求,从完 整的Linux内核中去除不需 要的功能模块,以减小内核 体积、提高系统运行效率的 过程。这一过程需要深入理 解Linux内核的架构和工作 原理,以及目标平台的硬件 特性。
内核编译
内核编译是将经过裁剪的内 核源码通过编译工具链转换 成可在目标平台上运行的二 进制镜像的过程。这一过程 涉及到一系列复杂的编译优 化技术,以最大化提高内核 的运行效率。
THANKS
感谢观看
展望
持续优化
随着硬件技术的不断发展,Linux内核也在不断演 进和优化。未来,内核裁剪与编译技术将继续针 对新的硬件特性和应用需求进行优化,进一步提 高内核的运行效率。
开源社区的贡献
Linux内核开源的特点使其能够不断吸收社区的优 秀技术和经验。未来,随着更多开发者参与Linux 内核的开发和维护,将有更多优秀的技术和解决 方案涌现出来。
性能优化
通过裁剪不必要的模块和 功能,可以减小内核大小, 从而提高系统的启动速度 和运行效率。
安全考虑
裁剪内核可以减少潜在的 安全风险,因为移除某些 模块可以降低被攻击的可 能性。
内核裁剪的方法和步骤
配置内核
使用命令行工具(如make menuconfig)或图形界面工 具(如Kconfig)进行内核配
linux内核编译与裁剪
Linux内核编译内幕详解
内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
Linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/usr/src/l inux下找到,大部分应用软件也都是遵循GPL而设计的,你都可以获取相应的源程序代码。
全世界任何一个软件工程师都可以将自己认为优秀的代码加入到其中,由此引发的一个明显的好处就是Linux修补漏洞的快速以及对最新软件技术的利用。而Linux的内核则是这些特点的最直接的代表。
想象一下,拥有了内核的源程序对你来说意味着什么?首先,我们可以了解系统是如何工作的。通过通读源代码,我们就可以了解系统的工作原理,这在Windows下简直是天方夜谭。其次,我们可以针对自己的情况,量体裁衣,定制适合自己的系统,这样就需要重新编译内核。
在Windows下是什么情况呢?相信很多人都被越来越庞大的Windows整得莫名其妙过。再次,我们可以对内核进行修改,以符合自己的需要。这意味着什么?没错,相当于自己开发了一个操作系统,但是大部分的工作已经做好了,你所要做的就是要增加并实现自己需要的功能。在Windows下,除非你是微软的核心技术人员,否则就不用痴心妄想了。
内核版本号
由于Linux的源程序是完全公开的,任何人只要遵循GPL,就可以对内核加以修改并发布给他人使用。Linux的开发采用的是集市模型(bazaar,与cathedral--教堂模型--对应),为了确保这些无序的开发过程能够有序地进行,Linux采用了双树系统。
Linux内核裁剪步骤
在menuconfig中配置:
详细介绍内核配置选项及删改情况
第一部分:全部删除
Code maturity level options --- 代码成熟等级选项
[]Prompt for development andor incomplete codedrivers 默认情况下是选择的,这将会在设置界面中显示还在开发或者还没有完成的代码与驱动.不选。
第二部分:除以下选项,其它全部删除
General setup—〉
System V IPC (IPCInter Process Communication)是组系统调用及函数库,它能让程序彼此间同步进行交换信息。某些程序以及DOS模拟环境都需要它。为进程提供通信机制,这将使系统中各进程间有交换信息与保持同步的能力。有些程序只有在选Y的情况下才能运行,所以不用考虑,这里一定要选。
第三部分:除以下选项,其它全部删除
Loadable module support --- 可引导模块支持建议作为模块加入内核
[] Enable loadable module support 这个选项可以让你的内核支持模块,模块是什么呢?模块是一小段代码,编译后可在系统内核运行时动态的加入内核,从而为内核增加一些特性或是对某种硬件进行支持。一般一些不常用到的驱动或特性可以编译为模块以减少内核的体积。在运行时可以使用modprobe命令来加载它到内核中去(在不需要时还可以移除它)。一些特性是否编译为模块的原则是,不常使用的,特别是在系统启动时不需要的驱动可以将其编译为模块,如果是一些在系统启动时就要用到的驱动比如说文件系统,系统总线的支持就不要编为模块了,否在无法启动系统。
基于ARM的嵌入式linux内核的裁剪与移植
基于ARM的嵌入式linux内核的裁剪与移植前言
嵌入式系统一直是计算机行业中的领域之一。在许多应用程序中,嵌入式系统
越来越流行。嵌入式系统通常使用嵌入式芯片,如ARM芯片,并且它们通常运行Linux内核。Linux内核是一个开放源代码的操作系统内核。在嵌入式领域,Linux 内核可以被用于实现各种应用程序。本文将重点介绍如何基于ARM平台的嵌入式Linux内核进行裁剪和移植。
ARM平台
ARM处理器是一种RISC(Reduced Instruction Set Computer)处理器。这种
类型的处理器可用于嵌入式系统开发,因为它具有较低的功耗和高效的性能。ARM处理器有许多版本,其中包括ARMv6和ARMv7。 ARMv6通常用于嵌入式
系统,而ARMv7则用于智能手机和平板电脑等高端设备。
Linux内核的裁剪
在嵌入式系统中,Linux内核需要进行裁剪,以适应嵌入式设备的需求。与桌
面计算机相比,嵌入式系统拥有更少的资源,包括RAM、闪存和存储空间。因此,在将Linux内核移植到嵌入式系统之前,必须将内核进行裁剪。
在裁剪内核之前,您必须确定哪些内核模块是必需的。一些模块可以从内核中
移除,以减少内核的大小。通常,将不必要的模块和其他功能从内核中移除可以使内核变得更小并具有更好的性能。
另外,裁剪内核时应确保其他组件与内核兼容。例如,在新内核中可能需要更
改驱动程序或实用程序以适应修改后的内核。裁剪内核可能是一项比较困难的工作,需要深刻了解Linux内核的各个方面,以确保正确地裁剪内核。
移植Linux内核到ARM
linux内核裁剪及编译步骤
linux内核裁剪及编译步骤
Linux内核裁剪及编译步骤
Linux操作系统的内核是其最重要和核心的组成部分。用户可以根据自己的需要对内核进行裁剪以减少内核代码的大小,以及支持特定的硬件和功能。Linux内核的裁剪和编译步骤相对来说比较复杂,需要一定的技术和安装环境的支持。下面将介绍Linux内核裁剪及编译的具体步骤,以供参考。
一、准备工作
在开始进行Linux内核的裁剪及编译之前,需要进行一些准备工作。首先,需要安装Linux操作系统的开发环境。其次,需要下载Linux内核的源代码,可以从Linux 的官方网站或者其他开源社区下载。
二、配置内核选项
安装好开发环境和下载好源代码之后,就可以开始进行内核的裁剪和编译了。首先需要进行内核选项的配置。可以使用make menuconfig命令进入配置界面。在这个界面中,用户可以对内核进行不同程度的裁剪,包括去掉多余的硬件支持和功能选项。
在配置选项中,用户需要选择一些基本的配置选项,包括文件系统类型、设备驱动、协议栈、安全选项、虚拟
化等。用户可以根据自己的需要,进行选项的选择和配置。
三、编译内核
在完成了内核的配置之后,下一步就是进行内核的编译。可以使用make命令进行编译。编译过程中需要耗费一定的时间和资源,因此建议在空闲时刻进行编译。
如果出现编译错误,需要根据错误提示进行排查和解决。编译错误很可能是由配置选项不当造成的,因此要仔细检查配置选项。
四、安装内核
编译完成后,就可以安装内核。可以使用make install命令进行安装。安装完成后,可以重启系统,以使新的内核生效。在重启时,需要手动选择新的内核,可以选择自己编译的内核或者系统默认的内核。
uboot内核移植和裁剪详细步骤
uboot内核移植和裁剪详细步骤
-
U-boot内核移植步骤:
Linux 3.3.5系统移植
1. 将arch/arm/mach-s3c6410/下的,mach-smdk6410.c cp为mach-my6410.c;
2. 打开arch/arm/mach-s3c6410/下的Kconfig,仿照MACH_SMDK6410做一个
菜
单项:
config MACH_MY6410
bool "MY6410"
select CPU_S3C6410
select SAMSUNG_DEV_ADC
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC1
select S3C_DEV_I2C1
select SAMSUNG_DEV_IDE
select S3C_DEV_FB
select S3C_DEV_RTC
select SAMSUNG_DEV_TS
select S3C_DEV_USB_HOST
select S3C_DEV_USB_HSOTG
select S3C_DEV_WDT
select SAMSUNG_DEV_BACKLIGHT
select SAMSUNG_DEV_KEYPAD
select SAMSUNG_DEV_PWM
select HAVE_S3C2410_WATCHDOG if WATCHDOG
select S3C64XX_SETUP_SDHCI
select S3C64XX_SETUP_I2C1
select S3C64XX_SETUP_IDE
select S3C64XX_SETUP_FB_24BPP
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
内核配置与裁剪
1. Linux内核配置
内核配置的方法很多,make config、make xconfig、make menuconfig、make oldconfig 等等,它们的功能都是一样的。这里用的是make menuconfig。
过去基于2.x的内核为用户提供了四种基本的内核设置编辑器:
✧. config 服务于内核设置的一个冗长的命令行界面;
✧. oldconfig 一个文本模式的界面,主要包含一个已有设置文件,对用户所发现的内核资
源中的设置变量进行排序;
✧. menuconfig 一个基于光标控制库的终端导向编辑器,可提供文本模式的图形用户界
面;
✧. xconfig 一个图形内核设置编辑器,需要安装X-Window系统。
前三种编辑器在设置2.6内核时仍可使用,在运行“make xconfig”后,原有的界面被两个新的图形设置编辑器所代替。这需要具体的图形库和X-Window系统的支持。另外,用户还可以通过“make defconfig”命令,利用所有内核设置变量的缺省值自动建立一个内核设置文件。
下面具体介绍Linux内核配置选项:
. 代码成熟度选项
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
[*] Select only drivers expected to compile cleanly
在内核中包含了一些不成熟的代码和功能,如果我们想使用这些功能,想打开相关的配置选项,就必需打开这一选项。
. 通用设置选项
General setup --->
() Local version - append to kernel release
[*] Automatically append version information to the version string
[*] Support for paging of anonymous memory (swap)
[*] System V IPC
[*] POSIX Message Queues
[*] BSD Process Accounting
[*] BSD Process Accounting version 3 file format
[*] Sysctl support
[ ] Auditing support
[*] Support for hot-pluggable devices
[*] Kernel Userspace Events
[*] Kernel .config support
[*] Enable access to .config through /proc/config.gz
() Initramfs source file(s)
[*] Configure standard kernel features (for small systems) ---> --- Configure standard kernel features (for small systems) [ ] Load all symbols for debugging/kksymoops
[ ] Do an extra kallsyms pass
[ ] Enable support for prinlk
[ ] BUG()support
[ ] Enable full-sinzed data structures for core
[*] Enable futex support
[*] Enable eventpoll support
[*] Optimize for size
[*] Use full shmem filesystem
(0) Function alignment
(0) Label alignment
(0) Loop alignment
(0) Jump alignment
Local version - append to kernel release:这里填入的是64字符以内的字符串,在这里填上的字符串可以用uname -a命令看到。
Support for paging of anonymous memory(swap):这是使用交换分区或者交换文件来做为虚拟内存的,当然要选上。
System V IPC:表示系统5的Inter Process Communication,它用于处理器在程序之间同步和交换信息,如果不选这项,很多程序运行不起来的。
POSIX Message Queues:这是POSIX的消息队列,它同样是一种IPC。建议最好将它选上。
BSD Process Accounting:这是允许用户进程访问内核将账户信息写入文件中的。建议最好将它选上。
Sysctl support:这个选项能不重新编译内核修改内核的某些参数和变量,如果你也选择了支持/proc,将能从/proc/sys存取可以影响内核的参数或变量。建议最好将它选上。
Auditing support:审记支持,用于和内核的某些子模块同时工作,例如SELinux。只有选择此项及它的子项,才能调用有关审记的系统调用。
Support for hot-pluggable devices:是否支持热插拔的选项,肯定要选上。不然USB、PCMCIA 等这些设备都用不了。
Kernel Userspace Events:内核中分为系统区和用户区,这里是系统区和用户区进行通讯的一种方式,选上。
Kernel .config support:将.config配置信息保存在内核中,选上它及它的子项使得其它用户能从/proc中得到内核的配置。
Configure standard kernel features(for small systems):这是为了编译某些特殊的内核使用的,通常你可以不选择这一选项,你也不用对它下面的子项操心了。
Load all symbols for debugging/kksymoops:是否装载所有的调试符号表信息,如果你不需要对内核调试,不需要选择此项。
Enable futex support:不选这个内核不一定能正确的运行使用glibc的程序,当然要选上。