Înțelegerea procesului de bootare macOS
Când vine vorba de depanarea unui Hackintosh, poate fi destul de dificil să înțelegi exact unde te blochezi, deoarece cuvintele cheie pe care încerci să le cauți s-ar putea să nu se potrivească cu nimic pe Google. Deși această pagină nu va rezolva toate problemele tale, ar trebui să te ajute să înțelegi mai bine unde în procesul de bootare macOS te blochezi și, sperăm, să îți ofere câteva idei despre motivele pentru care te-ai blocat.
Bootarea cu OpenCore
Această secțiune va fi scurtă, deoarece problemele de bootare cu OpenCore sunt destul de rare și de obicei sunt erori simple de utilizator:
- Sistemul se pornește și caută dispozitive de bootare.
- Sistemul localizează BOOTx64.efi pe USB-ul OpenCore sub EFI/BOOT/.
- BOOTx64.efi este încărcat, care apoi încarcă în lanț OpenCore.efi din EFI/OC/.
- Proprietățile NVRAM sunt aplicate.
- Driverele EFI sunt încărcate din EFI/OC/Drivers.
- Protocolul de ieșire grafică (GOP) este instalat.
- Tabelele ACPI sunt încărcate din EFI/OC/ACPI.
- Datele SMBIOS sunt aplicate.
- OpenCore se încarcă și îți arată toate opțiunile de bootare posibile.
- Acum bootezi instalatorul macOS.
Probleme comune de bootare cu OpenCore
Dacă întâmpini probleme la acest punct, principalele lucruri de verificat sunt:
- Blocare la mesajul „no vault provided!”
- Nu poți vedea partițiile macOS
- Bootarea OpenCore se resetează la BIOS
Handoff-ul boot.efi
Bootloader-ul macOS (boot.efi)
Aici intervine bootloader-ul macOS (boot.efi). Rolul său specific este de a pregăti mediul pentru încărcarea kernel-ului și de a permite injectarea kext-urilor de către OpenCore. Dacă te blochezi în acest punct, este probabil să existe o problemă cu încărcarea kernel-ului. Principalele cauze posibile sunt:
- Blocare la mesajul „EndRandomSeed”
- Blocare la mesajul „[EB|#LOG:EXITBS:START]”
- Erori de tip „Couldn’t allocate runtime area”
Pentru restul problemelor posibile, vezi aici:
Notă
În macOS 10.15.4, Apple a schimbat protocolul de depanare pentru boot.efi, astfel încât lucrurile vor arăta destul de diferit față de versiunile anterioare, dar toate regulile rămân aceleași.
Handoff-ul XNU/Kernel
Acum că boot.efi a pregătit totul pentru noi, putem urmări kernel-ul în acțiune. Această secțiune este adesea denumită faza de Rooting:
- Kernel-ul începe să se încarce și să inițializeze componentele esențiale ale sistemului.
- Kext-urile (extensiile kernel-ului) sunt injectate și încărcate, asigurând compatibilitatea hardware și funcționalitatea necesară.
- Kernel-ul finalizează procesul de inițializare și predă controlul către sistemul de operare macOS.
XNU/Kernel Handoff
Verificarea datelor SMBIOS și încărcarea tabelelor ACPI/Kexts
În această secțiune, datele SMBIOS sunt verificate, tabelele ACPI și kext-urile sunt încărcate, iar macOS încearcă să pună totul în ordine. Eșecurile în această etapă sunt, în general, rezultatul următoarelor probleme:
- SSDT-uri corupte
- Kext-uri corupte (sau configurate incorect în fișierul tău config.plist -> Kernel -> Add)
- Hartă de memorie defectuoasă
Pentru mai multe informații despre depanare, vezi următoarele resurse:
Verificarea datelor SMBIOS și încărcarea tabelelor ACPI/Kexts
În această secțiune, datele SMBIOS sunt verificate, tabelele ACPI și kext-urile sunt încărcate, iar macOS încearcă să pună totul în ordine. Eșecurile în această etapă sunt, în general, rezultatul următoarelor probleme:
- SSDT-uri corupte
- Kext-uri corupte (sau configurate incorect în fișierul tău config.plist -> Kernel -> Add)
- Hartă de memorie defectuoasă
Pentru mai multe informații despre depanare, vezi următoarele resurse:
Începerea configurațiilor PCI
Acum avem secțiunea [PCI configurations begin], care poate fi văzută ca un test hardware pentru sistemele noastre. În această etapă, kext-urile și SSDT-urile injectate sunt testate, iar IOKit începe să caute dispozitive de atașat. Principalele lucruri testate aici sunt:
- Controlere încorporate
- Stocare (NVMe, SATA, etc.)
- PCI/e
- NVRAM
- RTC
- PS2 și I2C
Pentru informații mai detaliate despre cum să depășești problemele din această zonă, vezi aici:
Începerea configurațiilor PCI
Acum avem secțiunea [PCI configurations begin], care poate fi văzută ca un test hardware pentru sistemele noastre. În această etapă, kext-urile și SSDT-urile injectate sunt testate, iar IOKit începe să caute dispozitive de atașat. Principalele lucruri testate aici sunt:
- Controlere încorporate
- Stocare (NVMe, SATA, etc.)
- PCI/e
- NVRAM
- RTC
- PS2 și I2C
Limitarea porturilor USB și erorile „Waiting for Root Device”
Aceasta este etapa în care limitarea la 15 porturi și maparea USB intră în joc și unde apar erorile infame „Waiting for Root Device”. Principalele lucruri de verificat sunt:
Limitarea porturilor USB și erorile „Waiting for Root Device”
Aceasta este etapa în care limitarea la 15 porturi și maparea USB intră în joc și unde apar erorile infame „Waiting for Root Device”. Principalele lucruri de verificat sunt:
FakeSMC/VirtualSMC și DSMOS
În această etapă, FakeSMC/VirtualSMC își fac apariția și își fac magia. DSMOS este un kext care verifică dacă sistemul tău are un SMC și va solicita o cheie. Dacă această cheie lipsește, DSMOS nu va decripta restul binarelor și te vei bloca aici. De asemenea, te poți bloca la AppleACPICPU, care este aceeași eroare.
AppleALC și driverele audio
Aceasta este etapa în care driverul audio al Apple intră în scenă și unde AppleALC strălucește. În general, este rar să întâmpini probleme aici, dar dacă totuși apar, încearcă să dezactivezi AppleALC și orice alte kext-uri legate de audio.
Pentru mai multe informații despre depanare, vezi următoarele resurse:
Finalizarea procesului de bootare
După ce toate componentele și driverele sunt încărcate și configurate corect, sistemul ar trebui să finalizeze procesul de bootare și să te ducă la ecranul de login al macOS. Dacă întâmpini probleme în această etapă, asigură-te că toate setările și fișierele necesare sunt corect configurate și că urmezi ghidurile de instalare și depanare disponibile pentru OpenCore și macOS.
AppleALC și driverele audio
Aceasta este etapa în care driverul audio al Apple intră în scenă și unde AppleALC strălucește. În general, este rar să întâmpini probleme aici, dar dacă totuși apar, încearcă să dezactivezi AppleALC și orice alte kext-uri legate de audio.
Pentru mai multe informații despre depanare, vezi următoarele resurse:
Finalizarea procesului de bootare
După ce toate componentele și driverele sunt încărcate și configurate corect, sistemul ar trebui să finalizeze procesul de bootare și să te ducă la ecranul de login al macOS. Dacă întâmpini probleme în această etapă, asigură-te că toate setările și fișierele necesare sunt corect configurate și că urmezi ghidurile de instalare și depanare disponibile pentru OpenCore și macOS.
Inițializarea driverului GPU și WhateverGreen
În această etapă, ajungem la inițializarea driverului GPU, unde WhateverGreen își face magia. În general, erorile din această etapă sunt datorate GPU-ului și nu neapărat lui WhateverGreen. Principalele probleme întâlnite aici sunt:
- Blocare la sau în apropierea mesajului „IOConsoleUsers: gIOScreenLock…”
- Ecran negru după „IOConsoleUsers: gIOScreenLock…” pe Navi
Pentru mai multe informații despre depanare, vezi următoarele resurse:
Handoff-ul macOS
După ce driverul GPU și WhateverGreen au fost inițializate corect, sistemul ar trebui să finalizeze procesul de bootare și să te ducă la ecranul de login al macOS. Dacă întâmpini probleme în această etapă, asigură-te că toate setările și fișierele necesare sunt corect configurate și că urmezi ghidurile de instalare și depanare disponibile pentru OpenCore și macOS.
Probleme comune în această etapă
Dacă te blochezi la logo-ul Apple după ce ai trecut de toate mesajele verbose, există câteva lucruri de verificat:
- macOS îngheață chiar înainte de login
- Ecran negru după „IOConsoleUsers: gIOScreenLock…” pe Navi
- Înghețare în instalatorul macOS după 30 de secunde
Pentru mai multe informații despre depanare, vezi următoarele resurse: