Ich habe ungefähr 8 Stunden gesucht und möchte die Punkte klären, die ich noch nicht vollständig herausgefunden habe.
( TLDR-Version: Wie kann ich über die CLI auf alle BIOS-Einstellungen zugreifen (lesen und schreiben) (z. B. Virtualisierung aktivieren / deaktivieren, Turbofrequenz der GPU aktivieren / deaktivieren, Protokollanzeigezeit festlegen usw.)? )
Hier ist die Geschichte.
Erstens hatten wir alte BIOSes, wie dieser .
Und jetzt haben wir die neue Generation von BIOSes, wie dieser . Und wir nennen sie als UEFI-BIOS, bin ich richtig?
Dann habe ich folgende Artikel gelesen (und getestet):
- www.pixelbeat.org/docs/bios/
- stackoverflow.com/questions/6259124/apis-for-querying-and-setting-bios-properties (und auch alle Links, auf die in den Antworten verwiesen wird)
- unix.stackexchange.com/questions/126132/how-to-dump-bios-data-to-a-file
- stackoverflow.com/questions/34537435/where-ddmidecode-get-the-smbios-table
- en.wikipedia.org/wiki/System_Management_BIOS
- www.linux-mag.com/id/7768/
- www-pc.uni-regensburg.de/hardware/techdok/bios_dmi_20.pdf (bis Seite 17)
- www.geeklab.info/2010/05/backup-your-cmos-from-linux/
- www.bioscentral.com/misc/cmosmap.htm
- smackerelofopinion.blogspot.com.tr/2010/09/digging-into-bios-cmos-memory.html
Danach habe ich die BIOS-Einstellungen (wie Virtualisierung, IGD-Turbo aktivieren / deaktivieren, USB-Einstellungen ändern usw.) mehrmals geändert und den gesamten Inhalt der folgenden Dateien / Befehle bei jedem Start ausgegeben.
- dmidecode
- Biosdecode
- cpuid
- / dev / mem
- / dev / nvram
Ergebnis? Ich habe die Dump-Ergebnisse Seite an Seite mit Meld und woala verglichen! Nichts hat sich verändert! Was zum Teufel?!!
Hier ist also die Liste meiner Fragen (ich bin ein Elektronikingenieur, damit Sie ohne zu zögern Einzelheiten erfahren oder technische Daten nachlesen können).
- In welchem Teil des Mainboards (ich meine Chip) haben wir alle BIOS-Einstellungen gespeichert (für alte Versionen)?
- Welche Hardware benötigen wir, um die Einstellungen und die Benutzeroberfläche der UEFI-BIOS zu erhalten? Und wie unterscheidet sich die UEFI-BIOS-Hardware von den alten Versionen?
- Gibt es eine Möglichkeit, unter Linux über Treiber / Dateien auf diese (oder diese) Hardware zuzugreifen?
- Ist es möglich, diese Konfigurationen über das Betriebssystem zu ändern?
Alle Antworten werden sehr geschätzt.
Danke von nun an.
Antworten:
Es gibt keine generische Möglichkeit, wie ein Betriebssystem auf das System-BIOS zugreifen kann. Dies wäre nur möglich, wenn die Hersteller detaillierte Informationen liefern würden und Standards dafür festgelegt wären. Dies ist nicht der Fall, und ich halte es sowieso nicht für eine gute Idee.
Einige Hersteller haben Software für ihre eigenen Systeme erstellt, zumindest für Windows. Diese Software muss für bestimmte BIOS-Versionen entwickelt werden.
Das Problem ist, dass das BIOS für jeden Hersteller proprietär ist. Normalerweise werden Einstellungen im CMOS gespeichert, dies ist jedoch nicht erforderlich. Die Hersteller können die Einstellungen nach Belieben speichern. Für diese Details ist keine Dokumentation verfügbar.
Dies hat Auswirkungen auf die Sicherheit. Wenn legitime Software auf das BIOS zugreifen könnte, würde nichts verhindern, dass bösartige Software dasselbe tut. Dies würde eine völlig neue Welt von Möglichkeiten für Malware eröffnen, die die Entwickler voll ausnutzen würden. Natürlich könnten Schutzmaßnahmen entwickelt werden, aber sie könnten und würden umgangen werden
quelle
Was Sie BIOS nennen, sind (mindestens) 3 verschiedene Dinge:
Während die beiden letzteren einen genau definierten Satz von APIs offenlegen, ist dies bei den ersteren nicht der Fall. Dies bedeutet, dass es keine herstellerneutrale Möglichkeit gibt, alle vom Setup-Dienstprogramm bereitgestellten Einstellungen zu ändern.
Speicherort der Einstellungen: Die meisten Hersteller verwenden akkugepufferten statischen RAM ("CMOS-RAM" in der alten Nomenklatur). Daher ist es problematisch, wenn diese CR2032-Zellen auf dem Mainboard ausfallen.
quelle
Auf HPE Servern können Sie die Einstellungen mit dem Dienstprogramm conrep ändern. Es ist Teil des RPM für HP-Scripting-Tools. Die Verwendung wird hier beschrieben:
h20566.www2.hpe.com/hpsc/doc/public/display?sp4ts.oid=5249594&docLocale=en_US&docId=emr_na-c05182235
Es ist ganz einfach. Mit dem Parameter -s (save) sagen Sie dies, um die Konfiguration zu speichern:
Und mit -l (load) Parameter sagst du es, um die Konfiguration zu laden:
Die dat-Datei ist eigentlich XML-Code. Wenn Sie beispielsweise Hyperthreading-Einstellungen aktivieren / deaktivieren möchten, suchen Sie die entsprechende Zeile und ändern Sie den Wert. Siehe das Beispiel für G6 und neuere Generationen:
quelle
Viel bequemer, um Dinge vom Desktop aus aktivieren zu können, als das BIOS neu starten zu müssen. Ich kenne einige Einstellungen, die Sie vom Desktop aus ändern können. AMD Desktop-CPUs können ECC-Speicher ausführen, und die meisten Mainboards können auch ECC verwenden. Viele Hersteller bieten jedoch keine BIOS-Option zum Einschalten an. Trotzdem können Sie es selbst umschalten. Ich habe dies getan und der ECC-Speicher wird aktiviert. Könnte nicht gut sein, wenn Sie es bei laufendem regulären Speicher einschalten. Tun Sie das also nicht.
Da ist der Befehl. Und das Unten macht es zwischen Stiefeln hartnäckig.
Ich versuche gerade, das WLAN eines Laptops einzuschalten und frage mich, ob ich das vom Desktop aus tun kann. Wäre schön eine Liste zu haben, welche Optionen vom Desktop aus konfiguriert werden können. Der ECC wird nicht einmal im BIOS angeboten. Wie viele dieser Funktionen sind daher möglicherweise verfügbar, insbesondere bei bestimmten Anbietern, die ein Bare-Bones-BIOS liefern.
Sei real, sei nüchtern.
quelle