如何開啟ESP32 Secure Boot V2 (SBV2)
ESP32平臺上啟動Secure Boot V2的分步指南。安全啟動可以在其他ESP32*平臺上類似地啟用。
這是在ESP32上啟用安全引導(dǎo)(secure boot V2 - SBV2)的分步指南。我們將需要一臺運(yùn)行Linux的PC來運(yùn)行命令并與ESP32設(shè)備通信。
我們將假設(shè)IDF引導(dǎo)加載程序和相關(guān)的應(yīng)用程序映像,并在本指南中使用它們作為示例。要使用MCUboot引導(dǎo)加載程序和Zephyr應(yīng)用程序映像啟用SBV2,請參考本文檔。
有用的參考
下面是一些有用的參考資料,可以幫助您理解ESP32平臺的安全引導(dǎo)和安全引導(dǎo)啟用操作
?在ESP32開發(fā)平臺上開啟Secure Boot V2
?ESP32平臺的安全啟動V2功能
?Espressif DevCon23 -在開發(fā)和生產(chǎn)的ESP32平臺上啟用V2安全啟動功能
所需的硬件
兩個未熔斷的ESP32 ECO3及以后版本:一個用于開發(fā)熔斷,另一個用于生產(chǎn)熔斷。在以下開發(fā)板上進(jìn)行了測試
?ESP32-DevKitC-32E (Mouser link;Datasheet)
在開發(fā)中:啟用SBV2的步驟
?在Linux開發(fā)機(jī)上安裝Docker引擎。
?在開發(fā)機(jī)器上構(gòu)建Docker容器映像,用于安全引導(dǎo)熔斷和固件簽名。
?將未熔化的ESP32開發(fā)板通過USB連接到開發(fā)機(jī),運(yùn)行Docker容器
?在容器內(nèi),通過閃爍預(yù)構(gòu)建的(和簽名的)“void app”固件映像來吹eFuses
現(xiàn)在啟用了安全引導(dǎo)。從現(xiàn)在開始,應(yīng)用程序映像中的任何更新都需要對映像進(jìn)行簽名才能在此板上啟動。
在開發(fā)中:構(gòu)建和簽名自定義應(yīng)用程序映像的步驟
?在主機(jī)上,將應(yīng)用程序源文件夾放入共享的/目錄中,在容器中,將應(yīng)用程序源文件夾復(fù)制到/home/esp/app/。我們將使用一個ESP-IDF示例應(yīng)用程序作為示例。內(nèi)部容器
?在容器中,閃爍已簽名的應(yīng)用程序
在生產(chǎn)中:啟用SBV2的步驟
?將未熔化的ESP32開發(fā)板通過USB連接到開發(fā)機(jī),運(yùn)行Docker容器
?將void_app固件映像從容器復(fù)制到主機(jī)。在容器內(nèi),在/home/esp/下
?在主機(jī)上,從web瀏覽器打開薊控制中心,創(chuàng)建一個項(xiàng)目,然后進(jìn)入“簽名固件”菜單。點(diǎn)擊“+簽名固件包”按鈕,添加新的簽名固件包:為其選擇一個名稱,選擇“ESP32”和“ESP-IDF”作為硬件類型和固件類型,并上傳放在shared/文件夾中的bootloader.bin和void_app.bin。
?單擊“Create”按鈕,使用云密鑰管理系統(tǒng)中管理的生產(chǎn)簽名密鑰對引導(dǎo)加載程序和應(yīng)用程序映像進(jìn)行簽名。下載以后綴。patchch_到前面提到的共享/文件夾。
?在容器內(nèi)部,刷新產(chǎn)品簽名引導(dǎo)加載程序和應(yīng)用程序映像
在生產(chǎn)中:簽名自定義應(yīng)用程序映像的步驟
?將生產(chǎn)融合的ESP32開發(fā)板通過USB連接到開發(fā)機(jī)上,運(yùn)行Docker容器
?在容器內(nèi),按照上面“在開發(fā)中構(gòu)建和簽名自定義應(yīng)用程序映像的步驟”一節(jié)中描述的步驟構(gòu)建應(yīng)用程序映像,并將開發(fā)簽名應(yīng)用程序映像apps/hello_world/build/hello_world.bin和分區(qū)表映像apps/hello_world/build/partition_table/partition-table.bin復(fù)制到共享/文件夾中。
?在主機(jī)上,在對void_app進(jìn)行簽名的同一個項(xiàng)目的TCC中創(chuàng)建一個新的簽名固件包,并將開發(fā)簽名的應(yīng)用程序映像上傳到該項(xiàng)目中(如果引導(dǎo)加載程序沒有更改,可以忽略引導(dǎo)加載程序映像)。為簽名的固件包選擇一個有意義的名稱,并分別選擇“ESP32”和“ESP-IDF”作為硬件類型和固件類型。單擊“Create”按鈕,使用云密鑰管理系統(tǒng)中管理的生產(chǎn)簽名密鑰對應(yīng)用程序映像進(jìn)行簽名。下載以后綴。patchch_到共享/文件夾。
?在容器內(nèi)部,刷新生產(chǎn)簽名應(yīng)用程序映像
在其他ESP32平臺(ESP32- s2、ESP32- s3)開啟SBV2
在其他ESP32平臺上,例如ESP32- s2和ESP32- s3,可以在開發(fā)和生產(chǎn)中以類似的方式啟用安全引導(dǎo)V2。
本文編譯自hackster.io