编译内核在公司里也是很重要的,本文来自杜文的投稿,将入选大数据架构师专家月刊。(欢迎大家踊跃投稿,只要你对技术痴迷,善于思考,你也一样可以入选月刊,让更多的人了解你的技术,投稿内容可以是技术文章,可以是感悟,可以是一切你想表达的心声)
环境:rehl7.2 x64 3G内存 3核 40磁盘
[root@duwers~]# uname –r #查看内核
3.10.0-327.el7.x86_64
[root@duwers ~]# mkdir /sdb1 #建立挂载点/sdb1
[root@duwers ~]# fdisk /dev/sdb #把所有空间给sdb1
[root@duwers ~]# mkfs.xfs /dev/sdb1 #格式化sdb1
[root@duwers ~]# mount /dev/sdb1 /sdb1 #挂载
1、 下载相应内核源码包4.4
[root@duwerssdb1]# ls
linux-4.4.tar.xz
[root@duwerssdb1]#
2、 确认系统具备编译软件的基本条件,即make、gcc、gcc-c++、ncurses-devel
[root@duwerssdb1]# cd
[root@duwers~]# rpm -qa | grep make
make-3.82-21.el7.x86_64
automake-1.13.4-3.el7.noarch
[root@duwers~]# rpm -qa | grep gcc
gcc-c++-4.8.5-4.el7.x86_64
libgcc-4.8.5-4.el7.x86_64
gcc-4.8.5-4.el7.x86_64
gcc-gfortran-4.8.5-4.el7.x86_64
[root@duwers~]# rpm -qa | grep gcc-c++
gcc-c++-4.8.5-4.el7.x86_64
[root@duwers~]# rpm -qa | grep ncurses-devle
[root@duwers~]# #没有ncurses-devel,重新安装
[root@duwers~]# yum -y install ncurses-devel
3、 解压内核源码包
[root@duwers~]# cd /sdb1
[root@duwerssdb1]# ls
linux-4.4.tar.xz
[root@duwerssdb1]# xz -d linux-4.4.tar.xz
[root@duwerssdb1]# ls
linux-4.4.tar
[root@duwerssdb1]# tar -xf linux-4.4.tar
[root@duwerssdb1]# ls
linux-4.4 linux-4.4.tar
[root@duwerssdb1]# du -sh linux-4.4
702M linux-4.4
[root@duwerssdb1]#
//
[root@duwerssdb1]# free -m
total used free shared buff/cache available
Mem: 2993 371 721 9 1901 2398
Swap: 2047 0 2047
[root@duwerssdb1]# echo 3 > /proc/sys/vm/drop_caches
[root@duwerssdb1]# free -m
total used free shared buff/cache available
Mem: 2993 333 2512 9 148 2507
Swap: 2047 0 2047
[root@duwerssdb1]#
4、 配置内核编译参数
[[email protected]]# pwd
/sdb1/linux-4.4
[root@duwers linux-4.4]# make menuconfig
[root@duwers linux-4.4]# vim .config
系统自带的是不支持的
[root@duwers linux-4.4]# vim /boot/config-3.10.0-327.el7.x86_64
[root@duwers linux-4.4]# cp /boot/config-3.10.0-327.el7.x86_64 /sdb1/linux-4.4/.config
cp: overwrite ‘/sdb1/linux-4.4/.config’? y
[root@duwers linux-4.4]#
[root@duwers linux-4.4]# make menuconfig
[root@duwers linux-4.4]# vim ./.config
5、 编译内核
//生成内核
[root@duwers linux-4.4]# make bzImage #生成内核
//报错
HOSTCC scripts/sortextable
HOSTCC scripts/asn1_compiler
HOSTCC scripts/sign-file
scripts/sign-file.c:23:30:fatal error: openssl/opensslv.h: No such file or directory
#include <openssl/opensslv.h>
^
compilationterminated.
make[1]:*** [scripts/sign-file] Error 1
make: ***[scripts] Error 2
[root@duwers linux-4.4]#
//解决
[root@duwers linux-4.4]# yum -y install openssl-devel
//重新生成内核
[root@duwers linux-4.4]# make bzImage #半小时
6、 生成新内核的驱动模块
[root@duwers linux-4.4]# make modules #1小时
//清空缓存
[root@duwers linux-4.4]# sync
[root@duwers linux-4.4]# free –m
7、 安装编译好的内核与模块
1) 安装模块
[root@duwers linux-4.4]# make modules_install
2)[root@duwers ~]# cd /sdb1/linux-4.4/
[root@duwers linux-4.4]# make install
8、 查看或修改GRUB菜单(为了确认是不是把内核安装好了)
[root@duwers ~]#vim /boot/grub2/grub.cfg
9、 重启系统,测试新内核工作情况
重启选择
查看新内核
切记,在公司编译内核一定要在虚拟机上实验之后再搬到真机上去编译哦
小手一抖,轻松转走,欢迎你转载给更多需要学习技术的人。
辛舒展: 专注大数据领域,现有技能Python,Linux,
爱好:写程序,写文章,旅游,妹子
标签:4.4,NTFS,Linux,duwerssdb1,内核,duwers,linux,root From: https://blog.51cto.com/zmedu/6229932