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

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

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

英創(chuàng)信息技術(shù)Linux主板系統(tǒng)還原方案

英創(chuàng)信息技術(shù) ? 來(lái)源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-02-07 11:08 ? 次閱讀

為了滿足用戶(hù)對(duì)于系統(tǒng)安全性保障的要求,英創(chuàng)公司推出了針對(duì)Linux主板的系統(tǒng)還原方案,該方案依靠一個(gè)外部存儲(chǔ)器件,可以使用U盤(pán)或者TF卡。用戶(hù)只需要將英創(chuàng)公司提供的內(nèi)核、文件系統(tǒng)鏡像文件和用戶(hù)程序拷貝到U盤(pán)或者TF卡中就可以了,U盤(pán)和TF卡需要是fat32文件系統(tǒng)格式。用戶(hù)可以通過(guò)英創(chuàng)公司提供的庫(kù)文件,在應(yīng)用程序中設(shè)置u-boot的參數(shù)來(lái)實(shí)現(xiàn)還原的方案,下面首先詳細(xì)介紹整個(gè)流程:

bootloader階段

主板啟動(dòng)后,作為Bootloader的u-boot會(huì)打開(kāi)看門(mén)狗,并檢查環(huán)境變量bootstate的值,默認(rèn)情況bootstate的值為0,說(shuō)明系統(tǒng)還原的功能沒(méi)有啟用。將bootstate的值設(shè)置為1就可以啟用該功能。

同時(shí)用戶(hù)可以設(shè)置允許的最大嘗試啟動(dòng)次數(shù)bootnum,如果bootstate的值小于等于bootnum那么u-boot會(huì)將bootstate的值加1后進(jìn)行正常啟動(dòng),如果bootstate的值大于bootnum,說(shuō)明連續(xù)啟動(dòng)(bootnum-1)次失敗,u-boot開(kāi)始進(jìn)入還原的流程。通過(guò)對(duì)于bootnum的設(shè)置,可以防止板卡對(duì)于系統(tǒng)還原的誤判,比如在啟動(dòng)中突發(fā)的異常斷電等情況造沒(méi)有正常啟動(dòng)完成,流程可參考下圖:

u-boot流程

還原的固件可以通過(guò)U盤(pán)或者TF卡存放,u-boot中通過(guò)環(huán)境變量system-recovery來(lái)判斷從哪一種設(shè)備中讀取固件,system-recovery等于system-recovery-usb則u-boot會(huì)通過(guò)U盤(pán)進(jìn)行還原,如果system-recovery等于system-recovery-sd則u-boot會(huì)通過(guò)TF卡進(jìn)行還原,用戶(hù)可以根據(jù)實(shí)際情況配置。

Kernel階段

進(jìn)入到kernel啟動(dòng)之后,系統(tǒng)的運(yùn)行模式下會(huì)重新初始化并使能看門(mén)狗,如果系統(tǒng)啟動(dòng)正常,板卡在啟動(dòng)完成后,英創(chuàng)公司提供的程序boot_recovery會(huì)自行啟動(dòng),檢測(cè)u-boot中bootstate的值,如果大于bootnum,說(shuō)明系統(tǒng)經(jīng)過(guò)了還原,初始化程序會(huì)將U盤(pán)或者TF卡中存放的用戶(hù)的應(yīng)用程序和文件拷貝到/mnt/nandflash目錄,然后將bootstate的值置為1(注意,需要拷貝的程序和文件必須放在U盤(pán)或者TF卡的update文件夾下)。如果檢測(cè)到bootstate的值小于bootnum,那么說(shuō)明板卡正常啟動(dòng),將bootstate的值置為1后退出程序,執(zhí)行正常啟動(dòng)過(guò)程。考慮到啟動(dòng)過(guò)程中可能會(huì)遇到斷電或者供電不穩(wěn)等特殊情況,造成板卡啟動(dòng)失敗,可以將bootnum的值適當(dāng)增大。最后系統(tǒng)會(huì)根據(jù)用戶(hù)配置自動(dòng)啟動(dòng)應(yīng)用程序,這時(shí)需要用戶(hù)的應(yīng)用程序第一時(shí)間接管看門(mén)狗并開(kāi)始喂狗,否則等到看門(mén)狗超時(shí)系統(tǒng)還是會(huì)重新啟動(dòng)。

