编译内核源码(linux 4.3.3)

我终于编译成功了,可以说我编译了很久,3.16.75版本的或者是3.13.1版本的我都尝试过还是没有成功,我也不知为什么(可能环境问题,出现诸如在reboot后启动的时候出现docker container引擎加载失败导致启动不了),这次我用了linux的4.3.3又做了尝试终于成功了。希望可以给大家带来参考:(我原始的linux环境是5.2版本的)

在选择机器时,最好选择没有GPU的,因为GPU的驱动版本可能会和编译安装的新内核版本发生冲突。出现类似的错误(直截取一部分):

Makefile:19: /Kbuild: No such file or directory make[2]: *** No rule to make target `/Kbuild'. Stop.

首先是更新yum,可能要很久大约半个小时:

sudo yum update -y

然后执行下面指令,会安装一系列的包:

yum groupinstall "Development Tools"

如果在install过程中出现如下错误(截取错误的重要一部分展示):

here is no installed groups file

解决方法:

yum group info 'Development Tools' #显示信息
yum groups mark install "Development Tools"
yum group list #在installed中显示Development Tools,则表示安装成功

安装其他依赖包:

yum -y install gcc ncurses ncurses-devel bc openssl–devel openssl-devel perl-devel

然后执行内核下载和编译安装:

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.3.3.tar.xz
tar -xf linux-4.3.3.tar.xz -C /usr/src/
cd /usr/src/linux-4.3.3/
make menuconfig
sudo make -j20
sudo make modules_install
sudo make install

警告:如果make install的时候出现warning,即使不是error也会造成安装失败。。。

查看系统存在的内核版本:

awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

设置版本为标号是0的版本:

grub2-set-default 0

查看当前版本:

grub2-editenv list

然后执行reboot,进行重启显示:

[root@localhost ~]# uname -a
Linux localhost.localdomain 4.3.3 #1 SMP Wed Oct 23 21:38:24 CST 2019 x86_64 x86_64 x86_64 GNU/Linux

成功!!!

如果要删除系统中多余的内核版本可以执行下面几个指令:

删除编译的内核:(这里删除的3.13.1版本的linux,所以删除的版本因机器而异)
1.rm /boot/*3.13.1* -f
2.rm -rf /lib/modules/3.13.1/
3.grub2-mkconfig -o /boot/grub2/grub.cfg

make 和 make bzmage的区别:
 

make all = make = make bzImage + make modules

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值