अल्ट्रा फास्ट बूट का उपयोग करते समय UEFI फर्मवेयर सेटअप उपयोगिता दर्ज करने की आवश्यकता में (कीबोर्ड ड्राइवर POST के दौरान लोड नहीं होते हैं), मैं "ओएस इंडिकेशन्स" ओफी चर को लिखना चाहता हूं। मेरा OS उबंटू 14.04 कर्नेल 3.13.0-35-जेनेरिक है।
OsIndications
वेरिएबल एक UINT64 बिटमास्क लौटाता है
OsIndicationsSupported
वेरिएबल एक UINT64 बिटमास्क लौटाता है
EFI_OS_INDICATIONS_BOOT_TO_FW_UI
बिट अगर फर्मवेयर का समर्थन करता है ओएस अनुरोध एक फर्मवेयर यूजर इंटरफेस पर रोकने के लिए, फर्मवेयर द्वारा OsIndicationsSupported चर में सेट किया जा सकता।EFI_OS_INDICATIONS_BOOT_TO_FW_UI
बिट, OsIndications चर में ओएस द्वारा सेट किया जा सकता है, तो फर्मवेयर के लिए ओएस इच्छाओं अगले बूट पर एक फर्मवेयर यूजर इंटरफेस पर रोकने के लिए।
EFI_OS_INDICATIONS_BOOT_TO_FW_UI
=0x0000000000000001
- UEFI कल्पना 2.3.1C के पेज 312
मेरे फर्मवेयर में अगले बूट पर फर्मवेयर सेटअप उपयोगिता दर्ज करने की क्षमता है:
$ 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
हालाँकि 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" > /sys/firmware/efi/efivars/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c
-bash: printf: write error: Invalid argument
# printf "\x01" > /sys/firmware/efi/efivars/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c
-bash: printf: write error: Invalid argument
# cat enter-uefi-fw > /sys/firmware/efi/efivars/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c
cat: write error: Invalid argument
पुराने 1024 बाइट अधिकतम sysfs-efivars का उपयोग करना
# cat enter-uefi-fw > /sys/firmware/efi/vars/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c/raw_var
cat: write error: Input/output error
# cat enter-uefi-fw > /sys/firmware/efi/vars/new_var
cat: write error: Invalid argument
# echo 'enter-uefi-fw' > /sys/firmware/efi/vars/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c/raw_var
-bash: echo: write error: Invalid argument
# printf "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" > /sys/firmware/efi/vars/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c/raw_var
-bash: printf: write error: Invalid argument
ठीक से काम करने के लिए यूईएफआई चर समर्थन के लिए आवश्यकताओं की जांच की
- EFI रनटाइम सर्विसेज का समर्थन कर्नेल
$ cat /boot/config-$(uname -r) | grep CONFIG_EFI=y
रिटर्न में मौजूद होना चाहिएCONFIG_EFI=y
- कर्नेल प्रोसेसर बिटनेस / आर्क और EFI प्रोसेसर बिटनेस / आर्क मैच होना चाहिए
? - कर्नेल को EFI मोड में बूट किया जाना चाहिए
CSM फर्मवेयर सेटअप उपयोगिता / BIOS में अक्षम है - कर्नेल में EFI रनटाइम सेवाओं को कर्नेल cmdline के माध्यम से अक्षम नहीं किया जाना चाहिए, अर्थात noefi कर्नेल पैरामीटर का उपयोग नहीं किया जाना चाहिए।
cat /proc/cmdline | grep EFI
कुछ नहीं देता - efivarfs फाइल सिस्टम को / sys / फर्मवेयर / efi / efivars
mount | grep efivars
रिटर्न पर माउंट किया जाना चाहिएnone on /sys/firmware/efi/efivars type efivarfs (rw)
efivar -l
EFI वेरिएबल्स को बिना किसी त्रुटि के
सूचीबद्ध करना चाहिए कमांड 82 लाइनों को सूचीबद्ध करता है और कोई त्रुटि नहीं होती है।- / Sys / फर्मवेयर / efi / efivars / डंप- * फ़ाइलों के अस्तित्व की जाँच करें।
कोई डंप-फाइलें वहां मौजूद नहीं हैं।
Https://ask.fedoraproject.org/en/question/8264/after-installing-fedora-i-cant-open-biosefi-setup/?answer=16402#post-idad402 के अनुसार cat enter-uefi-fw > /sys/firmware/efi/vars/new_var
कमांड को फेडोरा में काम करना चाहिए 17।
पहले हटाने के सुधार नहीं करता है
# rm -rv /sys/firmware/efi/efivars/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c
removed '/sys/firmware/efi/efivars/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c'
# ls -l enter-uefi-fw
-rw-r--r-- 1 root root 2084 Aug 25 20:23 enter-uefi-fw
# cat enter-uefi-fw > /sys/firmware/efi/vars/new_var
cat: write error: Invalid argument
मैं कमांड लाइन से Ubuntu 14.04 (भरोसेमंद) में पहले से ही मौजूद OsIndications efi चर को कैसे अपडेट कर सकता हूं?
-bash: echo: write error: Invalid argument