Kernel herunterladen, compilieren und laufen lassen

Low-Level-Programmierung und Experimenteller Kernel; Ansprechpartner: Dirty Oerti
Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Kernel herunterladen, compilieren und laufen lassen

Beitrag von Dirty Oerti » So Mai 03, 2009 9:28 pm

Hm, das heißt entweder hab ich vergessen, eine Datei ins Repo mit einzubeziehen (das geht eigntl gar nicht...dann hätte es unter 8.10 auch nicht funktioniert...)
Oder eine neue Version von gcc / ld / make hat Probleme mit meinem Code / Skript.
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Kernel herunterladen, compilieren und laufen lassen

Beitrag von nufan » So Mai 03, 2009 9:31 pm

Dirty Oerti hat geschrieben:Hm, das heißt entweder hab ich vergessen, eine Datei ins Repo mit einzubeziehen (das geht eigntl gar nicht...dann hätte es unter 8.10 auch nicht funktioniert...)
Oder eine neue Version von gcc / ld / make hat Probleme mit meinem Code / Skript.
Vielleicht weil ich unter 8.10 schon ältere Revisionen draufhatte. Könnte sein, dass die Dateien übrig geblieben sind oder so.

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Kernel herunterladen, compilieren und laufen lassen

Beitrag von Dirty Oerti » So Mai 03, 2009 9:53 pm

Hatte ich mir auch schon gedacht, aber eigntl geht das ja nicht...
Bei einem Checkout werden ja alle Dateien in der jeweils neusten Revision runtergeladen.

Wenn ich mir die Fehlermeldungen so ansehe, das betrifft eigntl alles eine Datei.
Hast du eine Datei namens basic-kernel-asm.asm im /trunk/src Ordner?
Dadrin wird nämlich start, _gdt_flush, tss_flush, _idt_load definiert.

Andere Frage: Hast du NASM isntalliert?
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Kernel herunterladen, compilieren und laufen lassen

Beitrag von nufan » So Mai 03, 2009 10:05 pm

Dirty Oerti hat geschrieben:Hast du eine Datei namens basic-kernel-asm.asm im /trunk/src Ordner?
Dadrin wird nämlich start, _gdt_flush, tss_flush, _idt_load definiert.
Bei mir liegt die Datei in ./trunk/src/basic-kernel.
Mit folgendem Inhalt:

Code: Alles auswählen

[BITS 32]

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;

[GLOBAL start]
[GLOBAL _gdt_flush]
[GLOBAL _idt_load]
[GLOBAL tss_flush]

[EXTERN _c_kernel_main]
[EXTERN _gdtp]
[EXTERN _idtp]

; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;

; Eintritt in den Kernel
; - Stack wird initialisiert
start:
    mov esp, _sys_stack
    jmp c_kernel_entry

; Multibootheader
; - gebraucht, um mit GRUB zu booten
;  * Magic Number
;  * Flags
;  * Prüfsumme
ALIGN 4
multiboot_header:
    dd 0x1BADB002
    dd 0x0
    dd (-0x1BADB002)


; Wechsel in den C-Kernel
; - Stackpointer übergeben
; - Zeiger auf GRUBs Multibootinfo übergeben
; - Bei Abbruch anhalten
c_kernel_entry:
    push esp
    push ebx
    call _c_kernel_main
    cli
    hlt


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Funktionen

; Lädt die GDT neu, Zeiger _gdtp muss gültig sein!
_gdt_flush:
    lgdt [_gdtp]
    mov ax, 0x10
    mov ds, ax
    mov es, ax
    mov fs, ax
    mov gs, ax
    mov ss, ax
    jmp 0x08:flush2
flush2:
    ret

; Lädt die IDT neu. Zeiger muss gültig sein!
_idt_load:
    lidt [_idtp]
    ret

tss_flush:
    ;5. Eintrag => 0x28 plus 3 da von Ring 3 ansprechbar
    mov ax,0x2b
    ltr ax
    ret

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Hier ist der Stack
; Größe = 8KB
; Sollte für's erste mal reichen, zur Not einfach erhöhen
SECTION .bss
    resb 8192
    ;resb 32768 ; 32KB
_sys_stack: 
Dirty Oerti hat geschrieben:Andere Frage: Hast du NASM isntalliert?
Ja.

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Kernel herunterladen, compilieren und laufen lassen

Beitrag von Dirty Oerti » So Mai 03, 2009 10:48 pm

Sieht soweit ganz gut aus.
Nach dem make, gibt es da ein basic-kernel-asm.o im src Verzeichnis?
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Kernel herunterladen, compilieren und laufen lassen

Beitrag von nufan » So Mai 03, 2009 10:59 pm

Dirty Oerti hat geschrieben:Nach dem make, gibt es da ein basic-kernel-asm.o im src Verzeichnis?
Ja, aber bei mir liegen all diese Dateien in /src/basic-kernel ?! Ist das normal?

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Kernel herunterladen, compilieren und laufen lassen

Beitrag von Dirty Oerti » So Mai 03, 2009 11:10 pm

Ja, so soll es auch sein (im Post oben war ein Fehler).
Hm, dann liegt das Problem definitiv am Linker.

Was für eine Version von ld hast du denn?
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Kernel herunterladen, compilieren und laufen lassen

Beitrag von nufan » So Mai 03, 2009 11:20 pm

Dirty Oerti hat geschrieben:Was für eine Version von ld hast du denn?

Code: Alles auswählen

GNU ld (GNU Binutils for Ubuntu) 2.19.1
Gleich der Rest auch noch:

Code: Alles auswählen

GNU ld (GNU Binutils for Ubuntu) 2.19.1

Code: Alles auswählen

GNU ld (GNU Binutils for Ubuntu) 2.19.1

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: Kernel herunterladen, compilieren und laufen lassen

Beitrag von Kerli » Mo Mai 11, 2009 11:53 pm

Bei mir kommen die exakt gleichen Fehler. Ebenfalls unter Ubuntu 9.04 und die selber Version von ld. Anscheinend haben die da wirklich irgendwas geändert :)
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Kernel herunterladen, compilieren und laufen lassen

Beitrag von Dirty Oerti » Di Mai 12, 2009 10:14 pm

Kerli hat geschrieben:Bei mir kommen die exakt gleichen Fehler. Ebenfalls unter Ubuntu 9.04 und die selber Version von ld. Anscheinend haben die da wirklich irgendwas geändert :)
Juhu^^
Das heißt für mich ausprobieren bis es wieder geht oder fragen, was sich genau daran geändert hat.
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Antworten