Bazı dersleri EFI saplamasının (efistub) Linux çekirdeğini nasıl yükleyeceğini okuyorum. Bu talimatlar genellikle çekirdek önyükleme parametresini kullanır add_efi_memmap
. Amaçlanan donanım 8GB RAM'e sahip Intel x64'tür. Geçerli kurulumum grub-efi
bootloader ve çekirdek v3.13'ü çalıştırıyor .
GRUB önyükleme olmadanadd_efi_memmap
önyükleme argüman:
23
BIOS-e820 satırları sayılırdmesg | grep BIOS-e820: | wc -l
243
EFI bellek hatları tarafından sayılandmesg | grep efi:\ mem | wc -l
- DMA bölgesi:
24
sayfalar ayrıldı - Bellek: 7840568K / 8283384K kullanılabilir
- 442816K ayrılmış
GRUB önyükleme ile add_efi_memmap
ve EFI hafıza haritası boyutu farklılık gözüküyor:
23
BIOS-e820 hatları57
EFI hafıza hatları- DMA bölgesi:
22
sayfalar ayrıldı - Bellek: 7885076K / 8283384K kullanılabilir
- 398308K saklıdır
EFI saplama önyükleme olmadan add_efi_memmap
:
22
BIOS-e820 hatları60
EFI hafıza hatları- DMA bölgesi:
21
sayfalar ayrıldı - Bellek: 7885012K / 8283384K kullanılabilir
EFI saplama çizme ile add_efi_memmap
:
22
BIOS-e820 hatları66
EFI hafıza hatları- DMA bölgesi:
21
sayfalar ayrıldı - Bellek: 7882124K / 8283384K kullanılabilir
Daha fazla bilgi okuduktan sonra - aşağıda belirtildiği gibi - eklemek isteyip istemediğinizi çözemiyorum add_efi_memmap
. Önyükleme için kesinlikle gerekli görünmeyen ekstra bir şey yapıyor. Öte yandan, kullanılabilir belleğin daha iyi (daha eksiksiz) bir görünümünü vermek için verebilir.
Hangi durumlarda bu add_efi_memmap önyükleme argümanı EFI saplama önyüklemesi için kullanılmalıdır? Bu, EFI saplama önyükleme hızını artırır / azaltır ve uygulamalar için boş belleği artırır veya azaltır mı? EFI bellek haritamın E820 haritamdan daha fazla giriş içerip içermediğini (daha iyi) nasıl kontrol edebilirim?
Bazı add_efi_memmep belgelerine zaten danışıldı:
add_efi_memmap : mevcut fiziksel RAM'ın EFI bellek haritasını içerir.
EFI bellek haritasında E820 haritasında olmayan ilave girişler varsa, aşağıdaki çekirdek komut satırı parametresini kullanarak mevcut fiziksel RAM'ın çekirdek bellek haritasındaki girişleri ekleyebilirsiniz. - https://www.kernel.org/doc/Documentation/x86/x86_64/uefi.txt
Başlangıçta E820 BIOS bellek haritası girişlerini ve / veya çekirdek komut satırı memmap girişlerini bulduktan sonra EFI bellek haritası girişlerini (varsa) her zaman bellek haritasına eklemek yerine, yalnızca çekirdek önyükleme seçeneği varsa, bu ek EFI bellek haritası girişlerini ekleyin. :
add_efi_memmap
belirtildi. - http://www.gossamer-threads.com/lists/linux/kernel/937817
Önyükleme donuyor - GRUB, çekirdeği ve ilk ramdisk'i yükledikten sonra herhangi bir hata mesajı olmadan takılırsa, add_efi_memmap çekirdek parametresini kaldırmayı deneyin. - https://wiki.archlinux.org/index.php/GRUB#Boot_freezes
Bu düzeltme
add_efi_memmap
, şu anda çalışan çekirdeğin komut satırında seçenek varken , çekirdek bellek eşlemesini/proc/iomem
yerine okumak için kexec yükleyicisinin davranışını değiştirir/sys/firmware/memmap
.EFI sistemlerinde, bazen e820 tablosu eksik veya eksik olabilir. Bunun gibi sistemler
add_efi_memmap
, sistemin belleğinin tam bir resmini oluşturmak için çekirdeğin bellek tablosuna EFI'nin bellek tablosu girişlerini ekleme seçeneğini kullanır ; ancak, seçeneği kullanmak, bu girişleri/sys/firmware/memmap
, bozulmamış bir orijinal kopya olması amaçlanan, doldurmak için kullanılan tabloya eklemez .Kexec yükleyici varsayılan olarak bozulmamış bellek haritasını kullanır; bu, yükleyici sistemin tam bir resmine sahip olmadığında ve çekirdeği veya ramdisk'i gerçekten kullanılamayan yerlere yanlış yüklediğinde sorunlara neden olur. Bu değişiklik kexec yükleyicisinin
add_efi_memmap
seçenek için çalışan çekirdeğin komut satırını kontrol etmesini sağlar ve eğer bulursa, orijinal harita yerine değiştirilmiş haritayı kullanır. - http://lists.infradead.org/pipermail/kexec/2011-Nisan/005014.html
2009 yılında Linux çekirdek geliştiricileri tarafından bir dizi yanlış başlangıçtan sonra gelen çözüm (kesmek) bir çekirdek komut satırı seçeneği eklemek idi,
add_efi_memmap
- çekirdeğe EFI bellek haritasına bakmasını ve çeşitli girişleri düzeltmek için kullanmasını söylemek E820 hafıza haritasında. - http://blog.fpmurphy.com/2012/08/uefi-memory-v-e820-memory.html