目录
引言
该篇博客分析桌面管理器(gdm、lightdm)启动后——到界面显示时间过长的问题
1.1 问题现象
安装GDM桌面管理工具之后,启动嵌入式板卡的系统发现会等待大于4分钟才会显示GDM的桌面选择界面。该问题会严重影响客户对产品的第一感觉。
1.2 问题分析
通过下面实验进行验证:
1、gdm.service 随着开机自启动。(等待3-4分钟才能进入gdm界面)
2、gdm.service 不使能开机自启动,开机之后等待3-4分钟,然后手动启动gdm.service(随即进入gdm界面)
通过syslog分析两者之间的启动差异发现:
图1
图2
上图中图1为实验1,执行AccountsService的操作花费了2分半。图2为实验2,没有该操作,直接跳过了AccountsService的相关操作。那么问题分析出来是由于AccountsService导致的。
查看archlinux关于GDM的介绍发现:有一个介绍:
这个问题与我们遇到的问题类似,是由于系统的熵值(entropy)过低导致的。
1.3 什么是系统的熵值?
Linux 内核采用熵来描述数据的随机性,熵(entropy)是描述系统混乱无序程度的物理量,内核维护了一个熵池用来收集来自设备驱动程序和其它来源的环境噪音。(所以我们移动鼠标,乱敲键盘会增加环境噪声)
为跟踪熵池中数据的随机性,内核在将数据加入池的时候将估算数据的随机性,称作熵估算。熵估算值描述池中包含的随机数位数,其值越大表示池中数据的随机性越好。
1.4 问题解决
分析出问题原因,只需要增加熵(entropy)值即可解决该问题。首先查看系统的熵(entropy)值:
cat /proc/sys/kernel/random/entropy_avail
如果结果比较低 (<1000),建议安装 haveged. 否则加密程序会等待系统有足够的熵。
1)安装haveged
apt-get install haveged
2)如果使用的CPU支持RDRAND指令
kernel parameter中增加random.trust_cpu=on
再次查看系统的熵(entropy)值:
cat /proc/sys/kernel/random/entropy_avail(应该是大于1000)