centos:http://vault.centos.org/下载对应版本内核
也可以使用标准内核:http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/
此处建议使用centos对应版本的内核。
3、挂载U盘3.1、 插入U盘
3.2、 #sudo fdisk –l
查看所挂载盘符名称如下图,假设盘符名称为sdc1
3.3、 建立挂靠文件夹
#mkdir /mnt/usb_disk
3.4、 挂载U盘
#mount /dev/sdc1 /mnt/usb_disk
4、配置本地yum源,安装依赖工具,如果你的系统可以联网,可忽略此步4.1、进入/etc/yum.repos.d目录,ls查看当前目录下的yum源配置文件,新建bak目录,将除CentOS-Media.repo之外的repo文件移动到bak文件夹备份
4.2、使用vi编辑文件CentOS-Media.repo,查看配置如下
4.3、按照如下配置修改
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/usb_disk/ //路径需与你光驱或ISO挂载的路径相同
gpgcheck=1
enabled=1 //enable后面值必须修改为1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-6 //gpgcheck=0时可无需该条
4.4、输入“yum clean all”命令清理
4.5、可以使用yum -y install vim进行安装测试
4.6、安装编译内核的依赖工具
yum install wget gcc gc bc gd make perl ncurses-devel xz rpm-build xmlto asciidoc hmaccalc python-devel newt-devel pesign binutils-devel audit-libs-devel numactl-devel pciutils-devel perl-ExtUtils-Embed -y
5、源码解压
如果下载的是.src.rpm包
rpm -ivh kernel-3.10.0-327.36.3.el7.src.rpm
tar -xf linux-3.10.0-327.36.3.el7.tar.xz -C /usr/src/
如果下载的是tar.xz包
tar -xf linux-3.10.0-327.36.3.el7.tar.xz -C /usr/src/
如果需要修改代码调试内核,可修改源文件。
6、编译安装修改后的内核版本6.1、创建.config文件
这里报错了,安装指定包
[root@localhost linux]# yum search curses #从yum源查找curses相关的包 , 配置本地yum源看上。
[root@localhost linux]# yum install ncurses #安装ncurses
[root@localhost linux]# yum install ncurses-devel #安装ncurses-devel
再次make menuconfig这个命令后,会出现如下的字符界面,我们就可以在这个界面上对内核进行配置。我们这里是第二次使用make menuconfig了,需要先运行:make mrproper来清除以前的配置,回到默认配置,然后再运行:make menuconfig生成.config文件 通过这个工具可以设置内核配置参数。
关于选择这个地方需要说明下。
- [*]:编译到内核文件中去,也就是类似这个vmlinuz-3.10.0-693.el7.x86_64文件中去。
- [m]: 编译到模块文件中去,也就是放到类似这个/lib/modules/3.10.0-693.el7.x86_64/目录中去。
6.2、执行make 命令
[root@localhost linux]# make -j HOSTCC scripts/kconfig/conf.o HOSTLD scripts/kconfig/conf scripts/kconfig/conf --silentoldconfig Kconfig .... scripts/sign-file.c:25:30: fatal error: openssl/opensslv.h: No such file or directory #include
上面的报错了, 才发现原来的编译环境的包没有安装好。
执行下面命令安装包 [root@localhost linux]#yum groups install "Development and Creative Workstation" "Compatibility Libraries" -y
这里可以仅仅安装openssl相关的基础包和开发包即可的,但是为了后续其他的编译安装,我就直接安装了"Compatibility Libraries"包。
6.3、执行 make clean 和make
[root@localhost linux]# make clean # 清空错误的编译环境
[root@localhost linux]# make # 再次编译 ,这里可以指定并行度的,如果你有4个cpu,可以执行如下命令 make -j4 来加速编译进度。
6.4、 执行 make modules_install make install
[root@localhost linux]# make modules_install
[root@localhost linux]# make install
6.5、重新电脑选择新编译好的linux
7、 卸载新内核- 删除/lib/modules目录下对应版本的库文件
- 删除/usr/src/linux目录下的源码和压缩文件
- 删除/boot/启动的内核和内核镜像文件
- 删除grub.conf配置文件新内核对应的条目