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 ? 次閱讀

為了滿足用戶對(duì)于系統(tǒng)安全性保障的要求,英創(chuàng)公司推出了針對(duì)Linux主板的系統(tǒng)還原方案,該方案依靠一個(gè)外部存儲(chǔ)器件,可以使用U盤(pán)或者TF卡。用戶只需要將英創(chuàng)公司提供的內(nèi)核、文件系統(tǒng)鏡像文件和用戶程序拷貝到U盤(pán)或者TF卡中就可以了,U盤(pán)和TF卡需要是fat32文件系統(tǒng)格式。用戶可以通過(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í)用戶可以設(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)行還原,用戶可以根據(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卡中存放的用戶的應(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ù)用戶配置自動(dòng)啟動(dòng)應(yīng)用程序,這時(shí)需要用戶的應(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ò)專門(mén)的庫(kù)librecovery.so,給用戶提供了對(duì)系統(tǒng)還原參數(shù)的查詢和設(shè)置接口,這樣就能夠自定義系統(tǒng)還原后的操作。ibrecovery.so中提供的接口函數(shù)為:

int recovery_config(int cmd, char *s);

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

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

下面通過(guò)boot_recovery中的部分代碼來(lái)說(shuō)明函數(shù)接口的使用,首先是查詢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);

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

如果對(duì)此方案感興趣的客戶,可以直接和英創(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

    文章

    11312

    瀏覽量

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

    關(guān)注

    7

    文章

    6085

    瀏覽量

    35402
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    飛騰助力首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽圓滿落幕

    近日,由中國(guó)教育技術(shù)協(xié)會(huì)主辦,教育部教育管理信息中心教育信創(chuàng)實(shí)驗(yàn)室、公安部第三研究所、中國(guó)電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信創(chuàng)工委會(huì)支持,北京航空航天
    的頭像 發(fā)表于 12-24 09:57 ?135次閱讀

    有方科技參編的信息技術(shù)團(tuán)體標(biāo)準(zhǔn)發(fā)布

    近日,有方科技參編的《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第1部分:企業(yè)背景評(píng)價(jià)》《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第2部分:技術(shù)掌控評(píng)價(jià)》《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第
    的頭像 發(fā)表于 12-23 10:44 ?153次閱讀

    龍芯中科助力2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽成功舉辦

    近日,2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽在北京航空航天大學(xué)成功舉辦。本次大賽由中國(guó)教育技術(shù)協(xié)會(huì)主辦,教育信創(chuàng)實(shí)驗(yàn)室、公安部第三研究所、中國(guó)電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信
    的頭像 發(fā)表于 12-19 17:02 ?243次閱讀

    拓維信息參與牽頭組建!長(zhǎng)沙新一代信息技術(shù)產(chǎn)教聯(lián)合體正式獲批

    的長(zhǎng)沙新一代信息技術(shù)產(chǎn)教聯(lián)合體成功獲批,為長(zhǎng)沙市信息技術(shù)產(chǎn)業(yè)發(fā)展注入了新的活力。圖/《2024年長(zhǎng)沙市市級(jí)市域產(chǎn)教聯(lián)合體名單》長(zhǎng)沙新一代信息技術(shù)產(chǎn)教聯(lián)合體將依托龍頭企
    的頭像 發(fā)表于 12-07 01:06 ?385次閱讀
    拓維<b class='flag-5'>信息</b>參與牽頭組建!長(zhǎng)沙新一代<b class='flag-5'>信息技術(shù)</b>產(chǎn)教聯(lián)合體正式獲批

    linux是實(shí)時(shí)系統(tǒng)還是分時(shí)操作系統(tǒng)

    系統(tǒng)就難以滿足實(shí)時(shí)性需求,但是目前linux社區(qū)已經(jīng)增加了較多版本的實(shí)時(shí)性補(bǔ)丁,給linux內(nèi)核打上實(shí)時(shí)補(bǔ)丁后其實(shí)時(shí)性會(huì)得到大幅度提升,那么我們一起來(lái)看看兩者的區(qū)別。 如下分享一下:“linu
    的頭像 發(fā)表于 11-11 11:43 ?503次閱讀

    國(guó)產(chǎn)工控主板,信創(chuàng)產(chǎn)業(yè)發(fā)展新引擎

    在當(dāng)今科技飛速發(fā)展的時(shí)代,信創(chuàng)產(chǎn)業(yè)正成為國(guó)家戰(zhàn)略的重要支撐。而我們的國(guó)產(chǎn)工控主板,以其卓越的性能和可靠的品質(zhì),為信創(chuàng)產(chǎn)業(yè)的發(fā)展注入強(qiáng)大動(dòng)力。國(guó)產(chǎn)工控主板在信
    的頭像 發(fā)表于 11-06 10:29 ?253次閱讀

    中科創(chuàng)達(dá)榮獲2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)

    及前百家企業(yè)”名單。中科創(chuàng)達(dá)憑借非凡的技術(shù)實(shí)力與持續(xù)的創(chuàng)新能力,成功入選“2024年度軟件和信息技術(shù)服務(wù)競(jìng)爭(zhēng)力百?gòu)?qiáng)企業(yè)”以及“2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)”。
    的頭像 發(fā)表于 10-30 11:44 ?497次閱讀

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

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

    梯度科技入選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 ?435次閱讀

    兆芯金融方案入選工信部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 ?689次閱讀

    龍芯中科“基于國(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 ?1087次閱讀
    龍芯中科“基于國(guó)產(chǎn)芯片級(jí)密碼安全的新一代信<b class='flag-5'>創(chuàng)</b>云解決<b class='flag-5'>方案</b>”入選2023年工信部信<b class='flag-5'>創(chuàng)</b>典型案例

    翼輝信息入選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 ?569次閱讀
    翼輝<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)客戶的業(yè)務(wù)系統(tǒng)、網(wǎng)絡(luò)設(shè)備和安全設(shè)備等認(rèn)證安全強(qiáng)度
    的頭像 發(fā)表于 04-09 11:32 ?519次閱讀

    龍芯中科三項(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 ?949次閱讀
    龍芯中科三項(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)用示范案例名單

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

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