91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

技術(shù)分享 | 隨機(jī)數(shù)生成過(guò)慢導(dǎo)致系統(tǒng)阻塞怎么辦?

啟揚(yáng)ARM嵌入式開(kāi)發(fā) ? 2022-08-15 09:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

/dev/random和/dev/urandom是linux上的隨機(jī)數(shù)生成器,是個(gè)字符設(shè)備,為系統(tǒng)提供隨機(jī)數(shù)。隨機(jī)數(shù)主要應(yīng)用在加密方面,沒(méi)有加密的操作都是可預(yù)測(cè)且不安全的。

linux上隨機(jī)數(shù)的生成原理

linux上隨機(jī)數(shù)的生成原理是將系統(tǒng)的中斷信息收集起來(lái)放入熵池中,通過(guò)算法生成更多無(wú)序的數(shù)據(jù),有了大量的無(wú)序數(shù)據(jù)之后,每次獲取隨機(jī)數(shù),就會(huì)從池子中讀取指定的字節(jié)序列,而這些字節(jié)序列就是生成器生成的隨機(jī)數(shù)。

linux開(kāi)機(jī)時(shí)就會(huì)伴隨著random設(shè)備的初始化,一般我們經(jīng)常會(huì)遇見(jiàn)這兩條log:

random: crng init done,

random: 7 urandom warning(s) missed due to ratelimiting,

這說(shuō)明隨機(jī)數(shù)已經(jīng)初始化完成,可以隨時(shí)請(qǐng)求使用。但是在某些時(shí)候會(huì)卡在這個(gè)log很長(zhǎng)時(shí)間,這是因?yàn)樵陂_(kāi)機(jī)時(shí)系統(tǒng)中斷不夠或程序運(yùn)行時(shí)熵不足,生成隨機(jī)數(shù)非常緩慢,導(dǎo)致阻塞,進(jìn)而導(dǎo)致無(wú)法開(kāi)機(jī)、app無(wú)法正常運(yùn)行等一系列bug。

為了解決這個(gè)問(wèn)題,我們可以移植一個(gè)工具對(duì)熵池進(jìn)行補(bǔ)熵,這樣隨機(jī)數(shù)生成器就會(huì)快速生成隨機(jī)數(shù),解決阻塞導(dǎo)致的一系列問(wèn)題。

解決方案

解決這個(gè)問(wèn)題的工具有很多,這里我們選用移植haveged工具,并使用啟揚(yáng)IAC-IMX8MM-kit開(kāi)發(fā)板展示具體操作過(guò)程。

移植haveged-1.9.3

首先source我們的sdk開(kāi)發(fā)環(huán)境,然后進(jìn)入到源碼內(nèi),通過(guò)configure配置makfile文件,命令如下:

./configure --host=aarch64-poky-linux --prefix=/home/ylook/haveged

配置完成后執(zhí)行make && make install命令,會(huì)在/home/ylook/haveged目錄下生成編譯完成后的二進(jìn)制文件以及相關(guān)庫(kù)文件,如下圖所示:

(注:筆者路徑有所不同,根據(jù)環(huán)境自行更改即可)

279007a6-1a5a-11ed-9ade-dac502259ad0.png

注意:

為防止錯(cuò)誤,可以使用file命令檢查二進(jìn)制文件架構(gòu),保證為aarch64架構(gòu)即可。

將編譯出來(lái)的二進(jìn)制文件拷貝到板子的/usr/bin/目錄,庫(kù)文件拷貝到/usr/lib/目錄,執(zhí)行haveged --h命令,如下圖所示:

27b356a2-1a5a-11ed-9ade-dac502259ad0.png

這里就相當(dāng)于我們已經(jīng)把板子里的環(huán)境配置好了,為了能夠開(kāi)機(jī)就使用該工具生成熵,所以我們需要在開(kāi)機(jī)進(jìn)程中將該工具設(shè)置為自動(dòng)運(yùn)行。

因?yàn)閱P(yáng)i.MX8M Mini開(kāi)發(fā)板上使用systemed工具配置相關(guān)服務(wù),所以我們需要寫(xiě)一個(gè)service,然后讓它開(kāi)機(jī)運(yùn)行,具體service如下:

27cc616a-1a5a-11ed-9ade-dac502259ad0.png

