如何从命令行编写/编辑/更新OsIndications efi变量?
如果需要在使用超快速启动时输入UEFI固件设置实用程序(在POST过程中未加载键盘驱动程序),我希望写入“ Os Indications” efi变量。我的操作系统是Ubuntu 14.04内核3.13.0-35-generic。 OsIndications 变量返回一个UINT64位掩码 OsIndicationsSupported 变量返回一个UINT64位掩码 该EFI_OS_INDICATIONS_BOOT_TO_FW_UI位可以在OsIndicationsSupported变量由固件设置,如果固件支持OS请求停止在固件的用户界面。EFI_OS_INDICATIONS_BOOT_TO_FW_UI如果操作系统希望固件在下次启动时停止在固件用户界面上,则可以由操作系统在OsIndications变量中设置该 位。 EFI_OS_INDICATIONS_BOOT_TO_FW_UI= 0x0000000000000001- 佩奇312 UEFI规范2.3.1C的 我的固件能够在下次启动时进入固件设置实用程序: $ hexdump /sys/firmware/efi/vars/OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c/data 0000000 0001 0000 0000 0000 0000008 我可以在/sys/firmware/efi/efivars使用时 创建一个新变量 $ printf\x07\x00\x00\x00\x00" > myvar-12345678-1234-1234-1234-123456789abc 但是,写入efi变量会OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c导致各种结果write error: Invalid argument: 使用新的efivarfs # printf "x00\x00\x00\x01" > /sys/firmware/efi/efivars/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c -bash: printf: write error: Invalid argument # printf "x00\x00\x00\x01" …