文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Ubuntu更换指定版本内核

2023-09-04 14:17

关注

背景

Linux块设备驱动程序在5.15高版本内核下编译报错。这样就有两种办法:

  1. 修改驱动程序代码以适应版本更改
  2. 换用低版本内核

第一种办法由于我水平太低,是无法选的
所以只好换一个低版本内核,哪想到就遇到了许多问题

更换指定内核

具体操作:具体操作

以5.4.0版本为例

wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.shchmod +x ubuntu-mainline-kernel.shsudo mv ubuntu-mainline-kernel.sh /usr/local/bin/

在这里插入图片描述

search and find your wanted version

ubuntu-mainline-kernel.sh -r | grep 5.4

在这里插入图片描述

install that version kernel

ubuntu-mainline-kernel.sh -i v5.4.0

在这里插入图片描述

update grub

update-grub

reboot

reboot now

在这里插入图片描述

verify

uname -r

在这里插入图片描述

失败了,22.04发行版装5.4版本内核,貌似不行。

我使用下面这条命令搜索内核时,只能看到5.15和5.17版本的。当我强行下载5.4.0版本的内核后,重启虽然可以选择更换的内核,但是进不了系统。于是只好作罢。

`apt-cache search linux-image-`

反思了一下,还是对linux内核版本和发行版本的理解不够深刻。5.4版本是在20.04版本的Ubuntu上使用的内核,5.15版本是在22.04版本的Ubuntu上使用的。不同发行版本对内核的修改肯定是不同的,所以我强行将5.4版本安装到22.04版本的Ubuntu上时,系统根本就无法启动。

尝试20.04版本Ubuntu

再次尝试更改内核

这一次在20.04版本的Ubuntu上,就找得到很多5.4版本的内核了。

在这里插入图片描述
这次我试一试5.4.75版本

ubuntu-mainline-kernel.sh -i v5.4.75

修改grub文件,以便开机时选择内核

vim /etc/default/grub

改为:

GRUB_HIDDEN_TIMEOUT=10#GRUB_STYLE_HIDDEN

更新grub

update-grub

重启验证一下

选择才装的5.4.75版本内核

在这里插入图片描述
查看现在的版本,已经成功更换了。

uname -r

在这里插入图片描述

安装开发工具,重新编译块驱动程序

更换内核后虚拟机增强功能还失效了,移除了VboxGuest那个盘片重新安装一次再重启还是不行。
算了先不管了

sudo apt-get install build-essential #安装开发工具包,包含gcc等

安装headers

uname -r 查看当前内核版本

apt search linux-header 查找软件库所有的header版本

sudo apt-get install linux-headers-XXX-X-amd6安装header

安装一系列内核用环境

  sudo apt-get install kernel-package    #测试中会出现缺这缺那的情况,如以下包会丢失,如编译源码出现错误,可尝试执行   sudo apt-get install flex bison    #和/或   sudo apt-get install libssl-dev   #和/或   sudo apt-get install libelf-dev #libelf-devel or elfutils-libelf-devel   #如仍未解决,可自行搜索或尝试解决方案      #编译生成menuconfig配置内核界面所需文件(非必须)   sudo apt-get install libncurses5-dev      #开发版本管理及自动化包   sudo apt-get install automake#此处可能会有版本号   sudo apt-get install autoconf cvs subversion

开始编译驱动程序sbull

进入sbull文件夹,make

在这里插入图片描述
一举编译成功了,看来确实是内核版本的问题。

安装模块:insmod sbull.ko

dmesg查看日志

在这里插入图片描述

查看模块信息:lsmod

看到了sbull
在这里插入图片描述
查看块设备信息:fdisk -l /dev/sbulla

在这里插入图片描述
格式化块设备:mkfs.ext4 /dev/sbulla

它说Filesystem too small for a journal,我不懂
在这里插入图片描述
挂载和使用块设备
在这里插入图片描述
在这里插入图片描述
之后可以像使用其他硬盘一样使用此设备
在这里插入图片描述
查看加载结果:mount
在这里插入图片描述
查看使用情况

可以看到计数变为1了
在这里插入图片描述

进入设备创建一个文件

在这里插入图片描述

卸载后重新挂载

在这里插入图片描述

发现卸载后数据不见了,但是重新挂载后,数据又恢复了。

卸载磁盘

在这里插入图片描述
卸载/mnt/sbull的挂载,等待时间超过30秒后,当尝试再次挂载/dev/sbulla设备时,系统提示必须指明该块设备上的分区类型。说明设备已经格式化 。

卸载内核模块
在这里插入图片描述

来源地址:https://blog.csdn.net/qq_51794847/article/details/128432277

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