【学习番外篇2】Ubuntu系统降内核无法联网+双内核切换
文章目录
- 前言
- 一、下载更新选择内核
- 二、摸索到解决
- 1.噩梦伊始
- 2.噩梦降临
- 3.梦醒时分
- 4.设置引导界面以显示引导界面(多内核共存,重点)
- 总结
- Reference
前言
嗯,延续惯例,介绍背景+吐槽。
如有缘看到此文,并有可以参考的地方,请看完全文再进行,否则后果自负。
背景:
实验室能供我瞎造的linux系统是装的Ubuntu18.04,内核5.4.0-73-generic,然而吧,这RealSense SDK2.0只支持4.4、4. 8、4.10、4.13、4.15及4.16。
诶,还能咋滴,开始csdn查:“Ubuntu18.04怎么降内核?”
很快啊,按着教程装了个4.15.0-135-generic的,但是不知道怎么切换内核,想着反正也不要5.4版本的,就按着教程rm
掉呗(嗯,我就是个憨憨),最后系统只剩一个4.15的内核,可以,reboot
。
结果,检测不到网卡和无线的驱动,人傻,又开始csdn:“Ubuntu系统无法联网”,然而搞了半天,按着各种方法都没有什么用,要么是虚拟机的,要么是刚安装完后找不到网络的,最后当然是选择重下内核,替代。其实整个的思想就是重新下载内核,删除不需要的内核。
因为走了很多弯路,故记录过程,留给以后的自己和像我一样碰到此情此景不知所措的小小白,各位dalao不喜勿喷。
设备信息:
操作环境:Ubuntu18.04
内核信息:初始:5.4.0-73-generic;终版:4.15.0-041500-generic+5.4.0-050400-generic
一、下载更新选择内核
step1:编辑/etc/apt/sources.list
文件,在最后一行加入
deb http://security.ubuntu.com/ubuntu trusty-security main
step2:更新sudo apt-get update
step3:下载自己所想要的内核
sudo apt-get install linux-image-4.15.0-135-generic
我此时下载安装的是linux-image-4.15.0-135-generic
step4:查看是否安装成功
dpkg --get-selections| grep linux-image-4.15.0-135-generic
step5:编辑vim /etc/default/grub
文件,找到GRUB_DEFAULT=0
将它修改为
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 4.15.0-135-generic"
优先选择这个登陆。
step6:更新一下 Grub 引导
sudo update-grub
step7:重启系统
sudo reboot
不出意外,重启后就是新的内核了,可以使用命令:uname -r
查看当前的内核。
二、摸索到解决
1.噩梦伊始
然而吧,我就是启动不起来,于是乎我查找第二篇教程,这篇教程也可以说是对一个新手噩梦的开始,因为我启动不起来,所以按着第二个教程一步步操作,删除了原内核,只在系统中留一个内核,结果自闭。
不是教程作者的锅哈,只不过对于小白来说不是很友好,但作者没有引导读者从Grub选择内核的角度登陆,我就觉得不是很合理。
过程记录如下:
step1:在更新Grub 引导
sudo update-grub
可以看到此时系统的内核核心文件(这是我现在的系统信息,之前没截图)
教程教我的是,把高版本的文件核心文件删去,即
step2(这一步是否执行,自己斟酌):
sudo rm -rf /boot/vmlinuz-5.4.0-73-generic
sudo rm -rf /boot/initrd.img-5.4.0-73-generic
注:查过很多帖子有许多开发者表明,不会轻易使用rm
命令,后果难保。
step3:删除系统中多余的内核软件包,把不需要的删掉
先看看安装了什么内核:sudo dpkg --get-selections |grep linux
(此处无图,忘了截图…)
内核后标明install
的就是此时系统中存在的软件包,有的内核后面是deinstall
,那些也可以直接删除:
sudo dpkg -P linux-headers-5.4.0-73-generic //dpkg安装的内核仍然用dpkg删除,具体删除内容自己参考自己系统的文件情况sudo apt autoremove linux-headers-5.4.0-73-generic //apt安装的内核用apt删除,具体删除内容自己参考自己系统的文件情况sudo apt purge linux-headers-5.4.0-73-generic //同上
step4:最后更新一下Grub:sudo update-grub
小结:再次更新Grub 引导就只剩上文安装好的4.15.0-135-generic
内核,然后重启,确实是4.15.0-135-generic
内核了,因为系统里只有一个内核。
而,这个新内核却无任何的网卡驱动,连我外置的无线模块都识别不到,更别提原本就有的有线网卡了。如果我没有把原来的内核rm和卸载的话,我就可以切换到另一个内核进行一些处理。
所以指出上述做法有弊端,故在升级和降级应保留多个内核,用引导的方式决定每次进入哪个内核,提高容错率。
2.噩梦降临
由于没有网络,所以csdn中任何在系统中apt install的我通通做不了。
什么ifconfig后的eth0…也跟我没关系,只能尝试着做一些完全不需要网络的尝试,如:service NetworkManager stop、start、restart之类的,毕竟也不知道是什么问题。
后面冷静下来思考是不是驱动问题,想重新下驱动,但是没有找到单独下驱动的方法,一般的帖子写的都是“刚安装完Ubuntu系统却无法联网”,这种直接在映像文件中的找到bcmwl-kernel-source_xxxxxx_amd64.deb
包重新安装一次即可(这里推荐一个比较好的帖子[4]),但是我不是原来映像文件中的内核,而且删了原来内核的核心文件,嗯,原地爆炸。
我连usb共享手机网络都试了,结果也还是连不上网,卡住…
3.梦醒时分
嗯,想办法重新下新的内核覆盖,然后就成了呗。
内核下载网址([3]博主提供):
https://kernel.ubuntu.com/~kernel-ppa/mainline/
step1:我直接在能联网的Windows系统中,登入网站,在网站中下载自己想要的版本,以5.4.0
为例,
64位电脑,则找到Build for amd64 …,如果是其他芯片就找到对应项目:
下载图中不包含lowlatency的所有安装包,4.17之后的版本有module的包,所以一共下载4个包;而4.17之前的没有,一共下载3个包。
注:linux的内核除了generic(通用)类型外还有至少3种:lowlatency(低延时)、preempt(抢占式)和realtime(实时),该网站好像就只有generic和lowlatency,一般选择generic。
step2:用U盘拷贝到Ubuntu系统中(没网嘛,有什么办法),用命令行sudo dpkg -i
安装刚刚下载的包:
// 可以依次安装
sudo dpkg -i linux-headers-5.4.0-050400.201911242031_all.deb
sudo dpkg -i linux-headers-5.4.0-050400-generic_5.4.0-050400.201911242031_amd64.deb
sudo dpkg -i linux-image-unsigned-5.4.0-050400-generic_5.4.0-050400.201911242031_amd64.deb
sudo dpkg -i linux-modules-5.4.0-050400-generic_5.4.0-050400.201911242031_amd64.deb//也可以把他们放在一个文件夹下一块安装
sudo dpkg -i linux*//如果安装过程报错,执行一下命令修复
sudo apt-get -f install//如果无法修复,则需要依次安装每个包,查看缺少了什么依赖。然后手动安装上去。
step3:更新Grub引导并重启
sudo update-grub
sudo reboot
重新开机后查看内核uname -a
,应该可以看到默认使用的是最新版本的内核。
4.设置引导界面以显示引导界面(多内核共存,重点)
先打开/etc/default/grub
文件
如图所示,将GRUB_DEFAULT=0
,将GRUB_TIMEOUT_STYLE=hidden
注释掉,然后GRUB_TIMEOUT=10
(选择时间只有10s,你可以根据自己的想法设置长或者短一点),最后将GRUB_CMDLINE_LINUX_DEFAULT="text"
。
就可以在启动Ubuntu系统的时候,选择不同的内核系统进行,实现多内核共存。
总结
作为小白,除了经验不足、学识浅薄之外,最主要的问题是还是遇事没办法冷静分析,一上来就想着打开csdn对话框,然后如果找不到答案就重装系统,这都是不可取的。
这篇文章中走的很多弯路其实都是因为不愿思考、不善思考,问题并不难解决。
希望往后的自己可以多思考、冷静分析、提高做事情的效率。
Reference
[1]. https://www.cnblogs.com/minseo/p/13065321.html
[2]. https://blog.csdn.net/qq_32590631/article/details/114868606
[3]. https://blog.csdn.net/surtol/article/details/102497572
[4]. https://blog.csdn.net/ifmvo/article/details/54023628
【学习番外篇2】Ubuntu系统降内核无法联网+双内核切换相关推荐
- 动手学深度学习番外篇 01.为什么from d2l import torch as d2l
动手学深度学习番外篇 01.为什么from d2l import torch as d2l 在跟着网站动手学深度学习学习的时候,发现代码开头中经常要运行这样一句话 from d2l import to ...
- python学习 番外篇之模块
番外篇:模块 模块概念 1.什么是模块 2.为何要用模块 模块的使用 首次导入模块发生的事情 不要一行导入多个模块 为导入的模块起别名,简化代码 直接从模块导入名称 一次导入模块所有名称,只适合少数情 ...
- 【学习番外篇】Firefly ROC-RK3328-CC刷Ubuntu18.04+VNC
文章目录 前言 一.准备工作 二.烧录系统 1.下载对应的烧写工具 2.启动系统 三.连接Windows和远程管理可视化桌面 1.连接putty 2.在putty下联网 3.重点!!!安装桌面环境及V ...
- lua 去除小数点有效数字后面的0_【物联网学习番外篇】Lua脚本编程扫盲
在后面的物联网教程中,我们很快就会接触到Lua这个脚本语言,那么本篇内容结合后续的一些需要的开发点,针对Lua零基础的读者写一篇入门扫盲文章. 01 Lua 介 绍 Lua是一个小巧的脚本语言,其目标 ...
- swft入门学习番外篇-创建项目
创建一个简单地项目文件,需要一下几个步骤 1.File->New->Project; 新建一个新的项目 2.Application->Single View Application ...
- 【大数据学习番外篇之爬虫3】爬美女照片
为什么猪会说谎?因为它们不想被揭穿是猪! 1. 为什么小鸟总是歌唱?因为它们不会说话! 2. 为什么光头强不喜欢去博物馆?因为里面都是古人的头发! 3. 为什么鱼不喜欢唱歌?因为它们会唱跳不动! 4. ...
- 神经网络学习小记录-番外篇——常见问题汇总
神经网络学习小记录-番外篇--常见问题汇总 前言 问题汇总 1.下载问题 a.代码下载 b. 权值下载 c. 数据集下载 2.环境配置问题 a.20系列所用的环境 b.30系列显卡环境配置 c.CPU ...
- 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV
转载自:https://zhuanlan.zhihu.com/p/24425116 本篇是前面两篇教程:给深度学习入门者的Python快速教程 - 基础篇 给深度学习入门者的Python快速教程 - ...
- 系统工程(SE)学习笔记(番外篇之一)——Capella使用体会兼谈SE工具
系统工程(SE)学习笔记(番外篇之一)--Capella使用体会兼谈SE工具 零.Capella简介 壹. Capella的优势 贰.Capella的缺点 叁. 生态环境 肆. 总结 说到SE,就不能 ...
- 教你从0到1搭建秒杀系统-Canal快速入门(番外篇)
Canal用途很广,并且上手非常简单,小伙伴们在平时完成公司的需求时,很有可能会用到.本篇介绍一下数据库中间件Canal的使用. 很多时候为了缩短调用延时,我们会对部分接口数据加入了缓存.一旦这些数据 ...
最新文章
- python中使用squarify包可视化treemap图:treemap将分层数据显示为一组嵌套矩形,每一组都用一个矩形表示,该矩形的面积与其值成正比、自定义设置每一个数据格的颜色
- linux 内核函数 copy_from_user和copy_to_user 介绍
- python爬虫成果_Python爬虫(小练习)
- java hibernate错误org/dom4j/DocumentException、org/jboss/logging/BasicLogger、org/apache/lucene/index...
- t检验自由度的意义_T检验、F检验和统计学意义
- 从头写个http client(java)
- ML大杂烩:**常见机器学习算法公式梳理
- python如何导入numpy简书_如何使用python3.x成功导入numpy?
- JWT token信息保存
- http 阮一峰_互联网协议入门(二)
- python中result的用法_Python中qutip用法示例详解
- Java语言程序设计(一)选择题
- phoenixframework自动化测试平台webUI代码示例
- 手机自动化测试:Appium源码分析之跟踪代码分析七
- Redis相关面试题总结
- 关于navicat premium数据库激活一直不成功的解决方法(亲测有效)
- win10更改登录密码
- 一个四维混沌吸引子曲线(matlab完整代码)
- Android获取缓存大小和清除缓存功能实现
- 【学会了学会了】Flink官网翻译——Flink集群部署概览
热门文章
- php升级版本后关于Mbstring、OpenSSL等一些扩展都无法开启的状况
- 如何远程管理服务器详解
- 20221118-Latex如何编辑流程图
- 全球著名平面设计BeforeAfter视频教程合集中文字幕
- 【Net】TCP四大机制
- 『docker笔记』Centos7离线安装docker[补充CentOS开机自启动脚本/Linux用户组group]
- 江苏计算机应用基础自考时间,江苏省2019年4月自考科目考试时间表已出,请看!...
- 5G随身wifi如何选择?简单分类一下
- 18_数组的定义和访问
- JavaScript实现商品图片随鼠标动态全图放大