背景:买了块网件的A6210无线网卡,用的是mt7612u芯片,插到deepin下不能识别,ubuntu 18.04下同样不能识别,查过内核版本号,用的都是4.15的内核,去Github查了Linux内核仓库,确认4.15内核里没有mt7612u的驱动,Github上有几个其他的驱动试了试居然会编译出错,后来我查到OpenWRT的mt76驱动是支持mt7612u的,而且这个驱动在4.19的时候就被合并到Linux主分支了。查了内核代码后确实在mediatek的文件夹下找到了mt76的源代码,那么现在,等4.19内核的推送?算了,等到4.19怕是几个月以后了吧,看看Ubuntu内核版本报告http://kernel.ubuntu.com/~kernel-ppa/reports/versions.html就知道进度了,所以最后我决定直接安装4.19的内核,而不是自己编译驱动安装,好处嘛,就是快(免编译)、干净(直接装)、靠谱(内核自带驱动)。

进入正题,安装新内核的操作步骤:

  1. 下载最新内核,进入Ubuntu主线内核仓库http://kernel.ubuntu.com/~kernel-ppa/mainline/,注意虽然这是Ubuntu的内核仓库但是是可以直接安装到deepin的(都是用deb封装的包,而且,我都试过了),这里面有好多内核版本,自己挑一个喜欢的点进去,我点的是v4.19.6,点进去以后会有说明,我们用的64位deepin版本自然是需要“Build for amd64”下面的这几个了,下载
    linux-modules-xxx-generic_xxx_amd64.deb(内核驱动包)、
    linux-image-unsigned-xxx-generic_xxx_amd64.deb(内核镜像包)、
    linux-headers-xxx_all.deb(内核头文件包1)、
    linux-headers-xxx-generic_xxx_amd64.deb(内核头文件包2)、
    这四个deb文件,然后直接按顺序用“深度软件包管理器”安装就行,安装新内核不用担心老内核会被删除,只是会增加一个启动菜单选项,若新内核启动失败那么在启动菜单的第二项进去选择老内核启动就行了,无安全隐患,如果想卸载自己安装的内核就直接卸载上面几个对应的deb包名就行了。
  2. 下载最新固件,本来第一步就已经成功安装好内核了,一般情况下重启后系统就已经用的是新安装的内核了,可如果有朋友像我这样需要最新驱动的话,就要看看是不是要手动安装固件了,因为原来的固件包是跟老内核对应的,有些新驱动需要的固件就没有安装到系统,进入Linux固件仓库https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree,这个目录下的文件就对应着系统盘/lib/firmware/文件夹下的文件,那怎样知道自己缺少哪些固件呢?可以在终端里执行sudo update-initramfs -u命令,如果缺少固件命令会输出“W: Possible missing firmware /lib/firmware/xxx/xxx.bin for module XXX”,一般把要用的驱动XXX的固件.bin补齐就行了,其他用不到的驱动固件可以不要,当然强迫症的可以全部补齐,补齐方法就是到Linux固件仓库找到对应的.bin文件下载后放到系统盘对应的文件夹里,最后别忘了再执行一次sudo update-initramfs -u命令更新系统。注意喽,自己下载的固件在未来可能会跟系统新的固件包冲突,若是存在同名文件的话新固件包的安装会报错,这个时候就需要把之前下载的固件手动删除了。

