Autor Thema: Bochs LBA support  (Gelesen 4999 mal)

Dezimiert

  • Beiträge: 19
    • Profil anzeigen
Gespeichert
« am: 24. August 2012, 16:00 »
Nachdem mein Kernel jetzt doch sehr groß geworden ist und immer mehr Festlatten sehr großen Speicherplatz haben wollte ich mich mit LBA beschäftigen. Ich wollte meinen Kernel mithilfe von LBA laden in dem bootloader. Langer Text kurzer Sinn, ich teste die Ünterstützung auf LBA und es wird mir gesagt das es keine Ünterstützung dafür gibt. Da ich keinen Fehler in meinem Code finde wollte ich mich an euch wenden. Der nachfolgende Code zeigt meinen Versuch der Implementierungsmethode.
  CheckLBASupport:
      xor dx,dx                   
      mov ah,0x41               ;Use the function 41h
      mov bx,0x55AA           ;Store the right value in bx
      mov dl,byte[bootdrive] ;Get the bootdrive
      int 13h                        ;Call the interrupt
      jc LBANotSupported     ;If the Carry Flag is set LBA is not supported
Ich habe diesen Code gepostet da er doch sehr übersichtlich ist. Es wird in diesem Quellcode immer die Methode LBANotSupported aufgerufen. Ich benutze Bochs 2.5.1.
MfG Dezimiert.

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 24. August 2012, 17:54 »
Hallo,

probiere mal Qemu, VirtualBox, VMware oder ein reales System aus. Echte Systeme ohne LBA-Unterstützung sind verdammt selten, auch wenn ich damit Tyndur schonmal geärgert habe.

Bochs unterstützt verschiedene CHS-Translationen, die man in der Konfigurationsdatei einstellen muss, mit "translation='xxx'" (none, auto, large, echs, rechs, lba). Standard ist "translation='auto'", welches dynamisch die passendste auswählt. Wenn dein Image unter 504 MiB/528 MB hat, wird nicht übersetzt. Möglicherweise hängt da auch der LBA-Zugriff via int13h dran.

Gruß,
Svenska

Dezimiert

  • Beiträge: 19
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 24. August 2012, 19:08 »
Vielen Dank für die Antwort, schönen Abend noch
MfG Dezimiert

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 24. August 2012, 20:41 »
Funktioniert es denn wenigstens?

Dezimiert

  • Beiträge: 19
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 04. September 2012, 18:00 »
So es funktioniert bei Qemu falls man die .bin datei als erstes HDD angibt.

 

Einloggen