Gentoo-linux-2634内核-手动编译详细教程.pdf
上传人:sy****28 上传时间:2024-09-14 格式:PDF 页数:25 大小:287KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

Gentoo-linux-2634内核-手动编译详细教程.pdf

Gentoo-linux-2634内核-手动编译详细教程.pdf

预览

免费试读已结束,剩余 15 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

编译(linux-2.6.34)内核详解2010-06-20by李阳mail:kmalloc@163.com1.下载源代码1.1下载到内核源码官方网站http://www.kernel.org/下载或,$wgethttp://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz21.2解压源码$cd~/src$tarxjvflinux-2.6.34.tar.bz22.编译(ubuntu)软件准备2.1在ubuntu系统安装编译内核需要的软件包$sudoapt-getinstallbuild-essentialkernel-packagelibncurses5-dev2.2清理以前编译时留下的临时文件如果是刚刚解开的包,不需要执行这步。如果是第二次或者是第n次编译,那么一定要执行。$cdlinux-2.6.34$makemrproper2.3拷贝已有的配置文件$cp/boot/config-`uname-r`./.config2.4自动精简内核配置(将你需要用的所用硬件都插在电脑上,这样会根据现在电脑链接的硬件进行自动配置一下,也可以省略此步)makelocalmodconfig3.配置内核3.1配置内核的工具方法一:$makemenuconfig方法二:xconfig.安装xconfig$sudoapt-getinstalllibqt3-headerslibqt3-mt-devlibqt3-compat-headerslibqt3-mt.使用xconfig配置内核$sudomakexconfig.xconfig选项意义:圆中点是编译成可以随时加人的模块(以下简称M),方块中一勾是编译进入内核(以下简称Y),空就是不要(简称N)3.2内核配置及优化Generalsetup--->[*]Promptfordevelopmentand/orincompletecode/drivers<===显示尚在开发中或尚未完成的代码和驱动.我不是内核或驱动开发人员。如果你用笔记本建议选上,这样可以支持一些较新的驱动.()Localversion-appendtokernelrelease给内核一个个性的名字,在uname-r可以看到-liy.0.1[]AutomaticallyappendversioninformationtotheversionstringKernelcompressionmode(Bzip2)---><===对比默认的Gzip,Bzip2拥有更高的压缩比[*]Supportforpagingofanonymousmemory(swap)[*]SystemVIPC[*]BSDProcessAccounting[]BSDProcessAccountingversion3fileformat[]Exporttask/processstatisticsthroughnetlink(EXPERIMENTAL)<===体验类选项一律关[]Auditingsupport<===给SELinux提供支持。我的使用场景主要是开发应用程序,不需要那么高的安全性,另外安全总是以牺牲性能为代价RCUSubsystem--->//非对称读写锁系统是一种新的kernel锁机制,适用于读多写少环境RCUImplementation(ClassicRCU)---><===选择标准的RCU系统,tree-base是给拥有大规模CPU集群的SMP系统用的默认吧<>Kernel.configsupport(15)Kernellogbuffersize(16=>64KB,17=>128KB)我是双核,15够了[]ControlGroupsupport---><===cgroups支持,文档资料,cgroups主要作用是给进程分组,并可以动态调控进程组的CPU占用。比如A进程分到apple组,给予20%CPU占用,E进程分easy组,给予50%CPU占用,最高100%。我目前没有此类应用场景,用到时会选择将其编译进去。[]Kernel->userspacerelaysupport(formerlyrelayfs)<===在某些文件系统上(比如debugfs)提供从内核空间向用户空间传递大量数据的接口,我目前没有此类应用场景-*-Namespacessupport[]UTSnamespace<===我没有已安装的应用程序要用到UTSns[]IPCnamespace<===我没有已安装的应