#uname -r 显示内核的版本号
一. 内核编译
1. 什么是内核编译
将内核源码转换为目标程序的过程称之为内核编译,在编译过程可以定制内核的功能
2. 内核编译的理由
(1) 重新定制内核功能
(2) 给内核打补丁
(3) 安装硬件驱动程序
3. 编译2.4内核
(1) 完全编译
-准备工作
a. 获取2.4内核源码
-从www.kernel.org下载或从安装光盘中获取
b. 安装gcc等编译工具
#rpm -ivh gcc-3.2.5-5.i386.rpm ncurses4-5.0-11.i386.rpm ncurses-devel-5.3-4.i386.rpm
-解压缩内核源码
a. 如果从www.kernel.org下载的源码,可用tar解压
#tar -xzvf/-xjvf *.tar.* -C /usr/src
b. 如果从安装光盘中获取的源,可用rpm解压
#rpm -ivh kernel-source-版本号...
-修改内核版本号
#vi /usr/src/内核源码目录/Makefile
VERSION=数字
PATCHLEVEL=数字
SUBLEVEL=数字
EXTRAVERSION=字符串
...............
注:如果要覆盖当前内核将版本号修改成与当前内核一致
-定制内核功能
#cd /usr/src/内核源码目录
#make mrproper //清除上次编译留下垃圾文件
#make clean //清除残留文件
#make menuconfig //如果想在当前内核的基础进行配置,可复制/boot目录的"config-内核版本号"到内核源码目录下,取名为.config\
#cp /boot/config-2.4.20-8 /usr/src/linux-2.4.20-8/.config
#make dep //产生依赖关系
-生成内核文件
#make bzImage
-编译和安装内核模块
#make modules
#make modules_install(安装到/lib/modules/..)
-安装内核
#make install(安装到/boot)
(2) 编译内核部分模块
-准备工作
a. 获取内核源码
b. 安装gcc相关编译工具
-解压缩内核源码
.....
-修改版本号与当前内核一致
#cd /usr/src/内核源码解压目录
#vi Makefile
.......
........
-定制内核功能
#make mrproper
#make clean
#cp /boot/config-版本号 ./.config
#make menuconfig
#make dep
-编译和安装内核模块
#make modules SUBDIRS=路径
#cp 源路径/*.o /lib/modules/内核版本号/kernel/....
#depmod -a
4. 编译2.6内核(RHEL)
(1) 完全编译2.6内核
-准备工作
a. 获取内核源码(建议不用光盘中的源码)
b. 安装gcc相关编译工具
-解压缩内核源码
#tar -xzvf/-xjvf *.tar.gz/*.tar.bz -C /usr/src
-修改内核版本号
#cd /usr/src/内核源码解压缩目录
#vi Makefile
...........
-定制内核功能
#make mrproper
#make menuconfig
-编译内核及模块
#make
-安装内核与模块
#make modules_install
#make install
(2) 编译内核部分模块
-准备工作
a. 获取内核源码(建议不用光盘中的源码)
b. 安装gcc相关编译工具
-解压缩内核源码
#tar -xzvf/-xjvf *.tar.gz/*.tar.bz -C /usr/src
-修改内核版本号与当前内核一致
.......
-定制内核功能
#make mrproper
#make menuconfig
-编译内核模块
#make modules SUBDIRS=路径
-安装内核模块
#cp 源路径/*.o /lib/modules/....
#depmod -a
注:-lsmod //查看当前内核已加载的模块
-modprobe //加载模块,且自动解决依赖关系
-insmod //加载模块,手工解决依赖关系
-rmmod //卸载模块
-modinfo //查看指定模块的信息
二. 安装设备驱动程序
1. 设备分类
(1) 块设备
(2) 字符设备
(3) 管道设备
2. Linux设备管理层次
(1) 面向用户---设备文件
(2) 面向设备---驱动程序
注:mknod用于创建设备文件,格式为:mknod 设备文件名 类型 主设备号 从设备号
3. 驱动程序的安装
(1) 自动安装
如果所安装的硬件驱动是系统自带的,则在安装系统时或在启动系统时会自动安装驱动
注:linux系统每次启动时都会启动kudzu服务,利用该服务来检测新硬件
(2) 手工安装
-获取硬件的驱动程序
-解压缩源码包、并查看说明
-编译
-安装
-加载模块
实例:安装D-LINK 530TX网卡驱动
#tar -xzvf 530tx.tar.gz
#cd 530tx
#make
#mkae install
#modprobe 530tx