Beiträge anzeigen

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.


Nachrichten - Thunder

Seiten: [1] 2
1
Offtopic / Re: QEMU bauen - Fehler mit config-all-devices.mak
« am: 30. August 2013, 22:54 »
Wow danke sehr! :)
Ja, war alles korrekt installiert, aber logischerweise ist immer das Windows sort verwendet worden. Habe daher die MinGW-Pfade in Path an erste Stelle gesetzt. Funktioniert jetzt :D hoffentlich gibt es jetzt keine Probleme mehr.
2
Offtopic / Re: QEMU bauen - Fehler mit config-all-devices.mak
« am: 30. August 2013, 22:15 »
Ne leider nicht :( Hatte auch zuerst eine eingeschränkte targetlist, aber ich dachte vielleicht wird die Datei nur generiert, wenn QEMU für alle Geräte gebaut wird oder so. Denkste.
Hier ist alles, was ich mache und sehe:

C:\qemu-1.6.0>make
  GEN   config-all-devices.mak
-uDas System kann die angegebene Datei nicht finden.
make: *** Deleting file `config-all-devices.mak'
        CHK version_gen.h
make: *** No rule to make target `config-all-devices.mak', needed by `subdir-i38
6-softmmu'.  Stop.

C:\qemu-1.6.0>sh configure --prefix=C:/QEMU --target-list=i386-softmmu,x86_64-so
ftmmu
Install prefix    C:/QEMU
BIOS directory    C:/QEMU
binary directory  C:/QEMU
library directory C:/QEMU/lib
libexec directory C:/QEMU/libexec
include directory C:/QEMU/include
config directory  C:/QEMU
local state directory   queried at runtime
Source path       /c/qemu-1.6.0
C compiler        cc
Host C compiler   cc
Objective-C compiler cc
CFLAGS            -O2 -D_FORTIFY_SOURCE=2 -g
QEMU_CFLAGS       -march=i486 -m32 -D__USE_MINGW_ANSI_STDIO=1 -DWIN32_LEAN_AND_M
EAN -DWINVER=0x501 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wst
rict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-protot
ypes -fno-strict-aliasing  -Wendif-labels -Wmissing-include-dirs -Wempty-body -W
nested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -
Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-al
l -IC:/MinGW/include/pixman-1   -I$(SRC_PATH)/dtc/libfdt
LDFLAGS           -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase -Wl,--warn-commo
n -m32 -g
make              make
install           install
python            python
smbd              /usr/sbin/smbd
host CPU          i386
host big endian   no
target list       i386-softmmu x86_64-softmmu
tcg debug enabled no
gprof enabled     no
sparse enabled    no
strip binaries    yes
profiler          no
static build      no
-Werror enabled   no
pixman            system
SDL support       yes
GTK support       no
curses support    no
curl support      no
mingw32 support   yes
Audio drivers     winwave
Block whitelist (rw)
Block whitelist (ro)
Mixer emulation   no
VirtFS support    no
VNC support       yes
VNC TLS support   no
VNC SASL support  no
VNC JPEG support  no
VNC PNG support   no
VNC WS support    no
xen support       no
brlapi support    no
bluez  support    no
Documentation     yes
GUEST_BASE        yes
PIE               no
vde support       no
Linux AIO support no
ATTR/XATTR support no
Install blobs     yes
KVM support       no
RDMA support      no
TCG interpreter   no
fdt support       yes
preadv support    no
fdatasync         no
madvise           no
posix_madvise     no
sigev_thread_id   no
uuid support      no
libcap-ng support no
vhost-net support no
vhost-scsi support no
Trace backend     nop
Trace output file trace-<pid>
spice support     no (/)
rbd support       no
xfsctl support    no
nss used          no
libusb            no
usb net redir     no
GLX support       no
libiscsi support  no
build guest agent no
seccomp support   no
coroutine backend win32
GlusterFS support no
virtio-blk-data-plane no
gcov              gcov
gcov enabled      no
TPM support       no
libssh2 support   no
TPM passthrough   no
QOM debugging     yes

C:\qemu-1.6.0>make
  GEN   config-all-devices.mak
-uDas System kann die angegebene Datei nicht finden.
make: *** Deleting file `config-all-devices.mak'
  GEN   config-host.h
        CHK version_gen.h
  GEN   trace/generated-tracers.h
  GEN   trace/generated-tracers.c
make: *** No rule to make target `config-all-devices.mak', needed by `subdir-i38
6-softmmu'.  Stop.
3
Offtopic / QEMU bauen - Fehler mit config-all-devices.mak
« am: 30. August 2013, 21:36 »
Hallo Leute,

bräuchte Mal eure Hilfe. Ich hatte vor QEMU wieder für Windows zu bauen, 1.6.0.
Und ich habe auch schon früher QEMU kompiliert, sowohl auf Windows als auch auf Linux, aber jetzt stehe ich vor einem Problem, das ich nicht lösen kann. Ich kenne mich einfach zu wenig aus.
Folgendes: Mein Aufruf an configure sieht so aus: ./configure --prefix=C:/QEMU
Dann führe ich make aus. Das Problem ist, dass es mit dieser Meldung abbricht:
make: *** No rule to make target 'config-all-devices.mak', needed by 'subdir-alpha-softmmu'. Stop.
Und am Anfang steht irgendwo:
GEN config-all-devices.mak
-uDas System kann die angegebene Datei nicht finden.
make: *** Deleting file 'config-all-devices.mak'
was mich total verwirrt, weil er genau diese Datei offenbar später noch braucht. Ich hab auch schon das Makefile durchforstet, aber ehrlich gesagt blicke ich nicht ganz durch - es ist doch etwas umfangreich.
Und gegoogelt habe ich auch, aber absolut *nichts* gefunden :(

Ich hoffe, es könnte mir hier jemand helfen!

4
Lowlevel-Coding / Re: Potenzieren mit der FPU
« am: 29. June 2013, 22:32 »
Ah super, das hat geholfen! :) Jetzt hab ich richtige Ergebnisse, danke!
5
Lowlevel-Coding / Re: Potenzieren mit der FPU
« am: 28. June 2013, 14:41 »
Ja, tyndur verwendet offenbar einfach exp(power * log(base)) (also wahrscheinlich den natürlichen Logarithmus, aber das sollte ja mit jedem anderen auch gehen)...
Danke erst Mal Jidder, für den Tipp mit f2xm1. Ich bekomme es nur nicht hin, denn es funktioniert noch immer nicht. Ich habe jetzt den Exponenten in Ganzzahlteil und Nachkommateil zerlegt:
public _bbFloatPow
_bbFloatPow:
push ebp
mov ebp, esp
sub esp, 8

fld qword [ebp+16] ; power
fld qword [ebp+8] ; base

fyl2x ; power * log2(base)
fld st0 ; copy

fistp qword [ebp-8]
fild qword [ebp-8]
; st0 = int( power * log2(base) )
; st1 = power * log2(base)
fxch
fsub st0, st1
; st0 = power * log2(base) - int( power * log2(base) )
; st1 = int( power * log2(base) )
f2xm1
fld1
faddp
; st0 = 2 ^ ( power * log2(base) - int( power * log2(base) ) )
; st1 = int( power * log2(base) )
fxch
f2xm1
fld1
faddp
; st0 = 2 ^ ( power * log2(base) - int( power * log2(base) ) )
; st1 = 2 ^ ( int( power * log2(base) ) )

fmulp
; st0 = 2 ^ ( power * log2(base) )

leave
ret

Was mache ich aber, wenn der Ganzzahlteil größer ist als 1 (oder kleiner -1) ?
Ich bekomme nämlich dieselben Ergebnisse und glaube, dass es daran liegt.
6
Lowlevel-Coding / Potenzieren mit der FPU
« am: 27. June 2013, 12:13 »
Hallo Leute,

ich bräuchte sehr die Hilfe von jemandem, der sich mit der FPU auskennt. Denn ich bin erst kurz dabei, was den Koprozessor betrifft...
Gestern habe ich versucht, eine Art pow für double Werte zu implementieren. Zuerst dachte ich, die FPU würde sowieso einen ähnlichen Befehl bereitstellen, aber als ich den nicht gefunden hab, war ich mir sicher, dass ich über die Befehle fyl2x und f2xm1 zum Ziel kommen würde. Nämlich über die einfache Umformung, dass a^b = 2 ^ (b * log2(a)) ist.
Ich habe folgende Funktion:
public _bbFloatPow
_bbFloatPow:
fld qword [esp+12] ; power
fld qword [esp+4] ; base

fyl2x ; power * log2(base)

f2xm1 ; 2^(power*log2(base))-1

fld1
faddp ; 2^(power*log2(base))
ret

und für kleine Werte kommen richtige ergebnisse heraus: pow(1, 2) = 1; pow(sqrt(2), 2) = 2; pow(4, 0.5) = 2
aber pow(2,2) = 3 und pow(8, 2) = 7 ... die Ungenauigkeiten beginnen über 2 oder so...

Weiß jemand woran das liegt und kann mir helfen, diese Fehler zu beheben? :)
7
Softwareentwicklung / Re:Virtual Box
« am: 07. June 2011, 21:30 »
Wie ich das sehe ist deine Kommandozeile falsch:

