kernel + modules
1. 升级内核
2. 给当前内核增加功能(模块)
3. 安装驱动
一、升级内核的目的
给内核瘦身
追求前瞻性
开发测试使用
增加新的功能
使用新的硬件驱动
其它需求(嵌入式开发)
kernel版本
二、升级内核 linux-3.12.7.tar.xz
==实施步骤
1. 安装编译所需的工具 gcc ncurses-devel make(开发工具)
2. 下载内核源码
a. www.kernel.org(最新)
b. ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server
ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server
3. 解压linux-3.12.7.tar.xz
4. 配置内核编译的参数make menuconfig
5. 开始编译make //等价于这两个命令make bzImage make modules
6. 安装模块make modules_install //安装到了 /lib/modules/$(uname -r)
7. 安装内核make install //安装到了 /boot
8. 检查 ls /boot, /boot/grub/grub.conf, /lib/modules
==具体实施
# LANG=C yum -y groupinstall "Development tools"# yum -y install ncurses-devel# tar xvf linux-3.12.7.tar.xz -C /usr/src/# cd /usr/src/linux-3.12.7/# cp /boot/config-2.6.32-358.el6.x86_64 .config//将系统中原有的config复制# make menuconfig //配置,即定制新kernel的功能
可选操作:定制kernel版本名
# head -5 Makefile
VERSION = 3
PATCHLEVEL = 12
SUBLEVEL = 7
EXTRAVERSION = -jeson
# make# make modules_install# make install # ls /boot //查看是否有新kernel# vim /boot/grub/grub.conf //可调整默认启动内核# ls /lib/modules/3.12.7-yangsheng/kernel/fs/ntfs/ //检查模块是否存在
三、升级内核 linux-3.14.1.tar.xz
1.建立必要的目录,安装必要的包
[root@Jeson ~]# yum install gcc ncurses-devel make -y[root@Jeson kernel]# mkdir /opt/download/kernel -p[root@Jeson kernel]# cd /opt/download/kernel
2.下载对应的最新的linux内核版本
[root@Jeson kernel]# wget http://192.168.42.1/download/day8/linux-3.14.1.tar.xz[root@Jeson kernel]# tar -xvf linux-3.14.1.tar.xz
3.进行内核的配置和变异。
[root@jeson linux-3.14.1]# cp /boot/config-2.6.32-358.el6.x86_64 ./.config \\尽量能拷贝老版本系统的config文件[root@jeson linux-3.14.1]# make menuconfig
4.选择编译进去ntfs模块
[root@Jeson linux-3.14.1]# make modules_install[root@jeson linux-3.14.1]# make[root@jeson linux-3.14.1]# make install
//验证编译后新加入了模块 [root@Jeson linux-3.14.1]# ll /lib/modules/3.14.1/kernel/fs/ntfs/ntfs.ko
编译过程中遇到的一些错误。
错误1:
sh /opt/download/linux-3.0.10/arch/x86/boot/install.sh 3.0.10 arch/x86/boot/bzImage \
System.map “/boot”
ERROR: modinfo: could not find module lpc_ich
新的内核中驱动没有加载到ISA bridge接口驱动。
错误2:
在执行make 时候出现,auto.conf找不到。
解决方式:
wget http://192.168.1.55/download/auto.conf include/config/auto.conf
错误3:
在执行make modules_install 时出现depmod.sh 57 kill 变量
如下:
./opt/download/kernel/linux-3.14.1/scripts/depmod.sh: line 57: 343 Killed “$DEPMOD” “$@” “$KERNELRELEASE” $SYMBOL_PREFIX
解决方式:
vim ./scripts/depmod.sh
注释掉”$DEPMOD” “$@” “$KERNELRELEASE” $SYMBOL_PREFIX 行
这个错误出现是因为交换分区过小
错误4:
在执行make的时候出现系统循环的报WARNING,中文大概意思是系统时钟错误的问题。
解决方式:
这个时候需要检查系统时钟,查看当前时间是否正确。