[Feelings & Sharing] 讲个故事,有空你也听听啊;--近期更新待机登录界面卡死感想
Tofloor
poster avatar
babyfengfjx
Super Moderator
CQA
2022-03-18 03:27
Author

Dear deepiners:

感谢你们有空来听我讲个故事,故事主要内容是关于最近系统更新导致部分用户待机界面卡死,而后有可能部分用户出现启动卡Logo的问题。

故事开始于3月11号(也就是上周五)我们推送了一波更新,更新内容涉及到内核版本的更新了,实际此次更新主要是为了解决一些漏洞修复:如cve-2022-0847;

对于安全漏洞方面,我们不敢怠慢,或许有些用户也不太在意这些安全漏洞,但对于安全问题我们需要为每一个用户做好力所能及的保障,一般都会第一时间同步修复并更新推送给大家更新修复,此时内核版本是:【5.10.101-amd64-desktop #20.00.05.02-release】

也就是此次更新,造成一些朋友出现了待机后登录界面卡死的问题,当收到大家在论坛中的反馈后,我们第一时间就警觉了,于周六进行紧急分析,直到周六凌晨1点左右,我们推出了一个紧急内核更新:【5.10.101-amd64-desktop #20.00.05.06-release】,发现没有内核版本还是5.10.101,但是release是20.00.05.06了。

这期间我们感受到各位热情deepiners的心声:“更新太频繁了”、“没经过测试就发更新吗?”、“长点心吧……”、“升级能不能慎重点?” ……

看着这么多热情的呐喊,我们挺感慨的,突然觉得自己做的事情是有价值有意义的,在存在问题时,有人能够愿意监督反馈是促使我们逐步走向完善的源泉。

为什么问题没发现呢?

  • 这个问题到现在我们也没能在公司设备环境复现,后续协调了公司能协调的设备资源,遇到一款设备可复现待机卡死的问题,但其他同款设备进行操作时又无法复现,也就是同款机型有的有问题,有的不会有问题;
  • 内部测试的手段策略并不会偷懒,面对此种情况有点力不从心,不同设备表现不一样,同种设备不同软件环境表现也不一样,所以对于大家说的“慎重”、“长心”,我们也都听进去了,希望在所有deepiners的支持下,我们能变的越来越好,能够实现大家的预期;
  • 目前分析了两位用户的实体环境,当前确认的一种情况是,在安装了virtualbox的设备上,可能会出现该问题,主要是virtualbox当前版本较低与新版本内核存在不兼容问题可能导致卡logo的情况,可能会卡约30分钟左右;
  • 还有一种情况是可能安装了docker环境的,也有一定概率会出现该问题,当然都是概率性的存在,并非一定安装了的设备就会出现,这也就是为什么有大部分用户没有任何影响的原因;
    • 承认当前的技术手段和复现策略可能不够,我们会继续努力寻找更多的可能,有大佬有经验分享可以单独私信我,我愿意学习与实践。
    • 从上述分析来看,我们的测试环境需要进一步丰富,需要进一步更加贴近各位用户使用的现场环境才可能有机会发现问题,非常感谢这些热心用户的协助。

过程中发现的问题

很多用户不知道deepin的双内核
  1. 很多用户还不了解deepin系统的双内核机制,目前deepin默认使用的是5.10版本的内核(此次出问题的内核版本),同时也可以安装5.15版本的内核,在升级后,出现问题了,也是可以在grub界面的advance选项中,切换上一个版本内核进行启动的(虽然新版本内核更新了,老版本的也会帮你保留,除非自己卸载了);
  2. 对于内核太专业的知识其实不太懂,但大家应该都知道这货就是打通用户与硬件之间的核心桥梁,对于不同的硬件如果内核没有给你搭桥,没有认识你,或者跟这硬件关系没搞好,那用户想去使用的时候自然就会出现很多问题,而这些问题并不会出现在任何一台设备上,这也就是为什么有些用户使用着系统一直不会有问题,有的用户就会出现各种各样的问题;
  3. 所以在对于硬件兼容这块来说,我们可以切换选择适合自己设备的内核版本来使用,可能有些机器在5.10版本内核跑的比较稳定,有的则使用5.15版本内核比较好。