nasm -f bin -o fasmboot.asm fasmboot.bin

setzt fasmboot.bin als Inputdatei (und fasmboot.asm als output). Wenn die bereits existiert und sehr groß ist, würde das den Fehler erklären.

nasm -f bin -o fasmboot.bin fasmboot.asm

wäre richtig.
8
tyndur / Re:Name für die GUI
« am: 07. January 2011, 09:41 »
@PNoob: file-upload.net ist immerhin noch einer von den angenehmeren Anbietern. Außerdem würde ich an deiner Stelle nichts empfehlen, was gegen die AGB von einem Anbieter (in dem Fall bplaced) verstößt:
Zitat
5. Unerwünschte Inhalte
[...] Den Speicherplatz als Datenablage im Sinne der alleinigen Speicherung und/oder Verbreitung von Daten ohne konkretem Zusammenhang zu einer bei bplaced vorhandenen Webseite zu verwenden, ist nicht gestattet [...]

@Thread: Ich bin für litur als Name für die GUI. Hoffe, es wird was! :)

9
Softwareentwicklung / Re:Portierem von Programmen
« am: 26. September 2010, 21:44 »
Ich habe vor einiger Zeit diesen Artikel gelesen. Darin steht fasm sei ganz einfach zu portieren.
Aus Erfahrung weiß ich das aber nicht

