AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bios einstellen über Delphi

Ein Thema von SaFu · begonnen am 18. Jun 2008 · letzter Beitrag vom 19. Jul 2009
Antwort Antwort
Seite 2 von 3     12 3      
Muetze1
(Gast)

n/a Beiträge
 
#11

Re: Bios einstellen über Delphi

  Alt 19. Jun 2008, 09:45
Zitat von Luckie:
Wie auch immer, er müsste die Daten genauso wie es das BIOS erwartet in den EPROM schreiben. Das erste Problem dürfte sein, wie die Daten aussehen müssen und an welche Adresse sie geschrieben werden müssen. Das nächste dürfte sein dies über Windows zu realisieren. Da Windows Hardware Zugriffe nicht aus dem Usrmode erlaubt, müsste ein Treiber geschrieben werden, aber selbst dann ist es zweifelhaft, ob Windows überhaupt irgendwas zur Verfügung stellt, um auf den EPROM des BIOS zu zugreifen.
Ich vermute einfach mal, dass du den Teil in der Ausbildung noch nicht hattest, weil so ist das Mumpitz.

Das BIOS hatte früher einen CMOS Speicher auf der Platine, welche seine Einstellungen aufgenommen hatte (Portadresse 0x40 Adressselektion, Portadresse 0x41 Datenport). Dieser CMOS Speicher war durch eine onboard Pufferbatterie versorgt. Später hatte Dallas ihre RealtimeClocks recht erfolgreich vermarktet, da diese pinkompatibel waren zu den CMOS Schaltkreisen und die Batterie gleich mitbrachten.

Nun Reichen die 256 Speicherstellen nicht mehr aus und es würde das sogenannte NVRAM (non volatile RAM) eingeführt, welcher heutzutage direkt im Chipsatz liegt (genauso wie der BIOS Flash-Speicher, meist doppelt ausgelegt (DualBIOS) um die Auswirkungen von Flashfehlern zu verringern). Dieser NVRAM wird über eine Chipsatz Unterfunktion angesprochen und von daher findet man Adressen und Ports zum Zugang zum NVRAM in den Resourcen des Chipsatzes.

EPROM sind schon recht schnell in den 90'ern durch EEPROMs ersetzt worden und dann nochmals durch Flash Speicher, wo diese bezahlbar wurden (bzw. zur Massenware).

Zitat von hathor:
NVRAM haben ALLE!
NVRAM ist eine Namenszusammenfassung für alle nichtflüchtigen Speicher und als Schlagwort für die Konfigurationsablage genutzt. Die damalige Kombination von CMOS und Pufferbatterie hätte man auch als NVRAM bezeichnen können, aber heutzutage steht dies eher auch als gleichbedeutend mit dem neuen Interface über den der Speicherbereich/Speicher angesprochen wird. Somit kann ich dir dort widersprechen: es haben nicht alle einen solchen Speicher - ab einem gewissen Baujahr und Entwicklungsstand bestimmt, aber alle älteren Mainboards sind davon ausgeschlossen.

Auch hat man für den Nachfolger des BIOS, dem EFI (Enhanced Firmware Interface), einen neuen Begriff gefunden und nennt es afaik nicht mehr NVRAM.

/EDIT: Rechtschreibfehler korrigiert.
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#12

Re: Bios einstellen über Delphi

  Alt 19. Jun 2008, 11:12
@Muetze1:

Kleine Korrektur:
Falsch: non violateable
Richtig: non volatile

Mehr Infos:
http://en.wikipedia.org/wiki/Non-volatile_memory
  Mit Zitat antworten Zitat
DevidEspenschied

Registriert seit: 7. Sep 2006
Ort: Berlin
441 Beiträge
 
Delphi 12 Athens
 
#13

Re: Bios einstellen über Delphi

  Alt 19. Jun 2008, 11:54
Im Prinzip kann jeder Mainboardhersteller die Belegung des NVRAM beliebig ändern, und man müsste eigentlich herausfinden, in welchen Bits/Bytes die Einstellungen gespeichert werden. Dafür bleibt nur die Try-Methode, also ein NVRAM-Speicherabbild erzeugen, die Optionen anpassen, und erneut ein Speicherabbild erzeugen bzw. die Ergebnisse vergleichen. Hier hilft Dir evtl. das Programm CMOSInfo (hier) bzw. dessen PDF-Anleitung. Grundsätzlich ist dieses Verfahren aber relativ mühselig und fehlerträchtig.

Falls Du ein Award-BIOS hast, könnte das Modbin6-Programm vielleicht helfen. Hierfür benötigtst Du neben dem eigentlichen Programm (welches übrigens nicht offiziell erhältlich ist, Google hilft aber) eine BIOS-BIN-Datei, die Du Dir entweder vom Mainboardhersteller herunterlädst oder mit der Backup-Option eines BIOS-Flash-Programms erstellst. Anschließend stellt Modbin6 den Inhalt des BIOS-Images dar, wozu mitunter auch die versteckten BIOS-Optionen gehören. Dort suchst Du die Option "Restore Restart at AC power loss" o.ä, und kannst Dir in den Eigenschaften anzeigen lassen, welche NVRAM-Register dazu verwendet werden.