如何切换双内核?
  1. 在默认安装的时候,一般都是5.10版本的内核,而不会默认安装5.15版本的内核,所以及时你在grub界面选择advance选项,你也看不到其他内核版本,因为你没安装呐;
  2. 此时你可以通过终端来安装另一个版本的内核:
  3. 安装内核
  4. babyfengfjx@babyfengfjx:~$ uname -a  # 可以查看当前使用的内核版本信息
    Linux babyfengfjx 5.10.101-amd64-desktop #20.00.05.06-release SMP Mon Mar 14 09:34:55 CST 2022 x86_64 GNU/Linux
    babyfengfjx@babyfengfjx:~$ sudo apt install linux-image-5.15.   # 可以通过tab键来查看可以安装的内核版本信息
    linux-image-5.15.1-amd64-desktop       linux-image-5.15.24-amd64-desktop      linux-image-5.15.6-amd64-desktop
    linux-image-5.15.1-amd64-desktop-dbg   linux-image-5.15.24-amd64-desktop-dbg  linux-image-5.15.6-amd64-desktop-dbg
    babyfengfjx@babyfengfjx:~$ sudo apt install linux-image-5.15.24-amd64-desktop   # 选择完整的包名进行安装即可
    请输入密码:
    验证成功
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树   
    正在读取状态信息... 完成   
    下列软件包是自动安装的并且现在不需要了:
      patchelf
    使用'sudo apt autoremove'来卸载它(它们)。
    下列【新】软件包将被安装:
      linux-image-5.15.24-amd64-desktop
    升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
    
    
  5. 安装对应头文件
  6. # 安装方法同上
      babyfengfjx@babyfengfjx:~$ sudo apt install linux-headers-5.15.
      linux-headers-5.15.1-amd64-desktop   linux-headers-5.15.24-amd64-desktop  linux-headers-5.15.6-amd64-desktop
      babyfengfjx@babyfengfjx:~$ sudo apt install linux-headers-5.15.24-amd64-desktop 
      正在读取软件包列表... 完成
      正在分析软件包的依赖关系树   
      正在读取状态信息... 完成   
      下列软件包是自动安装的并且现在不需要了:
        linux-headers-5.10.83-amd64-desktop linux-image-5.10.83-amd64-desktop patchelf
      使用'sudo apt autoremove'来卸载它(它们)。
      下列【新】软件包将被安装:
        linux-headers-5.15.24-amd64-desktop
      升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
    
    
    
  7. 通过上面的操作就安装上了5.15版本的内核了,此时重启默认会使用新版本内核启动,当然也可以在advance选项中手动切换使用5.10版本启动
  8. 如何卸载内核:sudo apt purge XXX 即可,其中XXX就是你安装时候那两个包名了,卸载了某个版本内核后,重启就是发现已经没有了。

如何通过终端更新?

  • 很多用户还不知道如何从终端更新,实际上对于全盘安装的用于来说,通过控制中心更新有好处,那是因为全盘安装的时候我们使用了A/B分区,也就是在更新前都会做-一个备份操作,即使更新出问题了,也可以回滚到上一个版本,基本可以不用担心出问题,这招非常好使;
  • 那如果是通过终端更新可能这个备份的策略就不会被执行了,也就可能少一次后悔药了;
  • 那有些情况下我们还是需要通过终端来操作的,因为有时候控制中心检测更新可能会报错:比如更新错误、依赖错误,更新失败等等,这种情况下我们都可以通过终端使用简单的命令就能解决问题;
  • sudo apt update  #  这个命令,会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑,相当如把远程仓库软件列表信息清单拿了一份过来,如果有问题此时就会得到一些报错提醒了,通过具体的报错提示,一般通过后面的提示或者百度都是能自行解决的;
    sudo apt dist-upgrade  # 这个命令,会把本地已安装的软件,与刚下载的软件列表里对应软件进行对比,如果发现已安装的软件版本太低,就会提示你更新,此时就可以直接进行软件更新了。
    

所以一般来说使用上面两个命令即可完成从终端更新系统的目的了。

如何反馈问题?