如果遇到系統(tǒng)啟動(dòng)不正常的情況,不會(huì)執(zhí)行到程序boot_recovery,所以bootstate的值不會(huì)改變,等待看門(mén)狗超時(shí)(60s)后,系統(tǒng)便會(huì)重啟,反復(fù)嘗試次(bootnum-1)次后,進(jìn)入到還原流程,整個(gè)過(guò)程可參考下圖:

Kernel流程

還原流程

當(dāng)u-boot檢測(cè)到bootstate的值大于等于bootnum,就會(huì)進(jìn)入到還原流程。這時(shí)u-boot將根據(jù)配置讀取U盤(pán)或者TF卡中的內(nèi)核和文件系統(tǒng)鏡像文件,擦除NandFlash對(duì)應(yīng)的位置重新燒寫(xiě)進(jìn)去,燒寫(xiě)完成后啟動(dòng)系統(tǒng),為了防止燒寫(xiě)過(guò)程中出現(xiàn)意外情況,所以并沒(méi)有修改bootstate的值,而是等到系統(tǒng)完全啟動(dòng)后執(zhí)行程序boot_recovery中再來(lái)修改bootstate的值。

在板卡中英創(chuàng)公司通過(guò)專(zhuān)門(mén)的庫(kù)librecovery.so,給用戶(hù)提供了對(duì)系統(tǒng)還原參數(shù)的查詢(xún)和設(shè)置接口,這樣就能夠自定義系統(tǒng)還原后的操作。ibrecovery.so中提供的接口函數(shù)為:

int recovery_config(int cmd, char *s);

可以根據(jù)cmd的值來(lái)執(zhí)行不同的操作,具體定義如下:

#define GET_BOOT_STATE 0 //查詢(xún)bootstate的值
#define SET_BOOT_STATE 1 //設(shè)置bootstate的值
#define SET_BOOT_MAXNUM 2 //設(shè)置最大啟動(dòng)次數(shù)
#define GET_BOOT_MAXNUM 3 //查詢(xún)最大啟動(dòng)次數(shù)
#define SET_WAY_RECOVERY 4 //設(shè)置系統(tǒng)還原方式
#define GET_WAY_RECOVERY 5 //查詢(xún)系統(tǒng)還原方式

下面通過(guò)boot_recovery中的部分代碼來(lái)說(shuō)明函數(shù)接口的使用,首先是查詢(xún)bootstate的值,判斷板卡是否使能系統(tǒng)還原,如果沒(méi)有使能就退出:

recovery_config(GET_BOOT_STATE, buf);
if(!strlen(buf))
return 0;
i1 = atoi(buf);
printf("%d\n", i1);
if(!i1)
return 0;

如果使能就判斷是正常啟動(dòng)還是進(jìn)行了系統(tǒng)還原,如果進(jìn)行了系統(tǒng)還原,就根據(jù)系統(tǒng)還原的方式,將U盤(pán)或者TF卡中update文件夾的內(nèi)容拷貝到/mnt/nandflash中,并且把bootstate的值設(shè)置為1:

recovery_config(GET_BOOT_MAXNUM, buf);
if(i1 > (atoi(buf) + 1))
{
recovery_config(GET_WAY_RECOVERY, buf);
s = strstr(buf, "usb");
if(s != NULL)
system("cp /mnt/usb1/update/* /mnt/nandflash/ -r");
s = strstr(buf, "sd");
if(s != NULL)
system("cp /mnt/sdcard/update/* /mnt/nandflash/ -r");
}
sprintf(buf, "%d", 1);
recovery_config(SET_BOOT_STATE, buf);

如果用戶(hù)有一些需要自行設(shè)置的參數(shù),可以在應(yīng)用程序中進(jìn)行設(shè)置,比如最大的嘗試啟動(dòng)次數(shù)和系統(tǒng)還原的方式,都可以在應(yīng)用程序的開(kāi)始設(shè)置一遍。

