Wie wird die ROM-Größe angezeigt?

15545
The Linux GK

Wie sehe ich unter Windows die Kapazität des auf meinem Computer installierten ROM-Chips zum Speichern von UEFI / BIOS? Ich würde es vorziehen, ein Windows-Tool oder einen Befehl zu verwenden, ohne eine andere Anwendung zu installieren.

0
Warum willst du das wissen? a CVn vor 9 Jahren 2
Um meinen vorherigen Kommentar zu verdeutlichen: Normalerweise gibt es, wenn die Leute so etwas fragen, eine grundlegende Aufgabe, die sie zu erfüllen versuchen, und sie konzentrieren sich so sehr auf den, von dem sie glauben, dass sie den Weg zur Lösung finden, den sie nicht erkennen eine viel allgemeinere Sichtweise auf alles. Auch bekannt als [das XY-Problem] (http://meta.stackexchange.com/q/66377/157730). Wenn Sie uns sagen, was Sie wirklich erreichen wollen, indem Sie die Größe des Motherboard-Firmware-ROMs ermitteln, ist es durchaus möglich, dass wir in der Lage sind, eine bessere Antwort auf das zu liefern, was Sie versuchen. a CVn vor 9 Jahren 2
Ich möchte mich bei Ihnen für Ihr Interesse an meiner Frage bedanken. Ich versuche nicht, Probleme auf meinem Computer zu lösen, ich frage nur aus Neugierde. Wir können die Größe unserer Festplatte, des RAM, des USB-Flashlaufwerks usw. ermitteln. Aber ich habe nie versucht, die ROM-Größe meines Computers zu ermitteln, und während ich versuchte, andere Details zu meiner Computerhardware zu finden, blieb ich dabei . Ich habe seit Tagen gesucht und nichts gefunden. The Linux GK vor 9 Jahren 1
Es ist eine GÜLTIGKEIT Frage, warum Downvote ?! Yousha Aleayoub vor 6 Jahren 0

3 Antworten auf die Frage

2
a CVn

Ich glaube nicht, dass Sie das können, zumindest nicht generell.

Grundsätzlich liegt das daran, dass die Größe des BIOS-Codes Ihnen, dem Benutzer , keine nützlichen Informationen liefert . Das BIOS eines IBM PC-kompatiblen Computers hat einige Hauptaufgaben, von denen die meisten auch für andere Plattformen gelten, jedoch möglicherweise anders implementiert werden:

  • Es führt den Power-On Self Test (POST) durch
  • Es führt grundlegende Hardwareerkennung und -initialisierung durch
  • Sie richtet die grundlegende Ausführungsumgebung ein, deren Einzelheiten auf den ursprünglichen IBM 5150-PC von 1981 zurückgehen (die CPU befindet sich im Real-Modus, mehrere CPU-Register werden mit bekannten Werten initialisiert und mehrere CPU-Flags werden mit bekannten Werten festgelegt.)
  • Es bietet ein Betriebssystem mit (sehr primitiven) Hardwarezugriffs- und -erkennungseinrichtungen. dies sind nicht von modernen Betriebssystemen, entweder aufgrund technischer Einschränkungen der CPU (keine einfache Möglichkeit zum Umschalten aus gebrauchtem Langmodus, zum Beispiel) oder aufgrund von Leistungseinschränkungen (Hin- und Herschalten zu realem oder V86 - Modus der 16 auszuführen -Bit-BIOS-Code dauert sehr lange, daher ist es schneller, im geschützten oder langen Modus zu bleiben und es einfach selbst im Betriebssystem auszuführen.
  • Es lädt den Bootloader der ersten Stufe des Betriebssystems an einen bekannten festen Speicherplatz im RAM und überträgt die Ausführung an diesen
  • Es bietet eine Benutzeroberfläche zum Einrichten grundlegender Systemeinstellungen. Streng genommen ist dies optional, und BIOS der 1980er-Jahre enthielten oft keine solche Schnittstelle. Stattdessen wurde auf separat gelieferte Software oder auf Hardware- DIP-Schalter zurückgegriffen, um selbst grundlegende Systemeinstellungen wie den Typ der Grafikkarte und den installierten Arbeitsspeicher zu konfigurieren

In keinem Fall ist es für den Benutzer von Vorteil, zu wissen, wie viel Code zum Implementieren dieser Aufgaben verwendet wird. In den frühen Tagen (wir sprechen hier von DOS vor Windows 3.0 bis 3.1, also von den frühen achtziger bis frühen neunziger Jahren), wurde das BIOS häufig für grundlegende Funktionen eingesetzt, sodass die BIOS-Codegröße möglicherweise zumindest teilweise der Größe des BIOS entspricht Leistung, aber in modernen Computern wurde das BIOS im Wesentlichen auf die Rolle eines Betriebssystem- Bootstrappers und einer Low-Level-Hardware-Konfigurationsschnittstelle verwiesen . Wenn der BIOS-Code in den Computern der damaligen Zeit überhaupt austauschbar war, dann war dies das physische Entfernen und Neuinstallieren von ROM-Chips auf der Hauptplatine. Flash-aufrüstbare BIOSes sind eine viel spätere Erfindung.

Sie vergleichen dies mit der Ermittlung der Größe von Speichergeräten oder RAM. Der Unterschied ist, dass Sie in der Lage sind, die Größe der Daten mitzuteilen, die Ihnen, dem Benutzer, tatsächlich etwas Wissenswertes mitteilt: Die Menge des verfügbaren Speicherplatzes pro Gerät oder Aggregat ist ein entscheidender Faktor für die Datenmenge Sie können auf dem Computer speichern, und die Größe des Arbeitsspeichers ist einer der entscheidenden Faktoren dafür, mit wie vielen Daten Sie gleichzeitig arbeiten können und wie schnell mit diesen Daten gearbeitet werden kann.

Sie können im Prinzip die Website eines bestimmten Motherboard-Herstellers aufrufen und nach BIOS-Aktualisierungsabbildern suchen. Die Größe dieser Bilddateien entspricht mit sehr hoher Sicherheit der Größe des Flash-ROM-Chips, der den BIOS-Code auf dem jeweiligen Motherboard enthält. Ich denke, dass eine gemeinsame Größe heute in der Größenordnung von wenigen Megabytes liegt; Das ursprüngliche IBM 5150 PC-BIOS hatte eine Größe von 8 KB und wurde ab dem XT (IBM 5160) in IBM auf 32 KB erhöht. Ich las irgendwo eine Anekdote, dass die ersten betroffenen PC-BIOS-Klone des Reinraums die betroffenen Personen zumindest einmal gefragt hatten, ob etwas fehlte, da sie es mit deutlich weniger Code tun konnten.

Und natürlich ignoriert das völlig die Möglichkeit, dass außer dem PC-BIOS noch andere Firmware im System vorhanden ist . Grafikkarten, Netzwerkkarten, Festplattencontrollerkarten und alle Arten von anderen Peripheriegeräten stellen eigene BIOS bereit, die aus Implementierungssicht völlig vom PC-BIOS auf dem Motherboard getrennt sind, genau wie ein Webbrowser vollständig ist (oder sein sollte) getrennt vom Betriebssystem.

Ich habe eine Datei für das BIOS-Upgrade für mein Acer Notebook heruntergeladen. Es handelt sich um eine komprimierte Datei mit 2,19 MB (2.304.094 Byte). Wenn ich es entpacke, sind es 2,90 MB (3.046.834 Byte). Ich denke, mein ROM ist etwa 3 MB groß. The Linux GK vor 9 Jahren 0
Es gibt wahrscheinlich kein 3-MiB-Flash-ROM. AFAIK kommen sie nur in Vielfachen von 2. (Die Größe wird normalerweise auch in Bit angegeben.) Daniel B vor 9 Jahren 0
2
and31415

Lesen von SMBIOS-Informationen

Von Wikipedia:

In Computing, das System Management BIOS ( SMBIOS definiert) Spezifikationsdatenstrukturen (und Zugriffsmethoden), die verwendet werden können, Informationen, gespeichert in dem lesen BIOS eines Computers . Um 1999 wurde es Teil der Domäne der Distributed Management Task Force (DMTF). [...] Ungefähr zur gleichen Zeit forderte Microsoft von OEMs und BIOS-Anbietern die Unterstützung der Schnittstelle / des Datensatzes, um eine Microsoft- Zertifizierung zu erhalten .

Quelle: System Management BIOS

Die SMBIOS-Informationen werden in verschiedenen Datentabellen gespeichert. Der erste (Typ 0) enthält grundlegende Details wie Hersteller, Version und Veröffentlichungsdatum. Die Größe des physikalischen Geräts enthält das BIOS entspricht einem einzelnen Byte, das an befindet offest 0x9 der genannten Tabelle.

Die tatsächliche Größe kann folgendermaßen berechnet werden:

64K * (value + 1) 

Ein Wert von 0bedeutet, die Größe beträgt 64 KiB, 1bedeutet 128 KiB usw.

Soweit ich weiß, bietet Windows kein integriertes Dienstprogramm, mit dem bestimmte SMBIOS-Daten abgerufen werden können, z. B. die ROM-Größe. Sie können trotzdem selbst ein Skript schreiben. Unten finden Sie einige Arbeitsbeispiele. Alternativ können Sie ein Fremdanbieterprogramm verwenden, z . B. einen dmidecodeWindows-Port .


Batch-Skript

@echo off setlocal enabledelayedexpansion  set key=HKLM\SYSTEM\CurrentControlSet\services\mssmbios\Data  for /f "tokens=3" %%G in ( 'reg query "%key%" /v "SMBiosData" ^| findstr /i /c:"REG_"' ) do ( set "size=%%~G" set /a size=64 * 0x!size:~34,2! + 64 )  echo ROM Size: %size% KiB PAUSE exit /b 

VBScript

Set tables = GetObject("winmgmts:\\.\root\wmi").ExecQuery _ ("SELECT * FROM MSSmBios_RawSMBiosTables")  For Each obj In tables WScript.Echo "ROM Size: " & (64 * obj.SMBiosData(9) + 64) & " KiB" Next 

Power Shell

$tables = Get-WmiObject -ComputerName . -Namespace root\wmi -Query " SELECT * FROM MSSmBios_RawSMBiosTables"  foreach ($obj in $tables) { echo $("ROM Size: " + (64 * $obj.SMBiosData[9] + 64) + " KiB") } 

Bemerkungen

Windows Management Instrumentation (WMI) ist die bevorzugte Methode zum Lesen von SMBIOS-Informationen in Windows.

Quelle: Device \ PhysicalMemory-Objekt

Der [SMBIOS] -Treiber speichert diese Informationen auch in der Registrierung unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Mssmbios\Data. Obwohl SMBIOS-Informationen an diesem Ort in der Registry gespeichert werden, sollten GetSystemFirmwareTable()Benutzer weiterhin WMI oder die API zum Abrufen von SMBIOS-Daten verwenden. Es gibt keine Garantie dafür, dass diese Informationen in jedem nachfolgenden Windows-Release in diesem Registrierungsunterschlüssel gespeichert werden.

Quelle: SMBIOS-Unterstützung in Windows

Lesen Sie weiter

Jemand hat dort Hausaufgaben gemacht! Varad Mahashabde vor 7 Jahren 0
-2
The Linux GK

In Linux können Sie die Kapazität von Flash Rom auf viele Arten ermitteln. Der Befehl dmidecode enthält viele nützliche Informationen über das BIOS, einschließlich der Chipkapazität. Ich fand schließlich, dass es 1 MB ist. Ich empfehle jedem, sich entweder das Mainboard anzusehen oder eine Live-CD mit Linux zu probieren.

Sie haben nach einer Windows-spezifischen Lösung gefragt und @ and31415 in [seiner Antwort] (http://superuser.com/a/806585/194694) angegeben. Ich verstehe nicht, warum Sie Ihre eigene Antwort akzeptiert haben, obwohl sie die ursprüngliche Frage nicht beantwortet, aber eine andere? gronostaj vor 9 Jahren 0
Sorry, aber ich denke, für einen weniger erfahrenen Benutzer wäre dies eine einfachere Lösung. Ich akzeptierte meine Antwort nicht und akzeptierte die andere (ich habe nicht bemerkt, dass ich die andere nicht überprüft hatte). The Linux GK vor 9 Jahren 0
Es sieht so aus, als hätten Sie nach einer Windows-Lösung gesucht und später entdeckt, dass eine Linux-Lösung tatsächlich besser ist. Da Sie bereits mehrere Antworten auf Ihre ursprüngliche Frage erhalten haben, wäre es nicht angebracht, diese zu erweitern, und Ihre Antwort entspricht nicht den Kriterien Ihrer Frage. Auch wenn es eine gute Antwort ist, ist sie hier nicht angebracht. Vorschlag: Stellen Sie eine neue Frage, in der Sie nach einer Linux-Lösung gefragt werden, und beantworten Sie diese selbst (und löschen Sie sie hier). fixer1234 vor 8 Jahren 0