Löschen von NVRAM nicht möglich

  • Habe OC und Clover. Ich habe von OC gebootet, dann Clover. Bei Clover fiel mir im Bootvorgang (-v) auf, dass noch NVRAM Daten von OC im Weg stehen. Dies ist insbesondere boot-args.

    Habe folgende Wege versucht, um das NVRAM zu löschen.


    • Clover F11
    • sudo nvram -c



    Hat jemand eine Idee? (OC/Clover Parameter ...)

    ========

    Schützt unsere Kinder, das wichtigste, das die Menschheit hat.

    =====

    42

    (H2G2)

    We have the first snowflake. Now let's build a blizzard. - Douglas Adams

  • Vielen Dank für die Tips.


    ... geht schon wieder auf die 2:00 Uhr zu, drum eine Zusammenfassug.


    Hinweis:

    Wird einige zum Lachen bringen, habe ich kein Problem mit. ;)


    • Audio hat nicht funktioniert.
    • Clover gebootet, funktioniert nicht.
    • OC, funktioniert nicht.
    • Protokolliere einiges mit (configs.plist, allgemeine Änderungung). Damit konnte ich relativ schnell ausschliessen, dass eine Änderung der configs stattgefunden hat.
    • Habe überlegt, wenn die beiden nicht (mehr) funktionieren, dass es an einer gemeinsam benutzen Sache (NVRAM) liegen könnte. Deshalb die Nachfrage nach dem Löschen. Hätte mehr geschrieben, war aber kurz vor Biergarten.
    • Als ich dann wieder zuhause war, habe ich erstmal weitergeguckt und mir den AppleAlc vor genommen. Weil letztendlich dann die layout-id relevant ist, habe ich an dieser Stelle. abgebrochen. (bei mir gibts round about 8 layouts).
    • Nun kommt der lustige Teil
    • Habe mir dann einen Tee geholt, die Tasse steht genau an am Lautsprecher. Habe dann mal kurz getrunken und dann nochmal den Regler überprüft.
    • Beim zweiten Versuch fiel mir dann wieder ein, dass das Ding eigentlich eine LED hat. (wenn auch ziemlich winzig) Eingeschaltet, funktioniert. Da ich das Ding nicht ausgeschaltet habe, muss das beim Abstellen der Tasse passiert sein. Es ist nicht so, dass sich die Powertaste leicht drücken lässt. Insgesamt ist die Wahrscheinlichkeit ziemlich gering, dass die Taste überhaupt betätigt werden konnte (Drehregler ist beispielsweise im Weg).


    In diesem Sinne, Gute Nacht.

    Harry


    (Könnte einer natürlich sagen, diesen Check vorher zu machen. Diese Person nutzt dann das Ergebnis von mir und "optimiert" meine Vorgehensweise indem er einfach nur den letzten Punkt herauspickt.)


    Noch einer zum Schluss mit dem Thema "Wissen".

    Es gab einen Toten im Wilden Westen. Auf seinem Grabstein steht: Er wusste zuviel.

    ========

    Schützt unsere Kinder, das wichtigste, das die Menschheit hat.

    =====

    42

    (H2G2)

    We have the first snowflake. Now let's build a blizzard. - Douglas Adams

  • Was das NVRAM Thema angeht und hier insbesondere den Teil mit dem Löschen aus dem laufenden System heraus (SUDO NVRAM -C) ist die Meldung im übrigen ganz normal ;)

    Es gibt einige Variablen die sich aus dem Userland nicht löschen lassen (und das ist auch gut so) eine davon ist zum Beispiel die csr-active-config. Wenn also die Meldung kommt kann man das wohlwollend ignorieren denn alles andere ist dann trotzdem gelöscht nur halt eben die speziell geschützten Variablen nicht. Generell ist aber eh von umgerichteten NVRAM Löschaktionen abzuraten wenn schon was im NVRAM löschen dann bitte gezielt die Variable die man als Problem vermutet und nicht Immer gleich komplett Tabula Rasa machen. Wem die Anzeige über das Terminal zu unübersichtlich und die notwendige Tipperei um gezielt eine Variable zu löschen zu aufwändig ist kann sich hier gut des hackintools bedienen viel übersichtlicher und intuitiver kann man es eigentlich nicht mehr machen.


    Gut zur Lösung des akuten Problems hätte das jetzt nichts beigetragen aber vielleicht ist es ja trotzdem gut das zu wissen.

  • Hi griven,


    vorweg: Ich bin der Meinung, dass das Thema von Dir so wichtig ist, das es einen Platz in den Grundlagen verdient hat.


    Hardware-technisch ist ein CMOS (SRAM) ein Baustein der Strom benötigt, um seine Inhalte zu behalten (CMOS-Batterie).


    Der andere Baustein NVRAM benötigt für die Speicherung keinen Strom (Batterie). Deshalb Non Volatile (nicht flüchtig) im Namen. Einfachstes Beispiel ist die Anwendung von Flashspeicher im USB-Stick.


    Inhaltstechnisch hat man im wesentlichen folgenden Unterschied: Das BIOS (Firmware) enthält Programmcode, der für das Booten eines Systems notwendig ist. Auch die Bootparameter, die man dort einstellt.


    NVRAM enthält Parameter. Es gibt globale, die für alle OS auf dieser Maschine Verwendung finden. Dazu gehören beispielsweise die Booteinträge mit ihren Parametern. Ein Parameter enthält den Eintrag, welches das default System kennzeichnet, das zu booten ist.

    In den Booteinträgen wird auch vermerkt, wo das zu startende EFI für dieses OS zu finden ist (BootFilePath). Bei uns die oc.efi.

    (Verschiedene "Tools" können diese Einträge bearbeiten. Dazu gehört das bekannteste GUI easyUEFI, etwas tiefer unten (commandline etc.) liegen bcfg (MS) und natürlich auch die UEFI-Shell, Linux ist in dieser Hinsicht mit seinen Tools sehr umfangreich aufgestellt.)


    Die lokalen Parameter, sind einem OS zugeordnet. Hier können Sachen abgelegt werden, die den Bootvorgang "überstehen", zum Beispiel die zuletzt gewählte Lautstärke. Bei boot-args wird es ein bischen komplizierter. Apple benötigt diesen Parameter, deshalb steht er bei uns auch drin. Master bei uns ist aber OC/Clover, die diesen Wert einstellen. (bitte griven eingreifen, wenn vielleicht sogar falsch.)


    Das man über das Hackintool löschen/hinzufügen kann, ist mir bis jetzt gar nicht aufgefallen. Dickes Minus/Plus unten. Man schaut diese Variablen lieber im Tool an, als über nvram -p. Das liegt daran, dass die Dinger eine GUUID haben. Zur Absicherung deswegen, dass sich die OS sich nicht gegenseitig die Parameter abschiessen. (Habe gleich mal den Lautstärke Parameter gekillt ;-)).


    griven hat in einem Eintrag das Tool zur Einstellung der SIP-Protection von cvad vorgestellt. Die letzte Option ist die "NVRAM-Protection". Habe den Eindruck, wie dargestellt, dass es dann Parameter gibt, die noch einen grösseren Schutz haben.

    Für die oben angesprochene "Tabula rasa" Verwendung, wäre es gut die Fälle zu beschreiben, in denen ein "NVRAM"-Reset wirklich notwendig ist. Habe beispielsweise eine Stelle bei Dortania gefunden, an der es notwendig ist einen Reset durchzuführen. Bei der Beschreibung wird festgehalten, das man in bestimmten Umständen in einer RecoveryOS boot Schleife festhängt (OC-Parameter SecureBootModel).


    https://dortania.github.io/Ope…issues.html#disabling-sip


    Hänge noch ein paar Bilder, Links etc. rein:


    Leider ;-) habe ich nur eine gute, kompakte Beschreibung bei MS gefunden:



    https://docs.microsoft.com/en-…ew-of-boot-options-in-efi


    Nicht vom Begriff "EFI" fehlleiten lassen (wo ist das U). Die UEFI-Spec setzt auf der EFI-Spec von EFI 1.0 von Intel auf. Selbstverständlich wurden Bugs gefixt und auch viele neue Funktionen hinzugefügt.


    https://uefi.org/faq



    Ich hoffe, ich konnte zu dem Thema ebenfalls was beitragen.


    PS:

    Die Historie wann die wichtigen "Unixe" entstanden sind, liegt im Link eins meiner Signatur. Dort sieht man auch unseren Liebling macOS.


    Im Link zwei befindet sich der Motor: (GNU)/Linux.


    Im Link drei befindet sich die BASIS: die bekannteste Lizenz ist die GPL (GNU general public licence). Der Kernpunkt ist: Man kann mit dem Quellcode machen, was man will. (Kopieren, Erweitern, Verkaufen, etc.). Durch diese Offenheit ist es sehr leicht möglich zusammenzuarbeiten und eine äusserst hohe Software-Qualität zu erreichen.


    Das gilt auch für OC, der Quellcode ist offen. Wenn man will, kann man auch einmal kurz nachschauen, was bei einem NVRAM-Reset durchgeführt wird. ;-)

    ========

    Schützt unsere Kinder, das wichtigste, das die Menschheit hat.

    =====

    42

    (H2G2)

    We have the first snowflake. Now let's build a blizzard. - Douglas Adams

  • Hallo mhaeuser ,


    Du hast dich im Thread mit der AppleALC 1.6.2 gemeldet, drum möchte ich auch eine kurze Frage stellen.


    Habe mir mal das Löschen des NVRAMs in OC angeschaut, passt ja auch zum Thema.


    Folgendes habe ich gefunden:

    VariableManagement.c

    DeleteVariables()


    Nehme an, dass folgende Zeile dann jeweils die Variable löscht.


    Code
    1. Status = gRT->SetVariable (Buffer, &CurrentGuid, 0, 0, NULL);

    Frage:


    Ich finde die function SetVariable() nicht. Kann man die finden? Wenn ich falsch unterwegs war, wirst Du mich sicher korrigieren.



    Harry

    ========

    Schützt unsere Kinder, das wichtigste, das die Menschheit hat.

    =====

    42

    (H2G2)

    We have the first snowflake. Now let's build a blizzard. - Douglas Adams

  • Ich finde die function SetVariable() nicht. Kann man die finden? Wenn ich falsch unterwegs war, wirst Du mich sicher korrigieren.

    Das ist ein Funktionszeiger auf die gRT-Tabelle, die von der FW bereitgestellt wird (analog dynamische Bibliothek)

  • mhaeuser Vielen Dank für die Info. Daraus schliesse ich, dass die Stelle für das Löschen die richtige war.


    Ist FW "Firmware" in diesem Zusammenhang?

    (kann ich jetzt mit ja beantworten)


    Nochmals danke, mit Deiner Info habe ich es dann in der UEFI-Spezifikation finden können.


    ========

    Schützt unsere Kinder, das wichtigste, das die Menschheit hat.

    =====

    42

    (H2G2)

    We have the first snowflake. Now let's build a blizzard. - Douglas Adams

    Einmal editiert, zuletzt von HAI ()