如果對(duì)此方案感興趣的客戶(hù),可以直接和英創(chuàng)的工程師連續(xù),索取相關(guā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)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11171

    瀏覽量

    208479
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6083

    瀏覽量

    35098
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    創(chuàng)國(guó)產(chǎn)化背景下的工控主板發(fā)展現(xiàn)狀

    創(chuàng),是信息技術(shù)應(yīng)用創(chuàng)新產(chǎn)業(yè)的簡(jiǎn)稱(chēng),于2016年“信創(chuàng)工委會(huì)”(信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì))提出,目的就是要推動(dòng)我們國(guó)內(nèi)軟硬件關(guān)鍵技術(shù)的研發(fā)
    的頭像 發(fā)表于 09-21 16:15 ?211次閱讀

    梯度科技入選2023年信息技術(shù)應(yīng)用創(chuàng)新解決方案名單

    日前,工業(yè)和信息化部網(wǎng)絡(luò)安全產(chǎn)業(yè)發(fā)展中心(工業(yè)和信息化部信息中心)在天津舉辦2024信息技術(shù)應(yīng)用創(chuàng)新發(fā)展大會(huì)暨解決方案應(yīng)用推廣大會(huì)。會(huì)上正式
    的頭像 發(fā)表于 09-09 16:29 ?327次閱讀

    兆芯金融方案入選工信部2023年信息技術(shù)應(yīng)用創(chuàng)新典型解決方案

    近日,由工信部網(wǎng)絡(luò)安全產(chǎn)業(yè)發(fā)展中心等主辦的2024信息技術(shù)應(yīng)用創(chuàng)新發(fā)展大會(huì)暨解決方案應(yīng)用推廣大會(huì)在天津、浙江、福建、山東四地聯(lián)動(dòng)同步召開(kāi),會(huì)上公布了2023年信息技術(shù)應(yīng)用創(chuàng)新解決方案
    的頭像 發(fā)表于 08-05 16:12 ?593次閱讀

    龍芯中科“基于國(guó)產(chǎn)芯片級(jí)密碼安全的新一代信創(chuàng)云解決方案”入選2023年工信部信創(chuàng)典型案例

    近日,由工業(yè)和信息化部信息技術(shù)發(fā)展司和多地工信部門(mén)聯(lián)合組織的2024信息技術(shù)應(yīng)用創(chuàng)新發(fā)展大會(huì)暨解決方案應(yīng)用推廣大會(huì)在天津成功舉辦。大會(huì)現(xiàn)場(chǎng),龍芯中科“基于國(guó)產(chǎn)芯片級(jí)密碼安全的新一代信
    的頭像 發(fā)表于 07-22 15:34 ?795次閱讀
    龍芯中科“基于國(guó)產(chǎn)芯片級(jí)密碼安全的新一代信<b class='flag-5'>創(chuàng)</b>云解決<b class='flag-5'>方案</b>”入選2023年工信部信<b class='flag-5'>創(chuàng)</b>典型案例

    智慧醫(yī)院信息化建設(shè)方案

    智慧醫(yī)院 信息化建設(shè)方案是醫(yī)療機(jī)構(gòu)實(shí)現(xiàn)數(shù)字化轉(zhuǎn)型、提升醫(yī)療服務(wù)水平的重要舉措。通過(guò)整合信息技術(shù)、數(shù)據(jù)管理、智能化系統(tǒng)等資源,智慧醫(yī)院信息化建
    的頭像 發(fā)表于 07-17 14:17 ?631次閱讀

    翼輝信息入選2023年信息技術(shù)應(yīng)用創(chuàng)新解決方案名單

    近日,2023 年(第五屆)信息技術(shù)應(yīng)用創(chuàng)新解決方案公布遴選名單,歷經(jīng)資格初審、技術(shù)中評(píng)、區(qū)域評(píng)議、終評(píng)預(yù)審,翼輝以“面向工業(yè)領(lǐng)域嵌入式操作系統(tǒng) SylixOS 解決
    的頭像 發(fā)表于 04-28 11:37 ?474次閱讀
    翼輝<b class='flag-5'>信息</b>入選2023年<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新解決<b class='flag-5'>方案</b>名單

    芯盾時(shí)代中標(biāo)西安西熱電站信息技術(shù)有限公司!

    芯盾時(shí)代中標(biāo)西安西熱電站信息技術(shù)有限公司!芯盾時(shí)代基于完整的身份安全產(chǎn)品體系,增強(qiáng)客戶(hù)的業(yè)務(wù)系統(tǒng)、網(wǎng)絡(luò)設(shè)備和安全設(shè)備等認(rèn)證安全強(qiáng)度
    的頭像 發(fā)表于 04-09 11:32 ?417次閱讀

    龍芯中科三項(xiàng)信創(chuàng)方案入圍工信部2023年信息技術(shù)應(yīng)用創(chuàng)新應(yīng)用示范案例名單

    近日,工業(yè)和信息化部通報(bào)了2023年信息技術(shù)應(yīng)用創(chuàng)新解決方案征集遴選結(jié)果,本次共評(píng)選出典型解決方案173個(gè)、應(yīng)用示范案例83個(gè)、單項(xiàng)創(chuàng)新案例64個(gè)。
    的頭像 發(fā)表于 03-07 16:45 ?758次閱讀
    龍芯中科三項(xiàng)信<b class='flag-5'>創(chuàng)</b><b class='flag-5'>方案</b>入圍工信部2023年<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新應(yīng)用示范案例名單

    RX78M組 EtherCAT ETG.5003示例程序固件信息技術(shù)

    電子發(fā)燒友網(wǎng)站提供《RX78M組 EtherCAT ETG.5003示例程序固件信息技術(shù).pdf》資料免費(fèi)下載
    發(fā)表于 02-21 14:22 ?1次下載
    RX78M組  EtherCAT ETG.5003示例程序固件<b class='flag-5'>信息技術(shù)</b>

    軟通動(dòng)力與捷創(chuàng)技術(shù)簽訂戰(zhàn)略合作協(xié)議

    近日,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)“軟通動(dòng)力”)與寧波捷創(chuàng)技術(shù)股份有限公司(以下簡(jiǎn)稱(chēng)“捷創(chuàng)技術(shù)”)正式簽訂戰(zhàn)略合作協(xié)議,并
    的頭像 發(fā)表于 02-03 16:35 ?1046次閱讀

    創(chuàng)知音WTR096A-16S語(yǔ)音芯片:引領(lǐng)喊話器聲音還原新時(shí)代

    隨著科技的不斷發(fā)展,聲音在各種場(chǎng)景中扮演著至關(guān)重要的角色。在喊話器領(lǐng)域,唯創(chuàng)知音的WTR096A-16S語(yǔ)音芯片以其卓越的性能和聲音還原度的提高,為喊話器應(yīng)用帶來(lái)了全新的體驗(yàn)。1.聲音還原度的升級(jí)
    的頭像 發(fā)表于 12-06 09:26 ?516次閱讀
    唯<b class='flag-5'>創(chuàng)</b>知音WTR096A-16S語(yǔ)音芯片:引領(lǐng)喊話器聲音<b class='flag-5'>還原</b>新時(shí)代

    Linux系統(tǒng)中的FBE實(shí)現(xiàn)方案和特點(diǎn)

    Linux系統(tǒng)FBE 從Linux系統(tǒng)軟件架構(gòu)看,典型FDE和FBE實(shí)現(xiàn)方案分布如下圖,包括基于dm-crypt的軟件FDE
    的頭像 發(fā)表于 11-29 11:23 ?945次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b>中的FBE實(shí)現(xiàn)<b class='flag-5'>方案</b>和特點(diǎn)

    linux備份還原工具有哪些?

    Linux備份還原工具是用于在Linux系統(tǒng)上進(jìn)行數(shù)據(jù)備份和還原操作的軟件或工具。它們提供了一種簡(jiǎn)單、有效和可靠的方式來(lái)保護(hù)數(shù)據(jù)免受丟失、損
    的頭像 發(fā)表于 11-23 10:06 ?1354次閱讀

    linux系統(tǒng)備份與還原工具

    Linux系統(tǒng)備份與還原工具是用于備份和恢復(fù)Linux操作系統(tǒng)的工具。在日常使用中,備份和還原
    的頭像 發(fā)表于 11-23 10:04 ?2426次閱讀

    闡述量子信息技術(shù)的研究現(xiàn)狀與未來(lái)

    20世紀(jì) 80 年代, 科學(xué)家將量子力學(xué)應(yīng)用到信息領(lǐng)域, 從而誕生了量子信息技術(shù), 諸如量子計(jì)算機(jī)、量子密碼、量子傳感等. 這些技術(shù)的運(yùn)行規(guī)律遵從量子力學(xué), 因此不僅其原理是量子力學(xué), 器件本身也
    發(fā)表于 11-22 11:40 ?735次閱讀
    闡述量子<b class='flag-5'>信息技術(shù)</b>的研究現(xiàn)狀與未來(lái)