核心更新的目的
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. 『左右方向键』:可以移动最底下的
2. 『上下方向键』:可以移动上面大框框部分的反白光柱,若该行有箭头(—>) 则表示该行内部还有其他细项需要来设定的意思;
3. 选定项目:以『上下键』选择好想要设定的项目之后,并以『左右键』选择
4. 可挑选之功能:在细部项目的设定当中,如果前面有[ ] 或 符 时,该项目才可以选择, 而选择可以使用『空白键』来选择;
5. 若为[*] 则表示编译进核心;若为
6. · 当在细项目选择
· 解释
1. General setup
与Linux 最相关的程序互动、核心版本说明、是否使用发展中程式码等资讯都在这里设定的。这里的项目主要都是针对核心与程式之间的相关性来设计的,基本上,保留预设值即可! 不要随便取消底下的任何一个项目,因为可能会造成某些程式无法被同时执行的困境喔! 不过底下有非常多新的功能,如果你有不清楚的地方,可以按
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
文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux25150 人正在系统学习中 相关资源:百度图片疯狂下载器-专业指导文档类资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!