CentOS源码更新Linux最新内核

  • 查看当前的内核版本

[root@linux home]# uname -a

Linux linux 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

  • 下载最新的内核

[root@linux home]# ll | grep linux

-rw-r--r--. 1 root root 103047692 May 24 17:35 linux-4.16.11.tar.xz

  • 编译准备

[root@linux boot]# ll -ahl /boot | grep config-$(uname -r)

-rw-r--r--. 1 root root 138K Aug 23 2017 config-3.10.0-693.el7.x86_64

[root@linux boot]# cp config-3.10.0-693.el7.x86_64 .config

这个文件是配置文件

需要拷贝出一个配置文件

[root@linux linux-4.16.11]# make menuconfig

选择要编译的模块,生成当前目录的配置文件

  • 开始编译

[root@linux linux-4.16.11]# make -j 28

编译完成

  OBJCOPY arch/x86/boot/setup.bin

  BUILD arch/x86/boot/bzImage

Setup is 16860 bytes (padded to 16896 bytes).

System is 6937 kB

CRC 5dda9dcd

Kernel: arch/x86/boot/bzImage is ready (#1)

  • 安装

[root@linux linux-4.16.11]# make modules_install

...

  INSTALL sound/usb/snd-usbmidi-lib.ko

  INSTALL sound/usb/usx2y/snd-usb-us122l.ko

  INSTALL sound/usb/usx2y/snd-usb-usx2y.ko

  INSTALL virt/lib/irqbypass.ko

  DEPMOD 4.16.11

[root@linux linux-4.16.11]# make install

sh ./arch/x86/boot/install.sh 4.16.11 arch/x86/boot/bzImage \

 System.map "/boot"

  • 启动内核作为引导

[root@linux linux-4.16.11]# grub2-mkconfig -o /boot/grub2/grub.cfg

Generating grub configuration file ...

Found linux image: /boot/vmlinuz-4.16.11

Found initrd image: /boot/initramfs-4.16.11.img

Found linux image: /boot/vmlinuz-3.10.0-862.3.2.el7.x86_64

Found initrd image: /boot/initramfs-3.10.0-862.3.2.el7.x86_64.img

Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64

Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img

Found linux image: /boot/vmlinuz-0-rescue-842357192c9244d09270f31a145fa5e1

Found initrd image: /boot/initramfs-0-rescue-842357192c9244d09270f31a145fa5e1.img

done

[root@linux linux-4.16.11]# 

  • 失败分析

这里没能启动成功

是因为系统是Legacy时候才找这个启动配置

UEFI模式的话是要去

/boot/efi/EFI/centos

下面找grub.cfg文件的

这时候在efi shell下是无法拷贝的

只能挂载镜像文件然后进入救援模式,然后找到挂载点的文件系统,进去之后把

/boot/grub2/grub.cfg 拷贝到   /boot/efi/EFI/centos/grub.cfg

另外启动的话,默认的还是以前的kernel,是保存在一个配置文件中

可以通过修改下面这个文件修改saved为0

vim /etc/default/grub/grub.cfg

修改

GRUB_DEFAULT=0

表示GRUB初始化页面的第一个内核作为默认内核

这样就可以正常启动了

[root@localhost centos]# uname -a

Linux localhost.localdomain 4.16.11 #1 SMP Thu May 24 19:35:11 CST 2018 x86_64 x86_64 x86_64 GNU/Linux

[root@localhost centos]# 

参考文献:

https://linux.cn/article-9665-1.html

https://linux.cn/article-8310-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
编译 CentOS 8.5 的 Linux 内核源码需要以下步骤: 1. 下载内核源码: 在 CentOS 官方网站或者 Linux 内核官方网站上下载 CentOS 8.5 对应的内核源码包。你可以使用 `wget` 命令来下载,例如: ``` wget https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.15.tar.gz ``` 2. 解压源码包: 使用 `tar` 命令将下载的源码包解压,例如: ``` tar -xzvf linux-5.15.tar.gz ``` 3. 安装编译依赖: 安装编译内核所需的依赖包,例如: ``` sudo yum install gcc make ncurses-devel openssl-devel elfutils-libelf-devel ``` 4. 配置内核选项: 进入解压后的源码目录,并执行以下命令以配置内核选项: ``` cd linux-5.15 make menuconfig ``` 在文本界面的配置界面中,可以修改内核选项,例如启用或禁用某些功能、添加或删除驱动程序等。完成后保存并退出。 5. 编译内核: 执行以下命令开始编译内核: ``` make ``` 这将花费一些时间进行编译,可以使用 `-j` 参数指定并发任务数量,例如 `make -j4`。 6. 安装内核: 编译完成后,执行以下命令安装内核: ``` sudo make install ``` 7. 配置引导管理器: 根据你使用的引导管理器(如 GRUB 或 LILO),更新引导配置文件以引导新内核。 8. 重新启动: 完成上述步骤后,重新启动计算机,选择新编译的内核进行启动。 请注意,编译内核需要一定的编译知识和经验,如果你对此不太熟悉,建议在测试环境中进行操作,并备份重要数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

คิดถึง643

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值