Soweit ich aber weiß, erfolgen die NVRAM-Zugriffe über Ports, und die erfordern wiederum einen Gerätetreiber und Admin-Rechte. Der Aufwand ist also immens und nur für eine spezielle Gruppe von Zielrechnern erfolgreich. Solltest Du ein AMI- oder Phoenix-BIOS oder sogar EFI haben, sehen die Chancen proportional schlechter aus.
Devid
Devid Espenschied
Pre-sales Consultant
Embarcadero Germany GmbH
germany.info@embarcadero.com

Kein Support per PN
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#14

Re: Bios einstellen über Delphi

  Alt 19. Jun 2008, 12:31
SleepAndWakeUp

http://www.mirrorservice.org/sites/f...ll/aspower.zip

int asSleepAndWakeUpS(int n);
int asSleepAndWakeUp(int nDay,int nH,int nM,int nS);

First function have just one parameter, number of seconds. This will be time interval.
Another function will use more. You will set after what time interval you want PC to
wake UP. Remember, after you call this function, we create wait timer function and we
put PC to sleep. PC must have new motherboard with ACPI support.

----------------

int asOnlySetWakeUpTime(int nYear,
int nMonth,
int nDay,
int nHour,
int nMinute,
int nSecond);

This function will ONLY SET TIME when you want your PC to wake up. So, after
calling this function, you can continue working with your application, but put your PC to
sleep before this time. Please we don’t check these parameters, so YOU MUST provide
parameters checking. That moment of time MUST be after current time.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#15

Re: Bios einstellen über Delphi

  Alt 19. Jun 2008, 16:58
NVRAM kenne ich aus dem Embedded-Linux-Bereich wo Bootloader, Kernel und Konfiguration in verschiedenen Bereichen des selben Flash-RAM liegen. Da gibts dann so Linux-Tools wie nvset und nvread. Aber das hat im Grunde nichts mit dem PC-BIOS zu tun.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#16

Re: Bios einstellen über Delphi

  Alt 19. Jun 2008, 17:11
Ich hab da mal ein Code-Schnipsel aus dem nvram-wakeup unter Linux.
Vielleicht kannst Du damit was anfangen:

Code:

################################################
## Mainboard autodetection information:
##
## - Mainboard vendor: "MICRO-STAR INTERNATIONAL CO., LTD"
## - Mainboard type: "MS-6119 (i440BX)"
## - Mainboard revision: "1.X"
## - BIOS vendor: "Award Software International, Inc."
## - BIOS version: "4.51 PG"
## - BIOS release: "08/21/00"

addr_stat = 0x46
addr_day = 0x47
addr_hour = 0x48
addr_min = 0x49
addr_sec = 0x4A
addr_chk_h = 0x6F
addr_chk_l = 0x70

need_reboot = ON_ANY_CHANGE
Gefunden bei http://www.vdr-portal.de/board/search.php mit Suchbegriff "nvram".
Oder direkt dieser Beitrag:
http://www.vdr-portal.de/board/threa...&hilight=nvram
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#17

Re: Bios einstellen über Delphi

  Alt 19. Jun 2008, 17:20
Wie gesagt ich glaube das ganze hatte sich schon erledigt, weil wenn ich sowas mache dann muss es für "alle" boards gehen.

Und Kompliziert sieht es auch aus.

zudem kommt noch dazu wenn ich jemanden das Programm geben sollte und irdgenwas schießt sich ab und die bekommen raus das mein Programm im Bios rumfummelt.

Wer haftet dann, ich? nein danke

Wer von euch, hat lust von jemandem ein Programm zunehmen das im NVRAM rummacht
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
DevidEspenschied

Registriert seit: 7. Sep 2006
Ort: Berlin
441 Beiträge
 
Delphi 12 Athens
 
#18

Re: Bios einstellen über Delphi

  Alt 19. Jun 2008, 17:23
Bietet der Scheduler oder die Aufgabenplanung keine Möglichkeit, den PC zeitgesteuert einzuschalten ?
Devid
Devid Espenschied
Pre-sales Consultant
Embarcadero Germany GmbH
germany.info@embarcadero.com

Kein Support per PN
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#19

Re: Bios einstellen über Delphi

  Alt 19. Jun 2008, 17:25
Soweit wie mir bekannt ist, geht das nur im BIOS, aber ich lasse mich gerne eines bessern belehren.
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
DevidEspenschied

Registriert seit: 7. Sep 2006
Ort: Berlin
441 Beiträge
 
Delphi 12 Athens
 
#20

Re: Bios einstellen über Delphi

  Alt 19. Jun 2008, 17:46
Ich bin mir nicht sicher, kann mich aber wage erinnern, so etwas im Hotline-Bereich einer der letzten c't-Ausgaben gelesen zu haben. Einfach mal auf deren Seite suchen.
Devid
Devid Espenschied
Pre-sales Consultant
Embarcadero Germany GmbH
germany.info@embarcadero.com

Kein Support per PN
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz