Linux 内核编译步骤及配置详解

前言
   Linux内核是操做系统的核心,也是操做系统最基本的部分。linux


   Linux内核的体积结构是单内核的、可是他充分采用了微内核的设计思想、使得虽然是单内核、但工做在模块化的方式下、而且这个模块能够动态装载或卸 载;Linux负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。如是咱们在了解Linux内核的基础上根据本身的需 要、量身定制一个更高效,更稳定的内核,就须要咱们手动去编译和配置内核里的各项相关的参数和信息了。
注意、若是两个内核模块的版本不彻底相同是不能够跨版本使用的。

正文
   首先咱们要去得到Linux内核的压缩文件、得到的路径不少了、最直接的就是去内核官网得到了(http://www.kernel.org),也能够到各镜像站上去下载、这里就再也不说明了。

注意:/usr/src;通常而言、咱们制作linux内核的时候源码通常放在这个路径下、而且有一个连接叫linux什么的、因此展开时应该放在这个路径下。

   我这里下载有一个3.13.2版本的内核、展开时指定一个展开路径就能够了,文件比较大、70多M、可能须要点时间的。
   # tar xf linux-3.13.2.tar.xz -C /usr/src/vim

   wKioL1MapH-Bjd82AABmpA1PjrU567.jpg
   展开以后在/usr/src/这个目录下就看到了生成一个linux-3.13.2的文件了

   为之后使用方便、咱们给他建立一个连接:
   # ln -sv linux-3.13.2 linux网络

   wKiom1MapNKh74XPAAB5IEKw_vI902.jpg
   咱们cd到linux目录里面看一下里面的文件看:
   # cd /usr/src/linuxapp

   wKioL1MapOHQgrpoAACzmJ7T90Q230.jpg
   里面的目录我这里就不一一介绍了、有兴趣的朋友能够去了解一下哦。
   到下一步就是去配置内核了、这步配置内核的方法有多种、每个make就是一种方法、咱们只在选一种就能够了:模块化

   make config:遍历选择所要编译的内核特性
   make allyesconfig:配置全部可编译的内核特性
   make allnoconfig:并非全部的都不编译,而是能选的都回答为NO、只有必须的都选择为yes。
   make menuconfig:这种就是打开一个文件窗口选择菜单,这个命令须要打开的窗口大于80字符的宽度,打开后就能够在里面选择要编译的项了
   下面两个是能够用鼠标点选择的、比较方便哦:
   make kconfig(KDE桌面环境下,而且安装了qt开发环境)
   make gconfig(Gnome桌面环境,而且安装gtk开发环境)
   menuconfig:使用这个命令的话、若是是新安装的系统就要安装gcc和ncurses-devel这两个包才能够打开、而后再里面选择就能够了、通这个方法也是用得比较多的:

wKiom1MapVCCGRSaAAMP-pFlTno636.jpg

   若是想方便点又不想用别的方法那就复制当前系统上的/boot/config-版本-平台,这个文件到/usr/src/linux/.config覆 盖这个文件,再改一下里面的配置信息;哪些用得着就保留、哪些用不着就删除了均可以、有什么新的也能够加进来、这就是按本身的需求来配置了;性能

wKioL1MapU-xI3JzAAGGyCZYZIg932.jpg

 

   注意:若是编译是在远程链接上的话、make会出问题的、若是远程链接断开的话那运行的进程是否是也都断开了、这个make的进程必定是当前系统上运行的子进程、有些一旦父进程挂了、子进程也将不复存在、俗话说:皮之不存毛将焉附,是这个道理吧;测试

   因此咱们使用一个叫screen这个命令来操做,没安装本身安装上就是了、能够在一个窗口上启动n个虚拟的桌面,即便退出了也会保留以前的内容,切换进screen就能够看到窗口标题栏上的screen标志了:spa

   wKiom1Mapd_w1zGTAAEcrGcM8i0433.jpg

   # screen -ls:能够查看当前启用了多少个screen
   按Ctrl+a,松开再按d能够隐藏screen桌面
   由于编译内核须要比较长的时间、因此咱们在screen上编译、而后再把screen桌面隐藏就能够了;
   从新接入screen:
   # screen -r 跟上screenID就能够了
   而后咱们就开始编译吧;(我这里编译差很少用了两小时、make的时候我不指定cpu的核心数、默认就是用一个核来编译、因此好久)操作系统

   # make设计

   wKiom1MappTS0l7PAADEZe4oUD8150.jpg

   编译好了以后咱们就能够进行下一步了:
   # make modules_install
   这步完了以后你能够查看一下/lib/modules/目录下就会生成一个以版本号命名的一个文件模块了
   wKiom1Mawq7yelmIAABNeTaicBs308.jpg

    modules以后再往下走、敲命令吧
   # make install
   安装完以后会在/boot/目录下生成一个内核文件vmlinuz-3.13.二、还有几个跟你当前编译的版本同样的文件、能够ls去看一下:
   # ls /boot/

   wKioL1MaxPbj4wuFAAD2w1YRV1Q097.jpg
   若是没出什么问题到这里咱们应该算是编译好了一个新内核了;能够到grub.conf配置文件时看一下:
   # vim /boot/grub/grub.conf

   wKiom1Maxdiy9RmsAAGyhgb-QWs068.jpg

   好了、要不咱们重启一下看看、OK、重启吧!若是顺利的话就能够进到内核选择界面了,选项咱们编译的新内核就OK了,好了、到这就结束了!

wKioL1Maxz2ge3GNAAC6wW-iFY0072.jpg
   总结一下咱们的安装步骤:

       1、获取内核源码,解压至/usr/src
           # tar xf linux-3.13.5.tar.xz -C /usr/src
           # ln -sv /usr/src/linux-3.13.5  /usr/src/linux
       2、配置内核特性(选择一种方法就能够了)
           make config:遍历选择所要编译的内核特性
           make allyesconfig:配置全部可编译的内核特性
           make allnoconfig:并非全部的都不编译
           make menuconfig:这种就是打开一个文件窗口选择菜单
           make kconfig(KDE桌面环境下,而且安装了qt开发环境)
           make gconfig(Gnome桌面环境,而且安装gtk开发环境)
       3、编译内核
           # make [-j #] : #号最多为CPU物理核心总数的两倍,这样会快点哦            
       4、安装内核模块
           # make modules_install
       5、安装内核
           # make install
       6、验正并测试
           # cat /boot/grub/grub.conf
           查看新内核是否已经添加, 然后重启系统并测试

结束:    其实编译一个新的内核好像也不是很难是吧、跟咱们以前源码编译的httpd的步骤差很少、也就是第一步麻烦点、细心点就OK了,固然若是有什么不对的地方还望各路诸侯多多提点!

相关文章
相关标签/搜索