mfg Thunder

Edit: tut mir Leid - habe ich nicht beachtet.
10
Lowlevel-Coding / Re:GPF bei neuladen von SS
« am: 22. September 2010, 11:35 »
Danke taljeth, ich schaue mir das mit iret nochmal an - ich verwende nämlich (im Moment) nur Singletasking und dachte, dass ich es dafür nicht brauche.

mfg Thunder
11
Lowlevel-Coding / GPF bei neuladen von SS
« am: 22. September 2010, 09:44 »
Hallo,

mich quält schon längere Zeit ein Problem, das mit dem Wechsel nach Ring 3 zu tun hat.
Ich initialisiere den TSS-Deskriptor in der GDT und den Speicherbereich in dem die Daten des TSS liegen. Das funktioniert.
void init_tss(void){
    DWORD pt=(DWORD) &tss; // tss ist die Struktur die ich global definiert habe
    void *ept=tss_entry; // hat die Adresse des TSS-Eintrags in der GDT
    *((BYTE*) ept+5) = (pt << 16) & 0xFF;
    *((BYTE*) ept+6) = (pt << 24) & 0xFF;
    *((WORD*) ept+2) = pt & 0xFFFF;
    tss.esp0=(DWORD) task_stack+STACKSIZE;
    tss.ss0=0x10;
    tss.ds=0x23;
    tss.ss=tss.ds; tss.es=tss.ds; tss.fs=tss.ds; tss.gs=tss.ds;
    tss.iopb=0;
    tss.eax=0; tss.ebx=0; tss.ecx=0; tss.edx=0; tss.esi=0; tss.edi=0;
    tss.ebp=0x300000;
    tss.esp=tss.ebp;
   
    set_tss();
}

