101
Offtopic / Re: Welchen Desktop benutzt ihr?
« am: 12. July 2012, 14:14 »
Hm… also ich habe schon abgestimmt, und zwar für KDE. Aber ich benutze KDE 4.8. Ist meine stimme jetzt zu KDE 3 gewandert?
13. May 2024, 03:03
Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.
if(cpu->intr != 0x20)
kprintf("Interrupt: %d\n", cpu->intr);
Weil der Timer dir sonst, doch ziemlich penetrant, den Bildschirm zu spamt. EOIs müssen natürlich trotzdem gesendet werden.QEMU emulator version 1.0 (qemu-kvm-1.0), Copyright (c) 2003-2008 Fabrice Bellard
[BITS 32]
…
; enable PAE
mov eax, cr4
bts eax, 5
mov cr4, eax
; load pml4
mov eax, [pml4_base]
mov cr3, eax
; set LM bit
mov ecx, 0xc0000080
rdmsr
bts eax, 8
wrmsr
; finally enable Long Mode by enabling paging
mov eax, cr0
bts eax, 31
mov cr0, eax
jmp CODE64_SEL:_start64
[…]ich dachte, dass grub die GDT so initialisiert, dass man mit der Adresse 0 bei 0x10000 landet.Dann linkst du das vermutlich auch falsch. Hast du das Tutorial schon gelesen?
Ich schreibe übrigens an die Adresse 0xa8000, weil der Kernel nach dem Laden ja bei 0x10000 liegt. Wenn ich das dann aber in Virtualbox ausprobiere, dann startet Grub das System, und nichts passiert. Hat jemand eine Idee?Wo dein Kernel liegt ist irrelevant. Wenn ich das richtig verstanden habe, hast du die GDT noch nicht angepasst und Paging auch noch nicht eingeschaltet. Damit ist die Basis der Segmente bei 0 und alle Adressen werden 1:1 als physische Adressen übernommen. Du landest also mit 0xa8000 nicht bei 0xb8000 wo du hin willst sondern bei 0xa8000.
Jetzt wird qemu nach init_idt schwarz
Du hast 16-Bit Interrupt Desptoren angelegt.Was hab ich da falsch gemacht? Wie mach ich's richtig?
diff --git a/src/kernel/interrupt/idt.c b/src/kernel/interrupt/idt.c
--- a/src/kernel/interrupt/idt.c
+++ b/src/kernel/interrupt/idt.c
@@ -21,6 +21,7 @@ static void set_interrupt(int i, uint32_
//obere 32-Bit
idt[i] |=(
( type << 8 ) |
+ ( 1 << 11) |
( (dpl&3) << 13 ) |
( (present&1) << 15)|
( offset & 0xffff0000 )
Und was steht da bitteschön drin?Da steht hoffentlich Hinweise auf den Grund für das Fehlverhalten.
mir wurde vorher gesagt, dass rmmod sich in /sbin befindetJa. Da sich /sbin aber für gewöhnlich in der PATH-Variable von root befindet, und ohne root rechte rmmod nicht tut, ist die Pfadangabe überflüssig.
Sorry. Dann habe ich wohl daneben geraten. Bei mir lag das an kvm. Dann guck mal in den logs von VirtualBox was da so steht.Code: [Auswählen]# /sbin/rmmod kvm
ERROR: Module kvm does not exist in /proc/modules
# /sbin/rmmod kvm_intel
ERROR: Module kvm_intel does not exist in /proc/modules
# rmmod kvm_intel
# rmmod kvm