vmlinux Datei aus vmlinuz extrahieren

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Benutzeravatar
eagle
Beiträge: 2282
Registriert: 05.11.2002 11:20:53
Wohnort: Berlin

vmlinux Datei aus vmlinuz extrahieren

Beitrag von eagle » 02.07.2007 13:17:39

Ich wollte mir den Profiler oprofile ansehen und der benötigt die Datei vmlinux. In den Debian Kernelpaketen wird sie nicht mit angeboten, außerdem hat man nicht immer die Möglichkeit oder Zeit den Kernel neu zubauen.

Es müsste doch möglich sein die Datei aus der aktuellen /boot/vmlinuz-2.6.18-i686 zu extrahieren. Ich habe schon mit dem Skript linux/scripts/extract-ikconfig experimentiert, bin aber noch nicht zu einem brauchbaren Ergebnis gekommen.

eagle
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von rendegast » 03.07.2007 01:48:18

Den ersten Sektor abzuschneiden ist ja noch einfach, aber wenn ich dann nochmal 1-40 Sektoren probiere, kommt nix Brauchbares (also etwas gezipptes) dabei heraus.
Was dann noch abzuschneiden ist, kann ich! nicht aus den Makefiles in linux/arch/i386/... herauslesen

Es wird in linux/arch/i386/boot/Makefile ein bootsect-Objekt (der einfache 1. Sektor vermutlich) und ein setup-Objekt erwähnt.
in bootsect.S:

Code: Alles auswählen

...
boot_flag:      .word 0xAA55
(der einfache Fall, Strings wie "Direct booting from floppy")
in setup.S:

Code: Alles auswählen

...
/* Signature words to ensure LILO loaded us right */
#define SIG1    0xAA55
#define SIG2    0x5A5A
...
# This is the setup header, and it must start at %cs:2 (old 0x9020:2)

                .ascii  "HdrS"          # header signature
                .word   0x0204          # header version number (>= 0x0105)
...
...
# Setup signature -- must be last
setup_sig1:     .word   SIG1
setup_sig2:     .word   SIG2
...
vielleicht hilft das weiter - mit "HdrS" und "0x0402" fängt der zweite Sektor an.

EDIT
Ja, das scheint es zu sein, ich finde die Folge "0x55 0xAA 0x5A 0x5A" (U@ZZ) an der Stelle 0x1E80.

EDIT
Leider doch nicht.
Danach ein weiteres Suchen nach "0x42 0x5a" ("BZ", bzip2) oder "0x1f 0x8b" (gzip) bringt erstmal nichts Sinnvolles. (für mich)
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten