文章中包含了一些探索的过程,如果只想解决问题,请直接看最后!

事情的经过:

  已经在ubuntu上安装了好多东西,配置了好多环境,最近突然莫名卡死。我遇到的问题是:

  1.如果开机之后只是打开终端,打开编辑器之类的操作,系统不会卡死。

  2.一旦打开firefox火狐浏览器,一段时间后就会突然卡屏,且无法打卡tty。

  3.最开始以为是swap分区满了,所以尝试过扩大swap分区,和定时清空缓存,但是都无效。

问题分析:

  1.遇到死机的问题之后查看了好多博客,发现大家的情况都和我不一样,我在卡死后不能进行任何包括tty的操作,而且电脑的风扇会快速的旋转。

  2.查看了系统的日志 vim /var/log/syslog,发现无线网卡有如下错误:

rtw_8821ce 0000:03:00.0:firmware failed to leave lps state

  3.所以,我以为是rtw_8821ce出了问题,于是,我进入 软件和更新 在 附加驱动 选项卡中将他禁用,打开firefox浏览器依旧会死机。

  4.于是,我决定卸载firefox。

解决办法:

  1.我尝试卸载firefox,并且安装了chorme:

    查找火狐具体内容:
    dpkg --get-selections |grep firefox
    卸载查找到的内容
    sudo apt-get purge firefox   firefox-globalmenu  firefox-gnome-support   firefox-locale-en   firefox-locale-zh-hans

    安装chorme:参考ubuntu三行命令安装chrome浏览器_cheney康的博客-CSDN博客

  2.但至此,打开chorme,人仍会出现卡死的现象。我们还需要关闭cpu加速才能解决我的问题。操作步骤如下:

    打开chorme设置 --> 高级 --> 系统 --> 使用硬件加速模式(如果可用)

  这个选项默认是打开的,我们将它关闭,至此,再也没有出现卡死的问题。如果以后还是出现,我会继续更新

  2021年9月10日20:14:58

------------------------------------分界线-------------------------------------

        还是老问题,我以为我胜利了,但是没有,我渐渐的发现不是浏览器的问题。之前的操作虽然使得卡死的频率降低了,但还是没有解决问题。

但是最近,我做了一些改动,至此已经两天了,还没有出现卡死的情况。我的做法如下:

我接下来的操作和上述一点关系都没有,因为我重新安装了ubuntu20.04LTS系统,并且没有做上述工作。因此,对于和我问题相似的朋友们,从这里向下作就可以了:

1.问题描述:

  死机之前的报告还是:

  rtw_8821ce 0000:03:00.0:firmware failed to leave lps state

2.我的操作

  【1】在附加驱动中使用无线网卡驱动RTL.

  【2】进入BIOS界面,关闭了《安全启动》选项

  【3】进入系统之后

1 sudo gedit /etc/default/grub

    找到

1 GRUB_CMDLINE_LINUX_DEFAULT=quiet splash

    改为

1 GRUB_CMDLINE_LINUX_DEFAULT=quiet splash nomodeset

    保存之后

1 sudo update-grub

在此之后没有卡死。如果有后续情况,我会继续更新。

2021年10月22日17:13:39

--------------------------分界线---------------------------------

注意:如果修改为nomodeset之后无法进入系统,在进入系统选择界面之后按e找到nomodeset并删除,然后按F10保存并退出。就可以顺利进入到系统。之后,把之前加的nomodeset在文件里面删除掉。

--------------------------分界线--------------------------------

        好,我又失败了,又卡死了.......报错还是:

rtw_8821ce 0000:03:00.0:firmware failed to leave lps state

        我很好奇,这个网卡驱动模块为什么这么顽固,于是,我直接找到了rtw_88的项目rtw88,仔细的阅读了他的介绍。其中有一段是这样说的:

        

        他的意思是,每一次更新内核之后都要重新编译安装rtw88模块。所以我怀疑,很可能是因为更新内核后没有重新编译安装导致的。但是接下来的一件事情确实让我无语了,我竟然连rtw_8821ce这个模块都没有?各位好兄弟也可以检查一下,自己是否真的有这个模块,你可以通过下面这条代码检查:

sudo modprobe -r rtw_8821ce

        这条代码的作用是禁用rtw_8821ce模块,如果你没有,你将会报错:

modprobe: FATAL: Module rtw_8822be not found.

        很好,看来频繁卡死的原因不只是没有在内核更新后重新编译安装,这个模块可能在我不知情的情况下被什么东西破坏的只剩下空壳了。于是,为了禁用它,我先按照项目地址中的步骤安装了rtw_88,而后,再将其禁用。具体步骤如下:       

sudo apt-get update
sudo apt-get install make gcc linux-headers-$(uname -r) build-essential git
git clone https://github.com/lwfinger/rtw88.git
cd rtw88
make
sudo make install

        最后再将其禁用:

sudo modprobe -r rtw_8821ce

2022年3月27日17:48

如果之后又卡死,我会继续更新。

----------------------分界线----------------

不要将其禁用!!!!

不要将其禁用!!!!

不要将其禁用!!!!

        如果之前禁用了,则使用如下命令解除:

sudo modprobe rtw_8821ce

改成这个之后已经三天没卡过了。

2022年3月30日21:10

如果之后又卡死,我会继续更新。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