Error: read variable BootChainFwCurrent failed!

Hi,

麻煩看一下這兩篇
https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git/commit/?h=linux-5.4.y-rt-rebase&id=ba7585a4a5580b4cba26ebe76050bd2ef1148948
https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git/commit/?h=linux-5.4.y-rt-rebase&id=0728d54203b80b7de2391b34976b6838a6dbace0
這是upstream Linux kernel的問題

nvbootctrl dump-slots-info會失敗是因為efivarfs沒有被mount起來 而和bootloader有關的資訊都存在efivarfs裡面
會mount不起來是因為EFI相關的函式載入時間太久 所以在kernel裡預設被關掉
可以在kernel cmdline裡加上efi=runtime把它手動開起來

我不確定具體是哪一版,但是這個設定在後面版本的kernel又被打開了,所以36.3上沒有這個問題

Hi,

Please take a look at these two kernel commits:
https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git/commit/?h=linux-5.4.y-rt-rebase&id=ba7585a4a5580b4cba26ebe76050bd2ef1148948
https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git/commit/?h=linux-5.4.y-rt-rebase&id=0728d54203b80b7de2391b34976b6838a6dbace0
It’s an issue in the upstream Linux kernel.

nvbootctrl dump-slots-info fails because efivarfs is not mounted, and all bootloader information that nvbootctrl needs is stored in efivarfs.
efivarfs is not mounted because kernel developers think that these EFI related functions take too long to initialize, not meeting the real time standards, so they are simply disabled.
You can add efi=runtime to kernel cmdline, as specified in /boot/extlinux/extlinux.conf to manually enable it.

This config is enabled again in later kernel versions, so you don’t need this on 36.3.