Autor Thema: GRUB lädt mein Kernel ab ca. 1,240 kb nicht  (Gelesen 3336 mal)

geforcefan

  • Beiträge: 9
    • Profil anzeigen
Gespeichert
« am: 15. January 2007, 18:05 »
Hallo Zusammen,
ich bin neu hier und ich mich interessiert in letzter Teit Kernel programmierung.
Ich bin soweit, ich kan Kernel in C schreiben, und es mit GRUB laden. Jetzt bin ich an einem Punkt wo der Grub mein Kernel nicht mehr lädt. Ich benutze den VMware. Nachdem ich GRUB starte und "kernel /kernel.bin" schreibe, schreibe ich "boot", jedoch passiert nichts:



kann mir vll einer sagen wieso?

Danke!

Ercan

FreakyPenguin

  • Administrator
  • Beiträge: 301
    • Profil anzeigen
    • toni.famkaufmann.info
Gespeichert
« Antwort #1 am: 15. January 2007, 19:18 »
Schaut eher nach Endlosschleife als nach einem Fehlen in Grub aus. Haste es denn schon mit nem anderen Emulator versucht(vorzugsweise Bochs, wegen den oft brauchbaren Fehlermeldungen)?

geforcefan

  • Beiträge: 9
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 15. January 2007, 20:07 »
Hi, danke für dein antwort. Mit dem endlosschleife versteh ich nicht so ganz. Wenn ich eine Zeile aus dem main.c lösche, funktioniert der Kernel...
Und mit Bochs komme ich mal ganricht klar. Und wenn ich GRUB auf die Diskette tue, steht "cannot mount selectet device" oder sowas... Also d.H. ich kann nicht auf FAT arbeiten, und weil mein PC, an dem ich mit Linux arbeite, und dort keine Probleme gibt, nicht benutzen kann (wegen Defekter Platte)... Wie kann ich GRUB unter Windows auf eine Diskete kopieren, das es auch den FD mountert?

Achja, der Code:

#include <system.h>


void put_right(unsigned char *text,unsigned char *text2, unsigned char forecolor, unsigned char backcolor)
{
    int spaces = 0;
    puts(text);
    spaces = WIDTH_SCREEN - strlen(text) - strlen(text2) - 5;

    csr_x = csr_x + spaces;
settextcolor(forecolor,backcolor);
    puts(text2);
puts("\n");
settextcolor(STD_FGC,STD_BGC);
}

int main()
{
    init_video();

settextcolor(STD_FGC,STD_BGC);
cls();
puts("Erban Kernel 0.1\n");
puts("---------------------------------------\n");
puts("Programed by Ercan Akyuerek\n"
"Copyright by Ercan Akyuerek 2007\n"
"Last Update: 13. January 2007\n");
puts("---------------------------------------\n");

        // Test Code

put_right("Preparing System Loading","DONE", LIGHT_GREEN, BLACK);
put_right("Preparing System Loading","FAILED", LIGHT_RED, BLACK);
put_right("Preparing System Loading","FAILED", LIGHT_RED, BLACK);
return(0);
}

FreakyPenguin

  • Administrator
  • Beiträge: 301
    • Profil anzeigen
    • toni.famkaufmann.info
Gespeichert
« Antwort #3 am: 15. January 2007, 20:43 »
Das mit Grub unter Windows könnte schwer werden, habs aber noch nicht probiert. Am besten nimmste irgend ein Image. Zum Beispiel ne nightly Build von LOST.

stultus

  • Beiträge: 486
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 15. January 2007, 23:39 »
Es gibt nen GRUB4DOS sowie WINGRUB, die können zum Installieren von Grub auf floppys unter win verwendet werden wenn ich mich recht entsinne. Zumindenst wenn man damit bootet sollte es gehen *g* aber fertiges image wäre vermutl. das einfachste (Nightly Builds von LOST auf http://lost-os.ath.cx/ ;) )
Das Bochs-Problem mit cannot mount selected device sagt wohl einfach dass das Laufwerk in Verwendung ist. Wenns nen Image über vfd oder ähnliches ist, da vorher entladen ;) Oder Grub ist fehlerhaft, sprich er versucht ne Platte oder sowas einzubinden. Das  kann bei entsprechendem Simulator natürlich gerne fehlschlagen ^^
MSN: planetconquestdm@hotmail.de
ICQ: 190-084-185

... Wayne?

 

Einloggen