使用systemctl enable haveged之后重啟就會(huì)生效,可從開(kāi)機(jī)log中看出,如圖所示,在很早之前初始化就已經(jīng)完成了。

27efc4e8-1a5a-11ed-9ade-dac502259ad0.png

也可以使用命令cat /proc/sys/kernel/random/entropy_avail,查看當(dāng)前熵值,在沒(méi)有haveged之前該值只有幾十幾百,而開(kāi)啟之后有幾千。

281a6a90-1a5a-11ed-9ade-dac502259ad0.png

這樣,就完美解決了隨機(jī)數(shù)生成過(guò)慢導(dǎo)致系統(tǒng)阻塞的問(wèn)題。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 生成器
    +關(guān)注

    關(guān)注

    7

    文章

    322

    瀏覽量

    22724
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    硅臻正式推出QRNG全系列量子隨機(jī)數(shù)發(fā)生器產(chǎn)品

    信息安全是社會(huì)穩(wěn)定的必要條件,數(shù)字時(shí)代其重要性更是愈發(fā)凸顯。無(wú)論在經(jīng)典還是量子加密的過(guò)程中,隨機(jī)數(shù)都是安全性的基石。加密密鑰由隨機(jī)數(shù)生成,安全性由隨機(jī)數(shù)的不可預(yù)測(cè)性保證。與偽
    的頭像 發(fā)表于 03-10 16:24 ?190次閱讀
    硅臻正式推出QRNG全系列量子<b class='flag-5'>隨機(jī)數(shù)</b>發(fā)生器產(chǎn)品

    飛凌嵌入式ElfBoard-系統(tǒng)信息與資源之產(chǎn)生隨機(jī)數(shù)

    一、rand rand可在指定范圍內(nèi)生成隨機(jī)數(shù)。1.頭文件#include 2.函數(shù)原型int rand(void);3.參數(shù)無(wú)。4.返回值rand() 函數(shù)返回一個(gè)范圍在 0 到 RAND_MAX
    發(fā)表于 01-22 08:59

    智能顯示模塊上電后顯示“No Project”怎么辦?

    智能顯示模塊上電后顯示“No Project”怎么辦
    發(fā)表于 01-20 15:20

    如何在LTspice仿真中實(shí)現(xiàn)偽隨機(jī)數(shù)和真隨機(jī)數(shù)生成

    本文討論如何在LTspice仿真中利用flat()、gauss()和mc()函數(shù)來(lái)實(shí)現(xiàn)偽隨機(jī)數(shù)和真隨機(jī)數(shù)生成,并介紹如何使用設(shè)置面板的Hacks部分中的 Use the clock
    的頭像 發(fā)表于 01-09 14:08 ?4699次閱讀
    如何在LTspice仿真中實(shí)現(xiàn)偽<b class='flag-5'>隨機(jī)數(shù)</b>和真<b class='flag-5'>隨機(jī)數(shù)</b>的<b class='flag-5'>生成</b>

    德思特應(yīng)用 | 前沿量子隨機(jī)數(shù)研究:多特蒙德工業(yè)大學(xué)如何通過(guò)高速數(shù)字化儀保障信息安全

    在量子信息時(shí)代,生成真正隨機(jī)的數(shù)字對(duì)加密與安全至關(guān)重要。多特蒙德工業(yè)大學(xué)研究人員利用高速數(shù)字化儀對(duì)量子隨機(jī)數(shù)生成過(guò)程進(jìn)行多通道采集與分析,成功實(shí)驗(yàn)評(píng)估竊聽(tīng)風(fēng)險(xiǎn),為密碼協(xié)議與安全應(yīng)用提供
    的頭像 發(fā)表于 12-22 17:22 ?416次閱讀
    德思特應(yīng)用 | 前沿量子<b class='flag-5'>隨機(jī)數(shù)</b>研究:多特蒙德工業(yè)大學(xué)如何通過(guò)高速數(shù)字化儀保障信息安全

    使用單片機(jī)系統(tǒng)時(shí)間不準(zhǔn)怎么辦?

    使用單片機(jī)系統(tǒng)時(shí)間不準(zhǔn),怎么辦?具體的是與晶振有關(guān)系還是MCU內(nèi)部有關(guān)系,時(shí)間一長(zhǎng)顯示的時(shí)間就慢了
    發(fā)表于 12-05 07:51

    ?基于RNG90的真隨機(jī)數(shù)生成技術(shù)解析與應(yīng)用指南

    Microchip Technology RNG90 CryptoAuthentication?器件設(shè)計(jì)用于需要安全隨機(jī)數(shù)發(fā)生器的系統(tǒng)。RNG90即用型,無(wú)需任何定制。Microchip RNG90
    的頭像 發(fā)表于 10-10 15:01 ?698次閱讀
    ?基于RNG90的真<b class='flag-5'>隨機(jī)數(shù)</b><b class='flag-5'>生成</b>器<b class='flag-5'>技術(shù)</b>解析與應(yīng)用指南

    隨機(jī)數(shù)和偽隨機(jī)數(shù)的區(qū)別

    隨機(jī)數(shù)在當(dāng)前程序運(yùn)行環(huán)境中是一種常用參數(shù),目前主要分為兩種,偽隨機(jī)數(shù)和真隨機(jī)數(shù),本期我們就來(lái)講一下二者的區(qū)別。
    的頭像 發(fā)表于 08-27 17:46 ?2656次閱讀

    路由器能連上但是沒(méi)有網(wǎng)絡(luò)怎么辦?

    路由器能連上但是沒(méi)有網(wǎng)絡(luò)怎么辦
    發(fā)表于 07-10 06:15

    DS28S60具有ChipDNA的DeepCover加密協(xié)處理器技術(shù)手冊(cè)

    的協(xié)處理器,命令功能包括ECDSA-P256簽名和驗(yàn)證、基于SHA-256的數(shù)字簽名、AES-128數(shù)據(jù)包加密/解密、用于會(huì)話密鑰生成的ECDHE密鑰交換以及訪問(wèn)高質(zhì)量的隨機(jī)數(shù)。集成了符合NIST
    的頭像 發(fā)表于 05-13 14:39 ?847次閱讀
    DS28S60具有ChipDNA的DeepCover加密協(xié)處理器<b class='flag-5'>技術(shù)</b>手冊(cè)

    FPGA的Jtag接口燒了,怎么辦?

    在展開(kāi)今天的文章前,先來(lái)討論一個(gè)問(wèn)題:FPGA的jtag接口燒了怎么辦?JTAG接口的輸入引腳通常設(shè)計(jì)為高阻抗,這使得它們對(duì)靜電電荷積累非常敏感,由于JTAG接口需要頻繁連接調(diào)試器、下載線纜等外
    的頭像 發(fā)表于 04-27 11:01 ?2644次閱讀
    FPGA的Jtag接口燒了,<b class='flag-5'>怎么辦</b>?

    labview求助:想寫(xiě)一個(gè)labview輸出不重復(fù)隨機(jī)數(shù)的程序,有沒(méi)有大佬幫忙看看這個(gè)假分支要怎么寫(xiě)?

    大佬們想寫(xiě)一個(gè)labview輸出不重復(fù)隨機(jī)數(shù)的程序,有沒(méi)有大佬幫忙看看這個(gè)假分支要怎么寫(xiě)
    發(fā)表于 04-27 08:39

    labview輸出不重復(fù)隨機(jī)數(shù)

    大佬們能不能告知一下這張圖為什么還是會(huì)輸出重復(fù)的數(shù),然后這個(gè)移位寄存器的紅點(diǎn)也消不掉
    發(fā)表于 04-17 10:51

    labview怎么輸出不重復(fù)的整數(shù)隨機(jī)數(shù)

    大佬們我想問(wèn)一下怎么能夠生成不重復(fù)的隨機(jī)數(shù),labview能夠輸出整數(shù)隨機(jī)數(shù)
    發(fā)表于 04-16 11:15

    “Quantum Origin”成首個(gè)獲NIST驗(yàn)證的軟件量子隨機(jī)數(shù)生成

    隨機(jī)數(shù)生成器(QRNG)軟件Quantum Origin 已通過(guò)美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)的驗(yàn)證。 Quantum Origin是首個(gè)獲得此項(xiàng)驗(yàn)證的軟件QRNG,它將成
    的頭像 發(fā)表于 04-03 15:22 ?908次閱讀