inline void set_tss(void){
    asm volatile(    "mov $0x28, %ax\n"
                    "ltr %ax\n");
}

//aus der GDT:
    dw 0x68
    dw 0x0
    db 0x0,0xE9
    db 0x0,0x0
Der TSS-Deskriptor in der GDT ist an Position 6, wenn man bei 1 zu zählen beginnt und den Nulldeskriptor mitzählt.

Dann beginne ich mit dem Ringwechsel. Der Code dafür sieht so aus:
    asm volatile(    "mov $0x23, %ax\n"
                    "mov %ax,%ds\n"
                    "mov %ax,%es\n"
                    "mov %ax,%fs\n"
                    "mov %ax,%gs\n"
                    "mov %ax,%ss\n"
                    "ljmp $0x1B, $.152\n"
                    ".152:\n"
                    );

Doch bei der Zeile "mov %ax,%ss" bekomme ich einen General Protection Fault. Redscreen sagt:
Zitat
EXCEPTION 13     ERRORCODE 32
EAX 2097187     EBX 1073180
ECX 23     EDX 1208320
EIP 1050545     CS 8
ESP 1073140    SS 1052995
DS 35     ES 35
FS 35     GS 35

Die Einträge in meine GDT sind in folgender Reihenfolge:
 - Nulldeskriptor
 - Kernel-Code
 - Kernel-Daten
 - User-Code
 - User-Daten
 - TSS

Hoffe ihr könnt mir helfen.

mfg Thunder

PS: ich habe auch schon Mal selber in der Intel-Doku nachgeschaut, aber dort steht, dass Fehler mit dem SS nur passieren, wenn ich ein Codesegment hineinlade, was ich nicht tue.
12
Offtopic / Re:WASM (Assembler Compiler + Interpreter)
« am: 12. September 2010, 22:49 »
Ja genau, ThunderASM.
Wenn du noch dran weiterarbeitest (war ja nur eine Hausaufgabe), dann mach es bloß nicht zu statisch, sonst endet es auch wie ThunderASM. Nämlich auf der Festplatte - ohne Perspektiven :|
13
Offtopic / Re:WASM (Assembler Compiler + Interpreter)
« am: 12. September 2010, 14:35 »
Also, wenn ich das jetzt richtig verstanden habe und WASM von dir ist: der Name ist schon vergeben, an den Open Watcom Assembler

Es ist vom Umfang her etwas klein und erinnert mich an ein Projekt von mir^^
Ich werds mir aber Mal anschauen  :wink:

Edit: Habe in der PDF folgendes entdeckt:
>>
Der erste Befehl, den wir kennen lernen ist der 'MOV'-Befehl. Er
hat die folgende Syntax:
mov op1,op2
Er kopiert den Wert aus op1 nach op2.
<<
Ist es nicht genau umgekehrt?

mfg Thunder
14
Lowlevel-Coding / Re: Problem mit idiv und div
« am: 27. March 2010, 12:58 »
Ah, danke!
Es funktioniert zwar noch immer nicht, aber es stürzt nicht mehr ab. Den Rest sollte ich schon irgendwie schaffen.
15
Lowlevel-Coding / Problem mit idiv und div
« am: 27. March 2010, 10:27 »
Hallo,

Ich habe nun die Funktion putchar aus meinem Asm-Kernel umgebaut, sodass nach jeder Ausgabe eines Zeichens geprüft wird, ob gescrollt werden soll. Die Funktion arbeitet daher mit idiv bzw. div um die aktuelle Zeile auszurechnen.

