源码如何编译安装-Linux内核编译步骤及配置解读

前言

Linux内核操作系统的核心,也是操作系统最基本的部分。

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了。 请大家多多指教!