关于安装新内核后可能出现的启动延时问题:
这个问题是一个不兼容的驱动造成的,通过sudo systemctl --failed命令的输出可以了解到systemd-modules-load服务启动失败,不兼容的驱动是mincores,这个驱动是深度引进的warm-sched延时加载功能的依赖驱动,因为4.19内核API头文件的更改造成编译不通过,进而导致systemd-modules-load服务找不到要加载的内核模块,不断重试造成启动延时。
mincores驱动的源文件路径是/usr/src/mincores-0.2.0/mincores.c,我暂时还没深入研究,有兴趣的朋友可以研究研究该如何修改。
附上编译出错信息:
make: 进入目录“/usr/src/linux-headers-4.19.7-041907-generic”
CC [M] /var/lib/dkms/mincores/0.2.0/build/mincores.o
In file included from ./include/linux/idr.h:15:0,
from ./include/linux/kernfs.h:14,
from ./include/linux/sysfs.h:16,
from ./include/linux/kobject.h:20,
from ./include/linux/module.h:17,
from /var/lib/dkms/mincores/0.2.0/build/mincores.c:1:
/var/lib/dkms/mincores/0.2.0/build/mincores.c: 在函数‘dump_mapping’中:
/var/lib/dkms/mincores/0.2.0/build/mincores.c:122:43: 错误:‘struct address_space’没有名为‘page_tree’的成员
radix_tree_for_each_contig(slot, &addr->page_tree, &iter, next_start) {
^
./include/linux/radix-tree.h:598:45: 附注:in definition of macro ‘radix_tree_for_each_contig’
slot || (slot = radix_tree_next_chunk(root, iter,
^~~~
make[1]: *** [scripts/Makefile.build:310:/var/lib/dkms/mincores/0.2.0/build/mincores.o] 错误 1
make: *** [Makefile:1517:module/var/lib/dkms/mincores/0.2.0/build] 错误 2
make: 离开目录“/usr/src/linux-headers-4.19.7-041907-generic”
复制代码

以上就是安装新内核和驱动固件的操作方法,目前我的deepin有了新驱动的加持,感觉更加给力了,希望各位想用新内核的坛友可以耍得愉快。

更新linux内核方法相关推荐

  1. linux内核5.8.1,Linus Torvalds宣布大规模更新Linux内核5.8

    原标题:Linus Torvalds宣布大规模更新Linux内核5.8 Linus Torvalds已使用第一个发行候选版本正式开始了Linux内核5.8的开发,最能形容这个新版本的单词是" ...

  2. 解决Ubuntu自动更新Linux内核导致显卡驱动无法加载,致使循环在登录界面

    解决Ubuntu自动更新Linux内核导致显卡驱动无法加载,致使循环在登录界面 关闭unattended-upgrade 在/etc/apt/apt.conf.d目录下,查找包含Unattended- ...

  3. linux更新系统内核,如何更新Linux内核来提升系统性能?

    Linux内核的开发速度是前所未有的,大概每二三个月就会有一个新的主要版本发布.每次发布都带来了几项新的功能和改进,许多人可以充分利用它们,让计算体验更快.更高效或者有其他方面的提升. 可问题是,你通 ...

  4. 如何更新 Linux 内核来提升系统性能

    目前的 Linux 内核的开发速度是前所未有的,大概每2到3个月就会有一个主要的版本发布.每个发布都带来几个的新的功能和改进,可以让很多人的处理体验更快.更有效率.或者其它的方面更好. 问题是,你不能 ...

  5. ubuntu 更新linux内核,在Ubuntu中,如何更新Linux内核

    前提条件运行Ubuntu Linux的服务器 访问终端(CTRL-ALT-T或应用程序菜单>附件>终端) 用户帐户,有sudo权限 apt工具,内置于Ubuntu, 内置于Ubuntu中的 ...

  6. 删除linux内核多余架构,删除多余Linux内核方法

    我使用的是Linux Mint,更新频繁,旧版本的Linux内核只会浪费硬盘空间,因此我会定期删除多余的内核. 查看已安装所有内核: sudo dpkg --get-selections |grep ...

  7. deepin更新linux内核,修改deepin启动内核

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 晚上修改了deepin的启动项. 虽然还不知道为什么amd64版本就可以使用,但是先照一个帖子修改了启动项.我觉得没问题 ...

  8. meltdown linux 内核,内核开发者称应更新Linux内核应对 Meltdown 和 Spectre漏洞

    著名的Linux内核开发者Greg Kroah-Hartman发表了一篇关于Linux内核中Meltdown和Spectre补丁状态的深度文章. 正如你所知道的,上周出现了两个严重的硬件缺陷,成为计算 ...

  9. linux fedora 内核,Fedora下使用yum更新Linux内核

    Fedora提供了很强大的包管理器,查找,更新,安装新软件都可以用yum搞定.yum可以更新内核吗?当然可以,不过这个功能不是默认开放的. Fedora发行版使用的内核都是相对稳定的版本,一些最新的功 ...

最新文章

  1. incompatible with sql_mode=only_full_group_by
  2. mysql5.7 数据表的基本操作
  3. sparkstreaming监听hdfs目录_flume kafka和sparkstreaming整合
  4. Druid 配置_配置WebStatFilter
  5. 微服务升级_SpringCloud Alibaba工作笔记0016---Nacos之服务提供者注册
  6. C++ 智能指针unique_ptr的简单实现
  7. XX系统性能测试报告模板
  8. php渐变闪动字体代码,《天龙八部2》33种超好看彩色闪字渐变代码分享
  9. linux系统线程通信的几种方式,Linux的进程/线程通信方式总结
  10. 天气预报小程序 微信小程序期末大作业(含文档)
  11. FS2120双节锂电池保护 IC
  12. Bus error 问题原因
  13. 微信小程序之CSS实现图片遮罩
  14. 微软edge如何退出登录_Microsoft Edge:评论
  15. html正则表达式判断手机号,js正则表达式根据手机号判断校验运营商
  16. MAC Nginx配置: open() “xxx/logs/error.log“ failed (2: No such file or direc
  17. ipip.net IP位置信誉信息爬取
  18. 文件服务器同步,文件服务器同步
  19. children()和children以及childrenNode的区别
  20. 单片机系统:使用lodepng解码png图片

热门文章

  1. 3090微信java,微信推出RTX 3090 Aero 24G显卡,外形神似当年GTX 480
  2. ligerui tree mysql_jQuery LigerUI ligerGrid 在开发中的应用记录
  3. SRPG游戏开发(五十二)第十一章 地图动作与地图事件 - 一 初始化地图动作(Initialize Map Action)
  4. 有哪些免费下载PNG格式的素材网站?
  5. jquery html 乱码问题,jquery中文乱码怎么解决
  6. 【小游戏】2D游戏棍子英雄StickHero(无尽模式)
  7. formValidator正则校验密码大小写字母加数字
  8. 如何用.net c# 读取epub格式文件
  9. PHP清洗过滤器Sanitize filters
  10. Emlog程序小刀娱乐网同款顶踩插件