Das Problem: idiv bzw. div ruft bei mir eine Exception auf (IDT und ISR funktionieren theoretisch schon), allerdings gibt der Exceptionhandler selbst auch einen String aus, was wieder eine Exception auslöst ...
Ich nehme an, dass sich der Kernel am Ende selbst überschreibt und neustartet.

Gibt es da irgendeine Erklärung?

Code:
mov eax,[CONSOLE_POS] ; aktuelle Position
mov ebx,80
idiv ebx ; oder div
cmp eax,24
jbe noscroll
memmove (TextBufferStart+160),TextBufferStart,(TextBufferLength-160) ; memmove ist ein Macro. TextBufferStart und TextBufferLength sind Konstanten
mov dword [CONSOLE_POS],TextBufferEnd-160 ; ebenfalls eine Konstante
noscroll:

mfg Thunder
16
Lowlevel-Coding / Re: FASM - Untere/Obere 16 Bit
« am: 15. March 2010, 20:05 »
Ja, handle_interrupt_0 leitet zur isr weiter.

Leider hat es so auch nicht funktioniert (trotzdem danke für den Hinweis auf shr). Ich werde die IDT eben zur Laufzeit befüllen, wie es taljeth vorgeschlagen hat.

Danke!

Thunder
17
Lowlevel-Coding / FASM - Untere/Obere 16 Bit
« am: 14. March 2010, 21:31 »
Hallo,

Ich schreibe seit kurzem meinen Kernel wieder neu - das ist schon Routine. Doch diesmal in Assembler. Jetzt bin ich bei der IDT und habe ein kleines Problem. Ich muss die Adresse des Interrupt-Handlers in der IDT in 2 Teile unterteilen - die unteren und die oberen 16 Bit.
Mein Code sieht etwa so aus:
idt:
dw word [handle_interrupt_0] ; So habe ich das versucht
dw 1
db 0
db 11010001b
dd word [handle_interrupt_0] shl 16 ; und so auch

Leider funktioniert das nicht. Wie sollte das aussehen?

mfg Thunder
18
Lowlevel-Coding / Re: GRUB - Error 13
« am: 06. February 2010, 15:22 »
Danke. Habe das Image gleich mit mbchk geprüft. Mir wurde gesagt, dass das Image keinen Multibootheader hat.
Also ich habe jetzt den Kernel neu kompiliert, gelinkt, das Image erstellt und es mit Bochs und Qemu ausprobiert.

Jetzt kommt zumindest der Error nicht mehr - keine Ahnung wieso. Allerdings fährt so ein grauer Streifen den Bildschirm hinauf und verschwindet dann mit dem BIOS Cursor ( habe ich nicht programmiert ). -> Das passiert nur mit Bochs - Qemu ist wahrscheinlich zu schnell.

mfg Thunder
19
Lowlevel-Coding / GRUB - Error 13
« am: 06. February 2010, 13:08 »
Hallo,

Mein Kernel macht wieder Mal Schwierigkeiten. Eigentlich ist bis jetzt noch nicht allzu viel drinnen. Es sollten die GDT und der Memory Manager initialisiert werden und eine Meldung erscheinen lassen. Allerdings passiert folgendes:

- GRUB lädt das Menü
- Nach dem Menü kommt die Meldung: "Error 13: Invalid or unsupported executable format
Press any key to continue..."

Eigentlich sollte so etwas doch gar nicht passieren können, oder?

War es, weil ich den Kernel auf Ubuntu 9.10 compiliert und gelinkt, aber auf Ubuntu 8.10 das Floppy-Image erstellt habe?

mfg Thunder
20
Softwareentwicklung / Re: 2 Fragen zu GRUB
« am: 03. February 2010, 19:41 »
Danke sehr, werde das gleich Mal ausprobieren.

Genau das Linkerskript. Da wo ich es am wenigsten vermutet habe. :roll:

mfg Thunder
Seiten: [1] 2

Einloggen