很多热心用户在给我们反馈问题的时候,都是直接写一个极其简洁的问题描述,当然我肯定知道大家的时间非常之宝贵,很能理解,不过大多数情况下,我们很难从一个简单的描述上来确定或者去复现是一个什么样的问题,因为前面说到的不同环境会有决然不同的表现,而此时我们一般会问如下几个问题:

  • *你使用的是什么系统版本呀?--cat /etc/release 这个命令可以提供给我们所需要的信息

  • babyfengfjx@babyfengfjx:~$ cat /etc/*release
    DISTRIB_ID=Deepin
    DISTRIB_RELEASE=20.5
    DISTRIB_DESCRIPTION="Deepin 20.5"
    DISTRIB_CODENAME=apricot
    PRETTY_NAME="Deepin 20.5"
    NAME="Deepin"
    VERSION_ID="20.5"
    VERSION="20.5"
    VERSION_CODENAME="apricot"
    ID=Deepin
    HOME_URL="https://www.deepin.org/"
    BUG_REPORT_URL="https://bbs.deepin.org/"
    
    
  • 你使用的内核版本是多少呀:-- uname -a 这个命令可以提供给我们所需要的信息

  • babyfengfjx@babyfengfjx:~$ uname -a
    Linux babyfengfjx 5.10.101-amd64-desktop #20.00.05.06-release SMP Mon Mar 14 09:34:55 CST 2022 x86_64 GNU/Linux
    
  • 发生问题的软件版本是多少呀?--可以提供具体软件版本截图,如果知道软件包名,也可以通过 :apt policy XX包名获得,比如影院:

  • babyfengfjx@babyfengfjx:~$ apt policy deepin-movie
    deepin-movie:
      已安装:5.9.12-1
      候选: 5.9.12-1
      版本列表:
     *** 5.9.12-1 500
            500 https://community-packages.deepin.com/deepin apricot/main amd64 Packages
            500 http://pools.uniontech.com/ppa/dde-apricot apricot/main amd64 Packages
            500 http://pools.uniontech.com/deepin apricot/main amd64 Packages
            100 /usr/lib/dpkg-db/status
         5.9.8-1 500
            500 http://pools.uniontech.com/ppa/dde-apricot unstable/main amd64 Packages
         5.9.6-1 500
            500 https://com-store-packages.uniontech.com/appstore deepin/appstore amd64 Packages
    
    
  • 发生问题时的具体操作步骤是啥呀? --可以提供发生问题的一些具体操作步骤路径

    • 有的朋友肯定会说我哪里知道呀,就是这样、那样之后就出现了XX问题;对我们实际上也就是想了解你的这样和那样的具体操作路径;
    • 还有一个很重要的因素,就是可能安装或者配置的一些东西,因为Linux太过于自由,很多用户都能随心所欲的进行配置修改或者安装第三方软件配置,这些操作均可能造成一些独有的问题表现,而这些前置条件不告诉我们,我们将非常难帮你们分析,对于问题的推进则会比较困难。

    设备信息是啥呀?--一般提供一下设备管理器的截图即可

  • image.png

  • 感谢大伙
  • 有些朋友反馈问题确实很用心,看起来也的确专业,给我们提供了很大的帮助,当然同时也为其他用户带来了更好的体验,所以非常感谢大家为了这个开源社区做出的自己的贡献;

  • 哪怕你觉得再小的事情,也可能因为你的小小举措能帮助到一些用户,这就体现了自己的价值,感谢大家继续吐槽与建议,一起打造更好的deepin社区,打造你们自己觉得好用的操作系统,所有的结果都离不开你们小小的贡献,哪怕是你那句批评~

Reply Favorite View the author
All Replies
1 / 2
To page
sammy-621
deepin
2022-03-18 03:34
#1

星光不问赶路人,埋头苦干终有收获,这不最近就中标移动的集团采购?这就是收获!

Reply View the author
deepin-superuser
deepin
2022-03-18 03:40
#2

最好在来个设备管理器截图

Reply View the author
说书人
deepin
2022-03-18 03:41
#3

楼主用心了,说清楚了问题的来龙去脉,也给出了详细的解决方案。

Reply View the author
red13
deepin
2022-03-18 03:44
#4

linux-headers-5.10.101-amd64-desktop 内核,,导致

03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)

网卡不能用.更新官方的最新驱动也没作用,timeshift大法回来后就正常

Reply View the author
babyfengfjx
Super Moderator
CQA
2022-03-18 03:46
#5
sammy-621

星光不问赶路人,埋头苦干终有收获,这不最近就中标移动的集团采购?这就是收获!

感谢我大版主~

Reply View the author
babyfengfjx
Super Moderator
CQA
2022-03-18 03:46
#6
deepin-superuser

最好在来个设备管理器截图

铁子就是严谨!

Reply View the author
babyfengfjx
Super Moderator
CQA
2022-03-18 03:47
#7
说书人

楼主用心了,说清楚了问题的来龙去脉,也给出了详细的解决方案。

持续学习中,感谢大佬~

Reply View the author
babyfengfjx
Super Moderator
CQA
2022-03-18 03:48
#8
red13

linux-headers-5.10.101-amd64-desktop 内核,,导致

03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)

网卡不能用.更新官方的最新驱动也没作用,timeshift大法回来后就正常

  • 回到5.10.83版本内核就OK了么?
  • 可以尝试用5.15版本内核试试,是否这个新内核是兼容这个网卡的。
Reply View the author
SamLukeYes
deepin
2022-03-18 03:59
#9

其实只要安装了 inxi 并执行 inxi -F,就可以一口气输出发行版、内核版本、桌面环境和各种硬件信息了。

Reply View the author
red13
deepin
2022-03-18 04:02
#10
babyfengfjx
  • 回到5.10.83版本内核就OK了么?
  • 可以尝试用5.15版本内核试试,是否这个新内核是兼容这个网卡的。

目前在用5.15版,,昨天晚上也是手欠,,直接升级了一下,,今天一早上班就发现网卡变近视了,,自动DHCP取不到地址,手工绑定IP显示连接成功,Ping网关不通,手动DNS也同样打不开网页,只有wifi能用.从官网下了个驱动包 r8168-8.049.02 ,,安装上也没用,通过系统自带的设备管理器安装也是一样,,回滚系统就好了.一直都是5.10备着,,用着5.15,,忘记说了,,,升级5.15后,,,redis.service不能自启动了,,要 redis-server /etc/redis/redis.conf才能启动

systemctl status redis-server.service

报如下错误

redis-server.service: Start request repeated too quickly.
redis-server.service: Failed with result 'exit-code'.
Failed to start Advanced key-value store.

反正影响不大,,也就不纠结了,但能解决是最好的

Reply View the author
vivian_me
deepin testing team
2022-03-18 04:05
#11

sob

Reply View the author
要讲武德
deepin
2022-03-18 04:06
#12

最好找一家硬件厂商合作出一款自己定制的笔记本,并保证这款没问题.

Reply View the author
babyfengfjx
Super Moderator
CQA
2022-03-18 04:06
#13
SamLukeYes

其实只要安装了 inxi 并执行 inxi -F,就可以一口气输出发行版、内核版本、桌面环境和各种硬件信息了。

  • 感谢大佬,又涨知识了!
  • sudo apt install inxi -y # 先安装
    执行后信息如下:
  • image.png
Reply View the author
babyfengfjx
Super Moderator
CQA
2022-03-18 04:08
#14
red13

目前在用5.15版,,昨天晚上也是手欠,,直接升级了一下,,今天一早上班就发现网卡变近视了,,自动DHCP取不到地址,手工绑定IP显示连接成功,Ping网关不通,手动DNS也同样打不开网页,只有wifi能用.从官网下了个驱动包 r8168-8.049.02 ,,安装上也没用,通过系统自带的设备管理器安装也是一样,,回滚系统就好了.一直都是5.10备着,,用着5.15,,忘记说了,,,升级5.15后,,,redis.service不能自启动了,,要 redis-server /etc/redis/redis.conf才能启动

systemctl status redis-server.service

报如下错误

redis-server.service: Start request repeated too quickly.
redis-server.service: Failed with result 'exit-code'.
Failed to start Advanced key-value store.

反正影响不大,,也就不纠结了,但能解决是最好的

要的,我反馈哈子,看这个点是不是内核这边改动了啥玩意导致了相关问题~

Reply View the author
babyfengfjx
Super Moderator
CQA
2022-03-18 04:10
#15
要讲武德

最好找一家硬件厂商合作出一款自己定制的笔记本,并保证这款没问题.

😂 就现在这小身板,还得再壮实几年咯~

Reply View the author
心平气和
deepin
2022-03-18 06:04
#16
要讲武德

最好找一家硬件厂商合作出一款自己定制的笔记本,并保证这款没问题.

和我想法一样,不是说定制,每次比较火的新机发布,就是deepin 可以自己采购几台,在这几台上反复测试优化,优化好了,可以放出来定制的这个系统,然后我们小白用户去购买相应的机型。

Reply View the author
心平气和
deepin
2022-03-18 06:51
#17

或者是这样也行,你们测试一部分硬件,完美支持的硬件,就像折腾黑苹果的他们公布的硬件,不要小看普通用户的购买力,可能因为deepin 硬件销量上去了,厂商可能会更主动

Reply View the author
Signal
deepin
2022-03-18 07:12
#18

感谢Deepin团队的努力,祝Deepin越来越好!

加油!

Reply View the author
北冥夜未央
deepin
Ecological co-builder
2022-03-18 07:26
#19

辛苦,用心了。

Reply View the author
wangxinyu
deepin
2022-03-18 16:36
#20

Get到了

Reply View the author
1 / 2
To page