前言
Linux内核的体积结构是单核的,但是它完全采用了微内核的设计思想,这样即使是单核,它也是以模块化的形式工作的,而这个模块可以是动态加载或卸载; Linux负责系统的管理。 进程、内存、设备驱动程序、文件和网络系统决定了系统的性能和稳定性。 如果我们在了解Linux内核的基础上,根据自己的需求量身定制更加高效、稳定的内核,就需要自动编译和配置内核中的各种相关参数和信息。
注意,如果两个内核模块的版本不完全相同,则不能跨版本使用。
文本
首先,我们要获取Linux内核的压缩文件。 获得它的途径要好得多。 最直接的方法就是去内核官网获取(),也可以到各个镜像站上去下载。 我这里就不解释了。
注意:/usr/src; 一般来说,我们制作linux内核的时候,一般都会将源码放在这个路径下,并且有一个叫linux的链接,所以扩展的时候应该放在这个路径下。
我这里下载的是3.13.2版本的内核源码如何编译安装,扩展时指定一个扩展路径即可。 文件比较大,有70多M,可能需要一些时间。
#tarxflinux-3.13.2.tar.xz-C/usr/src/
展开后听说在/usr/src/目录下生成了一个linux-3.13.2文件
为了方便以后使用,我们给他建立一个链接:
#ln-svlinux-3.13.2linux
我们cd到linux目录,看看上面的文件:
#cd /usr/src/linux
以上目录我这里就不一一介绍了,有兴趣的同学可以去了解一下。
下一步是配置内核。 这一步配置内核的方法有很多种。 每个品牌都是一种方式。 我们只需要选择一个:
makeconfig:遍历选择需要编译的内核
makeallyesconfig:配置所有可编译的内核功能
makeallnoconfig:不是所有的都不会被编译,但是对于那些可以选择的回答“否”,对于只有必要的回答回答“是”。
makemenuconfig:这些是打开文件窗口的选择菜单。 该命令需要打开一个长度小于80个字符的窗口。 打开后可以选择要编译的项目就可以了
以下两项可以用键盘选择,比较方便:
makekconfig(KDE桌面环境下,但安装了qt开发环境)
makegconfig(Gnome桌面环境,并安装gtk开发环境)
menuconfig:如果使用这个命令,如果是新安装的系统,需要安装gcc和ncurses-devel这两个包才可以打开,然后在上面选择。 这种方法也用的比较多:
如果你想更方便,不想使用其他方法,那么将当前系统上的/boot/config-version-platform,这个文件复制到/usr/src/linux/.config覆盖这个文件,然后更改上面的配置信息; 您可以保留需要的内容、删除不需要的内容以及添加新的内容。 这个是根据自己的需求来配置的;
注意:如果是远程连接编译,make会有问题。 如果远程连接中断,所有正在运行的进程都会中断吗? make进程必须是当前系统上运行的子进程。 有些一旦父进程挂掉源码如何编译安装,子进程就会不复存在。 俗话说:没有皮肤就没有头发。 这是事实;
所以我们用一个叫screen的命令来操作。 如果您不安装,只需自行安装即可。 您可以在一个窗口上启动n个虚拟桌面。 即使退出,之前的内容也会保留。 切换到屏幕,您可以看到窗口标题栏。 屏幕上的标志有:
#screen-ls:可以查看当前启用了多少个屏幕
按 Ctrl+a,按住并按 d 隐藏屏幕桌面
因为编译内核的时间比较长,所以我们在屏幕上编译,然后隐藏屏幕桌面;
重新连接到屏幕:
#screen-r 只需跟上 screenID
之后,我们开始编译; (这里编译我用了差不多两个小时,制作的时候没有指定cpu的核数,默认是用一核编译,所以花了很长时间)
#制作
编译完成后,我们可以进行下一步:
#makemodules_install
完成此步骤后,可以查看/lib/modules/目录,生成以版本号命名的文件module
以后模块下去敲命令
#makeinstall
安装完成后,会在/boot/目录下生成一个内核文件vmlinuz-3.13.2,其中有几个文件与你当前编译的版本相同。 你可以用 ls 检查一下:
#ls/启动/
如果没有问题的话,我们这里应该编译出一个新的内核了; 你可以看一下grub.conf配置文件:
#vim/boot/grub/grub.conf
好吧,我们重新启动一下,看看,好吧,重新启动吧! 如果顺利的话就可以进入内核选择界面,选择我们编译的新内核,就OK了。 好了,这就是结局了!
总结一下我们的安装步骤:
1.获取内核源码并解压到/usr/src
#tarxflinux-3.13.5.tar.xz-C/usr/src
#ln-sv/usr/src/linux-3.13.5/usr/src/linux
2.配置内核功能(只需选择一种方法)
makeconfig:遍历选择需要编译的内核特性
makeallyesconfig:配置所有可编译的内核功能
makeallnoconfig:并非全部不编译
makemenuconfig:这些是打开文件窗口的选择菜单
makekconfig(KDE桌面环境下,但安装了qt开发环境)
makegconfig(Gnome桌面环境,并安装gtk开发环境)
3.编译内核
#make[-j#]:#数量最多是CPU化学核心总数的两倍,所以会快点
4.安装内核模块
#makemodules_install
5.安装内核
#makeinstall
6. 验证和测试
#cat/boot/grub/grub.conf
检查新内核是否添加,然后重启系统测试
结束:
虽然编译一个新的内核看上去并不是很难,但是和我们之前从源码编译httpd的步骤类似,就是第一步比较麻烦,细心一点就OK了。 请大家多多指教!
发表评论