目錄
引言
1.1 問題現象
1.2 問題分析
1.3 什麼是系統的熵值?
1.4 問題解決
引言
該篇部落格分析桌面管理器(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)