发布时间:2014-09-05 17:09:11作者:知识屋
核心更新的目的
1. 原来的核心太臃肿,为了系统更加稳定,去掉不需要的功能
2. 新功能的需求
3. 为了适应更新的硬件,需要编译核心
4. 嵌入式系统的需要
核心的版本
? 版本的组成--:『[主].[次].[释出]-[修改]』
? 次版本位为奇数则说明此版本位测试版本(2.5.x),为偶数说明是稳定版本(2.6.x)。
? 不同版本间升级要注意核心函数库的变更情况,如变动大不建议升级核心以免造成依赖的软件不可用
? 核心释放的官方网站为:www.kernel.org
? 核心patch的升级要连续版本升级,查看patch说明才能决定
核心源码的下载安装
1. 源码的解压缩位置
a) 一般位于/usr/src/kernels/
b) 命令为tar -jxvf linux-2.6.30.3.tar.bz2 -C /usr/src/kernels/
arch :与硬体平台有关的项目,大部分指的是CPU 的类别,例如x86, x86_64, Xen 虚拟支援等; |
block :与区块装置较相关的设定资料,区块资料通常指的是大量储存媒体!还包括类似ext3 等档案系统的支援是否允许等。 |
crypto :核心所支援的加密的技术,例如md5 或者是des 等等; |
Documentation :与核心有关的一堆说明文件,若对核心有极大的兴趣,要瞧瞧这里! |
drivers :一些硬体的驱动程式,例如显示卡、网路卡、PCI 相关硬体等等; |
firmware :一些旧式硬体的微指令码(韧体) 资料; |
fs :核心所支援的filesystems ,例如vfat, reiserfs, nfs 等等; |
include :一些可让其他程序呼叫的标头(header) 定义资料; |
init :一些核心初始化的定义功能,包括挂载与init 程式的呼叫等; |
ipc :定义Linux 作业系统内各程序的沟通; |
kernel :定义核心的程序、核心状态、执行绪、程序的排程(schedule)、程序的讯号(signle) 等 |
lib :一些函式库; |
mm :与记忆体单元有关的各项资料,包括swap 与虚拟记忆体等; |
net :与网路有关的各项协定资料,还有防火墙模组(net/ipv4/netfilter/*) 等等; |
security :包括selinux 等在内的安全性设定; |
sound :与音效有关的各项模组; |
virt :与虚拟化机器有关的资讯,目前核心支援的是KVM (Kernel base Virtual Machine) |
2. 源码下面的目录,以及用处
3. 核心编译前的处理和核心功能选择
a) 检测硬件
b) 核心功能需求
4. 编译前的做法
a) 保持干净的源码
·Make dep 保证所需要的文件都在相关位置
·make mrproper 将会删除所有的配置文件,包括之前编译过核心留下来的配置
·make clean 只删除编译中间产生的中间代码,保留之前配置的核心配置
b) 开始挑选核心功能
·Make menuconfig 用文本目录模式来挑选核心功能
·Make oldconfig 通过已存在的配置文件,来修改核心功能
·Make xconfig 以Qt为基础的图形界面来显示,需要用Qt设计的X Window,KDE可以使用
·Make gconfig 以ftk为基础的图形界面来显示,GNOME可以使用
·Make config 老是方法,文本问答模式,不可逆,不建议
c) 核心功能的细项解释
· 设置方式:
1. 『左右方向键』:可以移动最底下的<Select>, <Exit>, <Help>项目;
2. 『上下方向键』:可以移动上面大框框部分的反白光柱,若该行有箭头(--->) 则表示该行内部还有其他细项需要来设定的意思;
3. 选定项目:以『上下键』选择好想要设定的项目之后,并以『左右键』选择<Select> 之后, 按下『Enter 』就可以进入该项目去作更进一步的细部设定 ;
4. 可挑选之功能:在细部项目的设定当中,如果前面有[ ] 或< > 符号时,该项目才可以选择, 而选择可以使用『空白键』来选择;
5. 若为[*] <*> 则表示编译进核心;若为<M> 则表示编译成模组! 尽量在不知道该项目为何时,且有模组可以选,那么就可以直接选择为模组 !
6. · 当在细项目选择<Exit> 后,并按下Enter ,那么就可以离开该细部项目 !
· 解释
1. General setup
与Linux 最相关的程序互动、核心版本说明、是否使用发展中程式码等资讯都在这里设定的。这里的项目主要都是针对核心与程式之间的相关性来设计的,基本上,保留预设值即可! 不要随便取消底下的任何一个项目,因为可能会造成某些程式无法被同时执行的困境喔! 不过底下有非常多新的功能,如果你有不清楚的地方,可以按<Help> 进入查阅,里面会有一些建议! 你可以依据Help 的建议来选择新功能的启动与否!
d) 编译命令:
·Make vmlinux 编译未经压缩的核心
·Make modules 编译内核模块
·Make bzImage 编译经过压缩后的核心
·Make all 进行以上三个动作
e) 安装核心以及核心模块
· 把生成的核心文件copy到boot目录
·Make modules_install 安装核心模块
1. mkinitrd -v /boot/initrd-2.6.30.3vbird.img 2.6.30.3vbird
·Mkinitrd –v 目标文件 核心版本 生成initrd文件
· 修改grub.conf文件,来引导新核心启动
f) 额外单一模块的编译
· 模块编译的准备工作
1. Make GCC 等编译工具
2. Kernel-devel软件
· 单一模块的编译
1. 核心中有的功能没有编译,需要核心源码编译
a) 源码所在目录下达make menuconfig讲选项设定没模块
b) 然后make fs/ntfs编译出所需要的模块
c) 将该模块复制到相关的目录里面
d) Depmod –a生成依赖性关系
2. 核心中没有的功能,需要第三方源码编译
a) 源码解压
b) 源码编译出目标文件
c) 安装模块
i. make install
ii. install -m 744 -c r8168.ko /lib/modules/2.6.30.3vbird/kernel/drivers/net/
d) 更新模块依赖性信息 depmod –a
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能