PrettyOS startet nur emuliert



  • Mr X schrieb:

    USB-Sticks funktionieren nur mit viel Glück. Als ich das versucht habe, konnte ich nur die wenigsten PCs überreden, vom USB-Stick zu booten, aber auf einem ging es dann doch. Du könntest Legacy-USB-Support im BIOS aktivieren, vielleicht hilfts.

    Wenn Du echte Disketten und ein entsprechendes Laufwerk hast, versuchs damit.

    Ich hab keine Disketten mehr.

    Aber warum ist das abhängig vom USB-Stick? Dem Bootloader müsste es eigentlich egal sein, von welchem Medium er gestartet wird, denn ich schreibe ja mit dd eine bitgenaue Kopie des Image auf den USB-Stick, d.h. der eigentliche Bootloader bleibt unverändert und müsste eigentlich starten.

    Wie lässt sich das Problem lösen?

    Und warum werden nicht-registrierte User aus dem PrettyOS-Forum ausgeschlossen?



  • Bis wohin kommt der Bootloader denn? (Was ist die letzte Ausgabe, falls Du die sehen kannst)



  • Mir ist übrigens gerade eine Idee gekommen, was vielleicht das Problem ist. Dooferweise muss ich erstmal einen Weg finden, das Problem möglichst ohne USB-Stick zu reproduzieren.



  • Loading second stage bootloader...



  • Das unterstützt meine Theorie:
    Im Stage1-Bootloader nutzen wir noch brav die Nummer des Bootdevices, die uns das BIOS übergeben hat. Dem Stage2-Bootloader wird diese zwar übergeben, aber er nutzt sie nicht, stattdessen wird stets 0 genommen. Das trifft auf den meisten Systemen zu (dort, wo das erste Floppy-Laufwerk genommen wird), nicht aber z.B. auf (den meisten) Systemen mit USB-Stick.

    Geh mal nach /stage2_bootloader/boot2.asm und schreib in die Funktion entry_point: folgendes:

    mov BYTE [DriveNum], dl
    

    Wenn es dann funktioniert...



  • ich hab vorher das vorkompilierte image genommen.

    wenn ich prettyos auf linux kompilieren will mit
    sh ./build.sh

    kommt irgendwann der fehler

    nasm kernel/data.asm -Ox -f elf -Ikernel/ -o object_files/kernel/data.o
    kernel/data.asm:15: error: `incbin': unable to open file `user/vm86/VIDSWTCH.COM'
    kernel/data.asm:18: error: `incbin': unable to open file `user/vm86/APM.COM'
    make: *** [object_files/kernel/data.o] Fehler 1

    😕



  • Welche PrettyOS-Revision?



  • Mr X schrieb:

    Welche PrettyOS-Revision?

    die allerneuste: http://prettyos.svn.sourceforge.net/viewvc/prettyos.tar.gz?view=tar



  • Die allerneuste uralte. Der Link verweist auf das alte Repository. (Siehe hier: http://www.c-plusplus.net/forum/310029)

    Und in der wirklich neusten Revision ist das Build-Problem unter Linux behoben.



  • Mr X schrieb:

    Die allerneuste uralte. Der Link verweist auf das alte Repository. (Siehe hier: http://www.c-plusplus.net/forum/310029)

    Und in der wirklich neusten Revision ist das Build-Problem unter Linux behoben.

    zum glück aktualisiert ihr immer eure FAQ, besonders die oberste. 😕

    gibts ne möglichkeit, den ganzen "trunk/Source" ordner runterzuladen? ohen svn? ich hab keine ahnung wie das geht und grad keine lust, irgendwas zu googlen.



  • hm. Anscheinend nicht. Zumindest finde ich keine Tarball-Option auf Sourceforge (https://sourceforge.net/p/prettyos/code/1407/tree/)

    zum glück aktualisiert ihr immer eure FAQ, besonders die oberste. 😕

    Danke für den Hinweis - da ist tatsächlich ein Link nicht aktualisiert worden. Wird sobald möglich geändert (bzw. entfernt, wenn niemand den "Download Tarball"-Button findet.)



  • Ich fürchte, es wird dir nichts anderes übrig bleiben, als dir SVN zu besorgen und es damit herunterzuladen.



  • Mr X schrieb:

    Ich fürchte, es wird dir nichts anderes übrig bleiben, als dir SVN zu besorgen und es damit herunterzuladen.

    ok, wie ist der aufruf? bestimmt irgend so ein "clone repository" wie bei git oder so

    p.s.: also z.b. bei git ist es so, dass man über ein webinterface eine zip runterladen kann, aber anscheinend gibts das hier nicht.



  • habs selbst herausgefunden:
    svn checkout http://svn.code.sf.net/p/prettyos/code ./

    jetzt werd ich mal die zeile ausbessern und kompilieren.



  • serlib_cpp.cpp:10:42: Fehler: »operator new« nimmt Typ »size_t« (»unsigned int«) als ersten Parameter [-fpermissive]
    userlib_cpp.cpp:14:44: Fehler: »operator new« nimmt Typ »size_t« (»unsigned int«) als ersten Parameter [-fpermissive]
    make[1]: *** [userlib_cpp.o] Fehler 1
    make: *** [userlibs] Fehler 2

    findet ihr das etwa lustig?



  • Nunja. GCC/Clang ändern mit jedem Release ihre Definition des new-Operators. Pass es manuell an das an, was dein GCC will. Wenn Du uns deine GCC oder Clang-Version nennst, können wir eine zusätzliche #ifdef-Weiche für diese Version anlegen.



  • Mr X schrieb:

    Nunja. GCC/Clang ändern mit jedem Release ihre Definition des new-Operators. Pass es manuell an das an, was dein GCC will. Wenn Du uns deine GCC oder Clang-Version nennst, können wir eine zusätzliche #ifdef-Weiche für diese Version anlegen.

    GCC-Version:
    gcc-Version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1)

    Wobei ich glaube, dass es mittlerweile schonwieder eine neue GCC-Version gibt.

    Warum braucht ihr überhaupt C++? Linux hats vorgemacht, C würde im Grunde reichen!



  • GCC-Version:
    gcc-Version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1)

    Das ist seltsam, weil wir (auf Windows) ebenfalls GCC 4.7.2 einsetzen. Dann ändere halt lokal den Prototypen, sodass es kompiliert. Oder nimm Clang, dass ist eh der bessere Compiler 😃

    Warum braucht ihr überhaupt C++? Linux hats vorgemacht, C würde im Grunde reichen!

    Userprogramme. Und im Nachhinein würde ich sagen, dass C++ im Kernel auch ganz praktisch gewesen wäre. Konstruktoren und Desktruktoren sind eben doch komfortabler als irgendwelche delete_console(console_t* c);-Funktionen.



  • Dieser Thread wurde von Moderator/in Marc++us aus dem Forum Rund um die Programmierung in das Forum Projekt: OS-Development verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • P.S.: Nein, diesen Thread bitte nicht ins PrettyOS-Forum verschieben, weil da kann ich ja wie gesagt nichts posten. Besser wäre es, ihr würdet endlich das Forum für alle freischalten.

    Dieser Thread wurde von Moderator/in Marc++us aus dem Forum Rund um die Programmierung in das Forum Projekt: OS-Development verschoben.

    Toll...


Anmelden zum Antworten