我正在使用運行u-boot的嵌入式linux套件。爲了讓一切正常啓動,我必須修改一些環境變量並使用'saveenv'命令來存儲它們。如何清除先前用u-boot保存的環境變量?
現在我想回過頭來看看默認設置是什麼,確認我確切地知道發生了什麼變化,並找出一種方法來改變這些默認設置,以便生產中的每個單位不需要單獨啓動並修改。
有沒有辦法告訴u-boot清除任何保存的數據,以便我可以再次查看默認值?閃光類型是QSPI,如果這有所作爲。
我正在使用運行u-boot的嵌入式linux套件。爲了讓一切正常啓動,我必須修改一些環境變量並使用'saveenv'命令來存儲它們。如何清除先前用u-boot保存的環境變量?
現在我想回過頭來看看默認設置是什麼,確認我確切地知道發生了什麼變化,並找出一種方法來改變這些默認設置,以便生產中的每個單位不需要單獨啓動並修改。
有沒有辦法告訴u-boot清除任何保存的數據,以便我可以再次查看默認值?閃光類型是QSPI,如果這有所作爲。
在你的包,請嘗試
help env
並查找 「ENV默認」。
env default [-f] var [...] - [forcibly] reset variable(s) to their default values
這聽起來像你在找什麼。
env default -a
做了一個非持久性的改變,那麼「printenv」顯示默認值。
要更改默認設置,您需要重新構建您的u-boot.bin,其中包含更改。到CONFIG_EXTRA_ENV_SETTINGS。
我在./u-boot/include/configs/board-vendor.h.template中找到了配置。但是,在CONFIG_EXTRA_ENV_SETTINGS的這一部分中,我看到如下內容: 「loadaddr = @ nstart @ \ 0」 您知道'nstart'和其他類似變量的設置位置嗎?如果有更好的方法,我寧願不要用數字替換它們。 – KyleL
當前u-boot似乎沒有board-vendor.h,並且我不認可變量語法@nstart,對不起。 –
它必須是特定於我的套件(使用Xilinx Petalinux的Avnet Zedboard)。謝謝您的幫助! – KyleL
要使用默認瓦爾不從閃存刪除它們執行
env default -a
的u-boot中,然後執行$bootcmd
。 Joe Kul的解決方案。
爲erase the vars from the SPI flash執行
run eraseenv
的u-boot中,然後重新啓動。
U-Boot環境區域使用32位CRC進行驗證,因此如果在非易失性存儲器中對其進行破壞,只需要一個字節,則U-Boot將在啓動時恢復爲默認設置。 – sawdust