Ultra hızlı önyükleme (UST sırasında klavye sürücüleri yüklenmez) kullanırken UEFI ürün yazılımı kurulum yardımcı programına girmeniz gerektiğinde, "Os Endikasyonları" efi değişkenine yazmak istiyorum. İşletim sistemim Ubuntu 14.04 çekirdeği 3.13.0-35-jenerik.
OsIndications
değişkeni bir UINT64 bitmask döndürür
OsIndicationsSupported
değişkeni bir UINT64 bitmask döndürür
EFI_OS_INDICATIONS_BOOT_TO_FW_UI
Firmware destekleri OS istekleri firmware kullanıcı arayüzü durmak eğer biraz yazılımlar ile OsIndicationsSupported değişkeninde ayarlanabilir.EFI_OS_INDICATIONS_BOOT_TO_FW_UI
Firmware için OS arzuları sonraki açılışta bir firmware kullanıcı arayüzü durmak eğer biraz OsIndications değişkeninde işletim sistemi tarafından ayarlanabilir.
EFI_OS_INDICATIONS_BOOT_TO_FW_UI
=0x0000000000000001
- Sayfa 312, UEFI spec 2.3.1C
Ürün yazılımım sonraki önyüklemede ürün yazılımı kurulum yardımcı programına girme yeteneğine sahiptir:
$ hexdump /sys/firmware/efi/vars/OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c/data
0000000 0001 0000 0000 0000
0000008
/sys/firmware/efi/efivars
Kullanarak yeni bir değişken oluşturabilirim
$ printf\x07\x00\x00\x00\x00" > myvar-12345678-1234-1234-1234-123456789abc
Ancak efi değişkenine yazmak OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c
her türlü sonuçla sonuçlanır write error: Invalid argument
:
Yeni efivarflar kullanma
# 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
Eski 1024 baytlık maksimum sysfs-efivars kullanma
# 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
UEFI değişkenleri desteğinin düzgün çalışması için gereksinimler kontrol edildi
- Çekirdek
$ cat /boot/config-$(uname -r) | grep CONFIG_EFI=y
iadelerinde EFI Çalışma Zamanı Hizmetleri desteği bulunmalıdırCONFIG_EFI=y
- Çekirdek işlemci bit / arch ve EFI işlemci bitness / arch eşleşmelidir
? - Çekirdek EFI modunda önyüklenmelidir
CSM, Firmware kurulum yardımcı programında / BIOS'ta devre dışı bırakıldı - Çekirdekteki EFI çalışma zamanı hizmetleri, çekirdek cmdline'ı üzerinden devre dışı bırakılmamalıdır, yani noefi çekirdek parametresi kullanılmamalıdır.
cat /proc/cmdline | grep EFI
hiçbir şey döndürmez - efivarfs dosya sistemi / sys / firmware / efi / efivars
mount | grep efivars
return dizinine eklenmelidirnone on /sys/firmware/efi/efivars type efivarfs (rw)
efivar -l
EFI Değişkenlerini hatasız olarak
listelemelidir. Komut 82 satırı listeler ve hata içermez.- / Sys / firmware / efi / efivars / dump- * dosyalarının varlığını kontrol edin.
Orada döküm dosyası yok.
Göre https://ask.fedoraproject.org/en/question/8264/after-installing-fedora-i-cant-open-biosefi-setup/?answer=16402#post-id-16402cat enter-uefi-fw > /sys/firmware/efi/vars/new_var
komut Fedora'da çalışmalıdır 17.
İlk OsIndications'ı silmek düzelmez
# 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'te (güvenilir) zaten mevcut olan OsIndications efi değişkenini komut satırından nasıl güncelleyebilirim?
-bash: echo: write error: Invalid argument