Yanıtlar:
Resmi bir liste yok, sıradan olanı kendinden çekirdeğe derlendi, diğeri çekirdek uzantılarıyla ayrıştırılabilir. İşte şimdiye kadar bulduğum liste.
Genel önyükleme seçenekleri:
-v
: Her zaman beklemeye gerek kalmadan Ayrıntılı modunda sistemi önyükleme CMD- Vbaşlangıçta.-x
: Başlangıçta beklemeye gerek kalmadan sistemi her zaman Güvenli Mod'daShift başlatın.f
: Eski Güvenli Mod.-s
: Önyükleme beklemeye gerek kalmadan tek kullanıcı moduna sistem CMD- Sbaşlangıçta.-F
- Boot Dosyasını Yoksay.iog
(örn. iog=0x0
)
Bu, Apple'ın dizüstü bilgisayar sistemleri için "Kapak" modunu tersine çevirir; ekranı kapattığınızda sistemi harici bir monitöre ve klavyeye bağladığınızda sistem uyanık kalır. Bu komutu çalıştırdıktan sonra, harici bir monitör bağlarken, iç ekran devre dışı bırakılır; bu, masaüstünüzü aynaladığınız bazı durumlarda yararlı olabilir ancak harici ekranı dizüstü bilgisayarınızın çalıştırabileceğinden daha yüksek bir çözünürlükte çalıştırmak isteyebilirsiniz. . CNET
arch
Sistemin 32-bit ( i386
) veya 64-bit ( x86_64
) çekirdeğine nasıl önyükleneceğini değiştirir . Üçüncü taraf çekirdeği uzantılarının yalnızca 32 bit veya 64 bit olabileceğini unutmayın.
Graphics Mode
: VESA Grafik Modu Boyutları.
Text Mode
: VGA Metin Modu Boyutları.Boot Graphics
: Grafik veya Metin Modu.Quiet Boot
: Sessiz Önyükleme Modu.MKext Cache
: Mkext önbellek dosyası.Kernel Cache
: Çekirdek Önbellek dosyası.rd
: Kök cihaz.boot-uuid
: UUID'yi önyükleyin.platform
: Platform Uzmanı {ACPI}.config
: Alternatif yapılandırma pistiniconfig=foobar
yükle (örneğin /Library/Preferences/SystemConfiguration/foobar.plist
yerine yüklenecek com.apple.Boot.plist
) x86osx .
serverperfmode=1
OS X El Capitan 10.11 ve sonraki sürümlerinde, bu performans modunun sunucu uygulamaları için ek sistem kaynaklarını tahsis etmesini sağlar .
DTrace:
dtrace_dof_mode
: DTrace DOF modlarını {0/1/2/3} ayarlayın.DisableFBT
: FBT'yi {1} devre dışı bırak.IgnoreFBTBlacklist
: Bazı kritik modüllerin kara listesini yok sayın {1}.BSD:
-b
: /Etc/rc.boot komutunu çalıştırmayın.-l
: Hafıza kaydı ( osfmk/kern/startup.c
) ile sızdırıyor .srv
: {1} sunucusu olarak önyükleme yapın.ncl
: Küme sayısı.nbuf
: BSD için tampon sayısı.kmem
: Çekirdek belleği erişimi {1}.trace
: Çekirdek izleme arabelleği boyutu.msgbuf
: Mesaj Tamponu.rp
: Kök yolu.mcache_flags
: Bellek önbellek bayrakları.mbuf_debug
: MBuf Hata Ayıklama {1}.initmcl
: Init mbuf kümeleri.socket_debug
: Soket hata ayıklama (net).net_affinity
: Net İlişkisi (net).rte_debug
: Hata ayıklama (net) {flags}.-rwroot_hack
: Mount root okuma / yazma.IOKit:
mseg
: Maksimum bölüm.dart
: Mevcut eşleştiriciyi kaldır.io
: IO Kit Hata Ayıklama.Mach:
keepsyms
: {1} KLD / Adres sembolü çevirisini boşaltmayınız.debug
: Çekirdek hata ayıklaması {flags} (örneğin debug=0x14e
).
Size ekstra bilgi gösterecek olan çekirdek hata ayıklama özelliklerini etkinleştirir. Örneğin
0x01
- Açılışta durun ve hata ayıklayıcının eklenmesini bekleyin0x02
- Çekirdeğe hata ayıklama çıktısını konsola gönder0x04
- Maske edilemez bir kesmede hata ayıklayıcıya bırakma0x08
- Çekirdek hata ayıklama bilgilerini seri bağlantı noktasına gönderme0x10
- Varsayılan hata ayıklayıcısını ddb yapın0x20
- Sistem günlüğüne arıza teşhisi bilgileri0x40
- Hata ayıklayıcının ARP'ye ve yönlendirmeye izin ver0x80
- Daha yeni sistemlerde eski gdb sürümlerini destekleyin0x100
- Grafiksel panik iletişim ekranını devre dışı bırakınnvram_paniclog
: panikloğu NVRAM {1} 'e ver.
pmsafe_debug
: CPU'ları {1} "güvenli" güç moduna getirin.preempt
: Varsayılan preemption oranını ayarlayın.unsafe
: Max güvensiz kanta.poll
: Max anket alanı.yield
: Anket verimi değişimini programlayın.idlehalt
: CPU'nun düşük güç moduna {1} geçmesine izin vermek için boşta kalan ipliği durdurun.panic_io_port
: Panik içinde bu G / Ç bağlantı noktasından {0x0 - 0xffff} okuyun._fpu
: Limit açılış zamanı işlemci özellikleri {387 / mmx / sse}.disable high mem/2
: yüksek mem tercih et}.immediate_NMI
: Hemen NMI hata ayıklayıcısını {1} zorla.-legacy
: Eski 32bit modunu zorla.lcks
: İstatistikleri kilitle.novmx
: Rosetta {1} 'da altivec emülasyonu yok.max_valid_dma_addr
: Maksimum geçerli DMA adresi.maxbouncepool
: Maksimum sıçrama havuzu boyutu.maxloreserve
: Azami düşük rezerv.npvhash
: Fizikselden sanal eşleme karmasına.wpkernel
: Yazma koruma çekirdeği {1}.-no_shared_cr3
: 64 bit kullanıcılar için paylaşılan çekirdek adres alanını devre dışı bırakın.-pmap_trace
: Pmap için çekirdek izlerini etkinleştirin._panicd_ip
: Panik sunucusunun IP adresi._router_ip
: Yönlendiricinin IP adresi.panicd_port
: Panik sunucusu limanı.-zc
: Serbest bölge eleman kontrolü.mtxspin
: Mutex dönüşü (ppc).vmmforce
: VMM gücü (ppc).fn
: Zorla nap (ppc) (acpi) {0/1/2}.pmsx
: Deneysel güç yönetimi step modu (ppc) {1}.ctrc
: İzlemeyi belirli cpu'ya (ppc) ayarlayın.tb
: Varsayılan olmayan izleme arabelleği boyutu (ppc).wcte
: Yazma birleştirme zamanlayıcı etkin (ppc).mcklog
: Makine kontrol bayrağını temizleyin (ppc).mcksoft
: Makine kontrol yazılımı kurtarma (ppc).ht_shift
: Varsayılan olmayan karma tablo boyutu (ppc) {1}.zsize
: Hedef bölge büyüklüğü.colors
: VM renklerini ayarlayın.fill
: Sayfaları doldurun.serialbaud
: Seri baud hızını ayarlayın.Önyükleme seçenekleri xnu/osfmk/i386/i386_init.c
:
diag
: Diyagnostik çıkış.serial
: Seri diyagnostik konsolu. Seri klavye ve / veya konsol desteği.
maxmem
Kullanılacak maksimum bellek. Adreslenebilir belleği belirtilen miktarla sınırlandırır (örn. maxmem=32
).
cpus=1
Sistemdeki aktif işlemci sayısını ayarlanan seviyeyle sınırlandırır. Bu, gücün korunmasına yardımcı olabilir, test etme ve programlama yapmadığınız sürece başkaları için pek de faydalı olmayabilir.
himemory_mode
4GB'tan büyük sistemler için büyük fiziksel bellek yapılandırmalarında hata ayıklamak için kullanılır. Modlar: 0 - tüm sayfalar mevcut, 1 - yüksek notu devre dışı bırak, 2 - yüksek notu tercih et.
immediate_NMI
Acil NMI hata ayıklayıcısını zorlayarak 4 GB'ın üzerindeki sistemler için hata ayıklama desteği.
urgency_notification_abstime
Diğer:
bluetoothHostControllerSwitchBehavior
( never
/ always
)
Bluetooth sürücüsüne, taktığınız dongle'a geçip geçmeyeceğinizi söyleyin. Harici dongle'ı yeniden başlattıktan sonra bile varsayılan yapmak için kullanın always
.
smbios
: Ayrıntılı SMBIOS (AppleSMBIOS.kext) {1}
acpi
: AppleACPIPlatform Hata Ayıkla {1-8}acpi_level
: ACPI Hata Ayıklama Seviyesiacpi_layer
: ACPI Hata Ayıklama Katmanıacpi_sleep
: ACPI Uykunvdebug
: NVDAResman hata ayıklamanvrm
: NVDAResmanndrv_debug_level
: NDRV Hata Ayıklama Seviyesi (NVDAResman)pstep
: Güç Adımında Hata Ayıklama (ACPI_SMC)hpet
: AppleHPETbusratio
(örn. busratio=20
): 10.5.6'da i7 işlemci kullanıyordu, 10.5.7'den sonra x86osx'a ihtiyacı yok .Kaynak: xnu-1228 / Önyükleme Argümanları
Örneğin, Tekli Moddayken ( CMD- Sbaşlangıçtaki sesten sonra), güvenli moda geçmek ve konsola ekstra çekirdek hata ayıklama çıktısı vermek için ayrıntılı olarak deneyin:
sudo nvram boot-args="-x -v debug=0x14e"
Argümanı var olana (geçersiz kılmadan) eklemek için şunu deneyin:
sudo nvram boot-args="-v $(nvram boot-args 2>/dev/null | cut -f 2-)"
Önyükleme bağımsız değişkenlerini kaldırmak için şunu çalıştırın:
sudo nvram boot-args=""
sudo nvram -d boot-args
Diğer resmi olmayan parametreler kernel
kendiliğinden ikili olarak bulunabilir , örn.
$ strings /System/Library/Kernels/kernel | grep -C7 maxmem
kernel_early_bootstrap
diag
serial
Serial mode specified: %08X
PE_init_printf
version_variant = %s
version = %s
maxmem
himemory_mode
himemory_mode: %d
immediate_NMI
urgency_notification_abstime
i386_vm_init
power_management_init
machine_startup
Ya da ( kaynakPE_parse_boot_argn
önyükleme argümanlarını ayrıştırmak için kullanılır) arayarak Apple kaynak dosyalarında veya GitHub'da kontrol edin .
Google için boot-args site:developer.apple.com
bazı iyi kaynaklar verir. Örneğin
cpus=1
sistemi sadece tek bir CPU çekirdeği kullanmaya zorlar. srv=1
Xserves ve Mac OS X Server'ın kurulu olduğu makinelerde ayarlanmıştır ve sözde sunucu dostu işlem için bazı çekirdek ayarlama parametrelerini değiştirmiştir. _panicd_ip=a.b.c.d
Çekirdek çekirdek dökümlerini yazmak için bir panik hata ayıklama sunucusunun IP adresini belirtmenizi sağlar. debug=0xH
(H, 1-4 basamaklı onaltılık bir sayıdır) Bu listeden çekirdek hata ayıklama bayraklarını ayarlamanızı sağlar:
DB_HALT 0x01 Önyükleme sırasında durdurun ve hata ayıklayıcı ekini (gdb) bekleyin. DB_PRT 0x02 Çekirdeğe hata ayıklama printf çıktısını konsola gönderin. DB_NMI 0x04 NMI'de hata ayıklayıcıya bırakma (Komut-Güç, Komut-Seçenek-Kontrol-ÜstKrkt-Escape veya kesme anahtarı). DB_KPRT 0x08 Çekirdek hata ayıklama kprintf çıkışını seri bağlantı noktasına gönder. DB_KDB 0x10 DDB'yi (kdb) varsayılan hata ayıklayıcı (özel bir çekirdek gerektirir) yapın. DB_SLOG 0x20 Sistem günlüğüne belirli tanılama bilgileri verir. DB_ARP 0x40 Hata ayıklayıcının ARP'ye ve yönlendirmeye izin ver (yönlendiriciler arasında hata ayıklamaya izin verir ve kalıcı bir ARP girişi için olan gereksinimi ortadan kaldırır, ancak potansiyel bir güvenlik deliğidir) - tüm çekirdeklerde bulunmaz. DB_KDP_BP_DIS 0x80 Yeni sistemlerde eski gdb sürümlerini destekleyin. DB_LOG_PI_SCRN 0x100 Grafiksel panik iletişim kutusunu devre dışı bırakın. DB_KERN_DUMP_ON_PANIC 0x0400 Sistem paniklerken çekirdeğin çekirdek dökümüne neden olur. DB_KERN_DUMP_ON_NMI 0x0800 Kullanıcı bir NMI tetiklediğinde çekirdeğin çekirdek dökümüne neden olur. DB_DBG_POST_CORE 0x1000 Bir NMI'ye yanıt olarak çekirdek çöktükten sonra çekirdeğin davranışını kontrol eder (DB_KERN_DUMP_ON_NMI). Kullanıcı bir NMI'yi tetiklerse ve bu bayrak temizse, çekirdek çekirdeği dökecek ve sonra devam edecektir. Tersine, eğer bu bayrak ayarlanmışsa çekirdek çekirdek dökecek ve ardından bir hata ayıklayıcı bağlantısı için bekleyecektir. DB_PANICLOG_DUMP 0x2000 Çekirdeğin tam bir çekirdek dökümü (bayrak temizse) veya yalnızca bir panik günlüğü (bayrak ayarlanmışsa) atıp atmadığını kontrol eder.
static void parse_bsd_args(void)
opensource.apple.com/source/xnu/xnu-2782.1.97/bsd/kern/…
void i386_init(void)
opensource.apple.com/source/xnu/xnu-2782.1.97/osfmk/i386/…
void gzalloc_configure(void)
opensource.apple.com/source/xnu/xnu-2782.1.97/osfmk/kern/…
-f Force rebuild extensions cache
-v Verbose booting shows debug information
-s Boots into single user mode (means only terminal based mode)
-x Boots into safe mode
-legacy Boots into 32bit instead of 64bit mode
rd=disk0s1 Force to boot a specific partition on a specific drive (BSD drive notation, means disk0 = physical disk 1). Here disk1 partition 1 is forced to be booted.
Graphics Mode=1024x768x32@75 Forces to boot with a resolution of 1024 x 768 with 32bit colors at 75Hz
Kernel=mach_kernel Forces to load a specific kernel, helpful for testing of new kernels.
cpus=1 Force using only 1 CPU core, may help addressing issues
idlehalt=0 May solve stuttering and shuttering on dualcore CPUs
platform=X86PC Forces to not use powermanagement (disables ACPI)
platform=ACPI Forces to use powermanagement (enables ACPI, but may crash your system)
Darwin çekirdeğine "xnu" denir, yapabileceğim en iyi şey, aranan kaynak kodunu bulmaktı.
Örnek: OS X 10.8.5
https://gist.github.com/reklis/fa26d4e8db62d6eea9ea
Prosedür:
Buraya gidin (veya OS X sürümünüz)
http://www.opensource.apple.com/release/mac-os-x-1085/
Download XNU tarball, özü, "parse_boot" için grep
cd xnu; grep -iRn parse_boot .
Son derece kullanışlı olanı unutmamak için (Lion'a güncelleme yaptıysanız ve mac'unuzu 'kapalı kapaklı modda' kapağı açıkken kullanmak istiyorsanız)
sudo nvram boot-args="iog=0x0"
Ancak beni rahatsız eden şey, bunun için bir açıklama bulamamam. Neden 0x0? Neden 0x1 değil? 'İog' zaten ne anlama geliyor?
MacBook'umda çalışmadığını belirtmeliyim.
Apple, kapsamlı bir liste sunmuyor gibi görünüyor. Birkaç bilinen seçenek için googling ve site:apple.com
sonuç vermez. Seçenekler listesini azaltmak, bunun gibi makaleler ve bazı argümanları bu argümanları ayrıştırırken bulur , ancak kapsamlı değildir.
Ayrıca PE_parse_boot_arg
, önyükleme argümanlarını ayrıştıran bir işlevi de arayabilirsiniz .
Söylendiği gibi, web'de kullanıcıların bulabildiğim en kapsamlı bilgiyi sağladığı birkaç üçüncü taraf sayfa var, ancak güncel olmayabilir: