Ubuntu 16.04到18.04系统升级
预备工作
版本升级前惯例需要更新包列表和升级软件包到最新版本
sudo apt-get update
sudo apt-get upgrade
解决更新源连接失败的问题
执行sudo apt-get update
的时候出现报错无法解析域名 archive.ubuntukylin.com
参考解决方案无法连接上 archive.ubuntukylin.com
打开路径
cd /etc/apt/sources.list.d
查看该路径下所有列表,一般来说,会出现这个报错的就是因为之前安装了某输入法,所以查看各种sogoupinyin.list
,挨个用sudo vim
打开,井号注释掉里面的,忽略掉更新源就行
这是本机的解决方式,不过关于无法解析域名的问题也可能与DNS配置有关,以后可以视情况而定
正式升级
使用ubuntu的升级工具(参考如何将Ubuntu升级到18.04最新版)
sudo do-release-upgrade
解决登录循环问题
系统升级之后重启,新的登录界面,然后糟心的事情出现了……明明用户名密码都正确,结果屏幕闪一下,又回到登录界面
救命……于是赶紧查了查看主流解决方法都有什么
这个问题主流解释的原因跟显卡有关,而且发生状况正好跟我的PC机子相吻合。就是主板Intel集显,然后用的是Nvidia的独立显卡
进一步解释就是,这个系统认不得我的显卡了。
那正常解决方法一般来说应该有两个。第一是更新系统内核,内核够新,或许就能认得显卡。第二个方法是更新显卡驱动,让显卡这边主动帮助系统去认识它。
解决登录问题
既然图形界面进不去,至少也得用命令行操作吧
参考此条的step1部分如何解决Ubuntu18.04循环登录/卡在开机界面/无法进入图形界面的问题
简单来说,就是在登录Ubuntu系统的引导页面,第一行*Ubuntu
的地方按e
进入编辑模式。出现的编辑项里,到倒数第二行末尾找到handoff
在后面添加数字3,变成handoff 3
,也就是多用户纯文本模式。
再按ctrl+x
就可以进入命令行模式。用自己的用户名密码登录即可操作后续。
查看内核版本
查看内核版本uname -a
普遍认为4.15的内核就可以了,验证了一下没问题
解决显卡驱动问题
首先简述一下我的反复踩坑过程
卸载旧的显卡驱动
有些简单卸载重装指令并不是太好用,例如下面这个
没记错的话,用了上面这个指令我莫名删了一堆python相关包,也不知道跟这个显卡有啥关系
不过这样做应该确实是把旧驱动卸载了
第一坑,旧版本驱动不可行,装最新驱动
输入nvidia-smi
查看GPU状态
得到报错Command 'nvidia-smi' not found, but can be installed with:
系统推荐了两个驱动安装指令,不过推荐的驱动都太老了,例如我试了这个指令
sudo apt install nvidia-utils-390
装完之后输入nvidia-smi
还是报错
这回报错NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the lastest NVIDIA driver is installed and running.
于是我又卸载了,到官网看看当前显卡的最新驱动是什么版本
关于显卡驱动的安装,其实有很多方式,很多人是直接往机器里面下了安装包然后再run安装
因为我反复多次,没记错的话最后选的是用PPA仓库的方式安装的,可参考博文
另外,查询可用驱动版本也能用命令行,不过建议还是核对一下官网
sudo apt-cache search nvidia
或ubuntu-drivers devices
第二坑,需要禁用驱动加载
除了查看GPU状态之外,考虑到驱动加载的问题,应该再看看当前内核到底加载的啥
使用指令lsmod
查看当前已载入系统模块
如果N卡正常运行,上面指令里面应该是第一条有输出,第二条没输出。很不幸,现在是第一条没输出,第二条有输出……说明加载的不是N卡自己搞的驱动,而是那个开源的驱动。
于是……又去卸载驱动,然后考虑应该禁用开源驱动。
禁用方法参考博文
首先打开sudo vim /etc/modprobe.d/blacklist.conf
禁用
保存退出后使之生效
sudo update-initramfs -u
第三坑,解决nvidia-smi报错
后面的尝试就比较混乱了
最新驱动重装nvidia-smi
还是报错,结果又装了别的
参考stackoverflow里面的提问
根据回答之一装了nvidia-cuda-toolkit
有篇总结nvcc
和nvidia-smi
指令的博文可以参考一下
另外有说用dkms安装驱动的,但是我这边试了没作用
第四坑,lightdm加载失败bug
在不报错之后,想把装显卡驱动之前停了的显示服务lightdm
打开
之前禁用时候用了
sudo service lightdm stop
现在想启用,使用指令
sudo service lightdm start
结果报错
关于这个启动不了的头疼的问题,最后发现是个倒霉的Ubuntu的bug
用下面的指令就可以正常启动
/lib/systemd/systemd-sysv-install enable lightdm
这个坑我卡了很久,结果这算是个跟显卡驱动无关的问题
总结以上流程代码(重点)
因为操作反复多次,所以这个总结算是记忆有点模糊的整理可能应该做的全流程
1.卸载旧驱动
2.关闭图形界面
sudo service lightdm stop
3.禁用开源驱动nouveau
首先打开sudo vim /etc/modprobe.d/blacklist.conf
禁用
4.安装驱动
5.安装cuda组件
6.打开图形化界面
/lib/systemd/systemd-sysv-install enable lightdm
重启
7.检验指令汇总
查看N卡状态nvidia-smi
检验N卡官方驱动是否加载lsmod | grep nvidia
检验开源驱动是否关闭lsmod | grep nouveau
结果
Ubuntu18.04在登录的时候设置小按钮有个桌面选项,一顿操作下来,我发现Unity和Ubuntu Wayland两个选项都能进,但是Ubuntu这个选项不行,Ubuntu这个选项似乎是Gnome版本的,再尝试解决也不能成功,而且我的主板不能disabling secure boot(主板BIOS里面boot设置的是Legacy而不是UEFI所以没法关这个安全启动)
关于ubuntu的安全启动可以参考官方wiki,但是这里面解决方案对本机来说都不行
参考这一条,有人说Wayland也不行……我也搞不懂为啥了,总之就最上面的选项进不去。