Seite 1 von 8

Kernel herunterladen, compilieren und laufen lassen

Verfasst: Sa Okt 11, 2008 2:42 pm
von nufan
Ich hab mal ne Frage, die den Kernel betrifft, aber nicht genau dieses Thema.
Kann man den auch in ner VM laden? Wenn ja, könnte ich mich auch als Alpha-Tester anbieten :D
Dann natürlich die Frage: wo genau runterladen? svn.proggen.org/kernel: Not Found The requested URL /kernel was not found on this server.

Re: Kernel herunterladen, compilieren und laufen lassen

Verfasst: Sa Okt 11, 2008 2:52 pm
von Dirty Oerti
*edit* Anmerkung:
Hier befindet sich eine aktuellere Anleitung (Revision 45)
*/edit*


Natürlich kann man den Kernel auch in einer VM (bzw in einem Emulator) testen. :)
Mache ich selber eigntl die ganze Zeit (Rechner neustarten dauert einfach zu lange).

Ich nutze dafür Bochs.

Zum herunterlanden:
Das ist ein SVN-Repository. Das heißt du benötigst irgendeine Software, um darauf zugreifen zu können.
Wenn du unter Ubuntu unterwegs bist, dann solltest du einfach Subversion (das Programm dazu) nehmen.

Erstelle einen neuen Ordner (irgendwo), wechsel mit der Konsole in diesen Ordner und schreibe

Code: Alles auswählen

svn co svn.proggen.org/kernel/trunk/
Das trunk, damit du nur die aktuelle Version bekommst.

Es gibt natürlich auch grafische Tools dafür.
Ich benutze eigntl immer esvn.
Ist in den Repos enthalen.
Also einfach per Paketmanager oder per

Code: Alles auswählen

sudo apt-get install esvn
installieren.

Wenn du heruntergeladen hast dann einfach in den Ordner /trunk/src/basic-kernel/ wechseln und make eingeben.

Wenn du Probleme hast, ein Image zu kompilieren, dann schreib :)
(Ich verschiebe das mal in ein neues Thema, mir ist aufgefallen das ich das evtl erklären sollte)

MfG
Daniel

Re: Kernel herunterladen, compilieren und laufen lassen

Verfasst: Sa Okt 11, 2008 2:57 pm
von nufan
Natürlich bin ich unter Ubuntu unterwegs :)
Ich werd mal die zwei Progs installieren. Du könntest das was du mir gerade erklärt hast ja auch ins Wiki einbauen.

EDIT:
Also...

Code: Alles auswählen

$ svn co svn.proggen.org/kernel/trunk/
svn: Versuchen Sie »svn help« für weitere Informationen
svn: Fehler beim Einlesen der Parameter
Die manuelle Methode geht mal nicht.
Wenn ich bei esvn auf "checkout" gehe und PW usw eingebe kommt folgende Fehlermeldung:

Code: Alles auswählen

svn checkout svn.proggen.org/kernel/trunk /home/daniel/kernel-projekt/ --username nufan --password ****** --non-interactive 
svn: »svn.proggen.org/kernel/trunk« scheint keine URL zu sein
error (1)
Liegts an mir?

Re: Kernel herunterladen, compilieren und laufen lassen

Verfasst: Sa Okt 11, 2008 3:14 pm
von Dirty Oerti
nufan hat geschrieben:Natürlich bin ich unter Ubuntu unterwegs :)
Ich werd mal die zwei Progs installieren. Du könntest das was du mir gerade erklärt hast ja auch ins Wiki einbauen.
Wenn irgendwas nicht läuft, dann meld dich.

Klar kommt das (iwann) ins Wiki.

Re: Kernel herunterladen, compilieren und laufen lassen

Verfasst: Sa Okt 11, 2008 3:16 pm
von nufan
Sry, mein edit kam zu spät...

Re: Kernel herunterladen, compilieren und laufen lassen

Verfasst: Sa Okt 11, 2008 3:27 pm
von Dirty Oerti
Sorry:

So muss es heißen:

Code: Alles auswählen

svn co svn://svn.proggen.org/kernel/trunk/

Re: Kernel herunterladen, compilieren und laufen lassen

Verfasst: Sa Okt 11, 2008 3:45 pm
von nufan

Code: Alles auswählen

$ make
gcc -m32 -fno-builtin -fno-leading-underscore -fno-strict-aliasing -fno-stack-protector -Wall -O0 -c -g -I ./inc/ *.c
paging.c: In function ‘PageFault_handler’:
paging.c:129: warning: unused variable ‘id’
paging.c:128: warning: unused variable ‘reserved’
paging.c:126: warning: unused variable ‘readwrite’
for i in basic-kernel-asm.asm isr-irq-asm.asm; do nasm -f elf $i; done
/bin/sh: nasm: not found
/bin/sh: nasm: not found
make: *** [Standard] Fehler 127
Hmmm... da in der letzten Zeile "Fehler" steht, nehme ich nicht an, dass das Kompilieren erfolgreich war...

Re: Kernel herunterladen, compilieren und laufen lassen

Verfasst: Sa Okt 11, 2008 3:46 pm
von Dirty Oerti
Dir fehlt der Assembler nasm, um den Assemblercode zu assemblieren.
Per sudo apt-get install nasm installieren, dann geht alles (die Warnungen sind normal)

Re: Kernel herunterladen, compilieren und laufen lassen

Verfasst: Sa Okt 11, 2008 3:54 pm
von nufan
Ok, kompilieren war erfolgreich. Eine kurze Anleitung zum Laden mit Bochs wäre nice :D
BTW: Gibts das auch mit GUI? EDIT: Bochs mein ich natürlich. :)
BTW2: Dein zweiter Beitrag in diesem Thema heißt noch immer "Re: Ein Heap für den Kernel".

Re: Kernel herunterladen, compilieren und laufen lassen

Verfasst: Sa Okt 11, 2008 4:14 pm
von Dirty Oerti
Ok Anleitung kommt:

Zuerst einmal musst du bochs natürlich installiert haben.
Das geht über die üblichen

Code: Alles auswählen

sudo apt-get install bochs
oder natürlich auch über den Paketmanager.

Es gibt ein paar Pakete die man installieren sollte. Evtl installiert der Paktemanager oder apt sie schon mit, wenn nicht dann halt von Hand installieren:
bochs
bochsbios
vgabios
Optional kann man noch folgende Pakete installieren:
bochs-doc (Dokumentation)
bochs-sdl (SDL GUI für Bochs)
bochs-svga (SVGA GUI)
bochs-term (ncurses UI)
bochs-wx (WxWindwos GUI)
bochs-x (X11 GUI)
bximage (Tool zum Image erstellen)
Danach kann Bochs über die Kommandozeile mit einem einfachen

Code: Alles auswählen

bochs
gestartet werden.

Paramter braucht bochs natürlich auch.
Die befinden in einer Datei (bochs.conf).

Diese Datei befindet sich in /basic-kernel/bochs/ und heißt bochs.conf.

Um Bochs nun mit dem Kernel zu starten, muss erst ein Image des Kernels erstellt werden.
Dafür befindet sich im Ordner bochs/ eine Datei namens "make_floppy_img_with_grub.sh"
Diese einfach in der Konsole (man sollte sich im Ordner bochs befinden) per

Code: Alles auswählen

sh make_floppy_img_with_grub.sh
ausführen.
Es wird nach dem Root-Passwort fragen.
Das Skript wird in die Kommandozeile von GRUB (muss auf dem System installiert sein...) wechseln.
Dort bitte folgendes eingeben:

Code: Alles auswählen

device (fd0) floppy.img

root (fd0)

setup (fd0)

quit
Wenn das alles geklappt hat, dann einfach im Ordner bochs/ folgendes ausführen:

Code: Alles auswählen

bochs -f bochs.conf
Dann sollte bochs starten und GRUB bzw dann den Kernel laden.

Ich hoffe das ist verständlich..^^ :)