kernel page fault

heesen

Rainer Heesen
Hallo zusammen,

ich habe gestern eine neue Hardware in meinen Rechner eingebaut. Eine weitere Soundkarte und eine WLAN-Karte mit Atherors-Chipset. Nach dem Einbau fuhr der Rechner auch einwandfrei hoch, so dass ich das nächste Wagnis einging und einen neuen Kernel baute. Denn für die WLAN-Karte musste ich die devices ath und ath_hal einfügen.

Alles funktionierte zunächst. Nach dem reboot gab es Probleme. make installworld brach mit einem Fehler ab; es endete, glaube ich, bei libntp.

Darauf wollte ich mit altem Kernel wieder booten; doch jetzt klappt nichts mehr.
Ich habe mit verschiedenen alten Kernels gebootet. Ich erhalte immer die Meldung:

Fatal trap 12: page fault while in kernel mode
cpuid = 0 apic id = 0
fault virtual addres = 0xce36400 (ändert sich je nach 5.4 oder 5.2 Kernel)
fault code = supervisor read, page not present
instruction pointer = 0x8:0xc07c943b
...

Was kann ich nun tun?

1. Kann ich etwas reparieren oder muss ich das System neu installieren?
2. Mein letzter Backup ist drei Tage her; gibt es die Möglichkeit noch einmal auf
die intakten Festplatten zuzugreifen? Ich dachte an Fixit mit livecd, weiß aber nicht, wie man die Partitionen mountet. Der Mount-Befehl ist mir schon vertraut;
nur kenne ich die Device-Namen nicht (habe zwei IDE-Platten). Bei meinem Mount-Versuch kam auch immer die Fehlermeldung, dass /etc/fstab fehlen würde.

Hardware-Defekte könnten zwar auch theoretisch der Grund; allerdings habe ich auf dem Rechner noch eine Windows XP installation. Die meldet keine Störungen.

Ich nehme jeden Tipp gerne an.

Viele Grüße

Rainer
 
heesen schrieb:
Hallo zusammen,

ich habe gestern eine neue Hardware in meinen Rechner eingebaut. Eine weitere Soundkarte und eine WLAN-Karte mit Atherors-Chipset. Nach dem Einbau fuhr der Rechner auch einwandfrei hoch, so dass ich das nächste Wagnis einging und einen neuen Kernel baute. Denn für die WLAN-Karte musste ich die devices ath und ath_hal einfügen.

Alles funktionierte zunächst. Nach dem reboot gab es Probleme. make installworld brach mit einem Fehler ab; es endete, glaube ich, bei libntp.
Warum wolltest Du das gesamte System neu bauen? make buildkernel und make installkernel hätte gereicht um nen neuen Kernel zu backen. Zu rebooten nachdem die Installation der Welt nicht ordentlich durchgelaufen ist, ist im übrigen auch sehr gewagt.
Darauf wollte ich mit altem Kernel wieder booten; doch jetzt klappt nichts mehr.
Ich habe mit verschiedenen alten Kernels gebootet. Ich erhalte immer die Meldung:

[...]
Das auch alte Kernel nicht booten wundert mich nicht, da du dir beim installworld das System zerballert hast.
Was kann ich nun tun?

1. Kann ich etwas reparieren oder muss ich das System neu installieren?
Ich glaubs zwar nicht, aber probier mal im Singleuser zu booten. Wenn das glückt -> Welt neu bauen.
2. Mein letzter Backup ist drei Tage her; gibt es die Möglichkeit noch einmal auf die intakten Festplatten zuzugreifen?
Nimm FreeSBIE oder Knoppix.

bye,
steinex
 
heesen schrieb:
Darauf wollte ich mit altem Kernel wieder booten; doch jetzt klappt nichts mehr.
Ich habe mit verschiedenen alten Kernels gebootet. Ich erhalte immer die Meldung:

Fatal trap 12: page fault while in kernel mode
cpuid = 0 apic id = 0
fault virtual addres = 0xce36400 (ändert sich je nach 5.4 oder 5.2 Kernel)
fault code = supervisor read, page not present
instruction pointer = 0x8:0xc07c943b

Sehe ich das richtig? Du hast 5.4 am laufen und hast einen alten Kernel aus 5.2 Zeiten noch rumliegen mit dem du booten willst? Das ist kein Linux, hier kann man den Kernel nicht einfach austauschen. Kernel- und Userland müssen sync sein.

Ansonsten, boote in den single user mode, aktiviere Deine Netzverbindung, mounte alles, ziehe die neusten sourcen via cvsup, baue die welt und den kernel neu, reboote.
 
Kernel- und Userland sind beide 5.4. Etwas konkreter lief es folgendermaßen ab:

make buildworld
make buildkernel
make installkernel
reboot im Single User Mode
mergemaster -p
make installworld
-> Fehler, Abbruch
cp -R /boot/kernel.old/* /boot/kernel
umkopieren der device.hints

neuer reboot im single user mode -> absturz automatischer reboot
boot /boot/kernel.MYKERNEL-20050714 (booten mit dem 5.4er Kernel tags zuvor gesichert) ->Fehlermeldung kernel trap 12 with interrupts disabled

Booten im Single User Mode führt bei mir wiederholt zu automatischem Reboot, booten mit dem 5.4er Kernel, wo alles noch funktionierte, gibt die Fehlermeldung. Danach habe ich noch Weiteres ausprobiert, wie z.B. Boot mit 5.2er Kernel. (wenn man verzweifelt ist, versucht man halt jeden Unsinn auszuprobieren.) Alles schlug fehl.

Daher vermute ich, dass ich das System neu aufsetzen muss. Wenn dies so ist, wäre es für mich sehr wichtig, konkret zu erfahren, ob ich mit fixit noch Zugriff auf die Festplatte haben kann. Wenn ja, wie; ich weiß leider nicht, welche Devices anzugben sind und wie es ohne /etc/fstab funktionieren kann.
 
hHallo zusammen!

Ich habe ein ähnliches Problem:
Bei ebay einen scienic-pc ersteigert.
Jetzt wollte ich FBSD5.4 installieren. Disketten erstellt und gebootet. Alles wird erkannt, nur beim eigentlichen Installationsbeginn bricht er mit der gleichen Fehlermeldung wie bei heesen ab.
Egal welche FBSD Version (5.0, 5.2, 5.4), immer der gleiche Absturz.
Wenn ich jedoch meine NetBSD-Live-CD einlege, klappt alles ohne Probleme.
Warum? :confused:

Danke!
 
@heesen: Hast Du vor der ganzen Prozedur /usr/obj gelöscht? Das bringt oft Freude, wenn man es nicht macht.
Vor mergemaster -p und make installworld sollte man in den Single-User-Modus booten und dann /sbin/fsck -p durchführen sowie
/sbin/mount -a /
/sbin/mount -a -t ufs
/sbin/swapon -a (am Ende dann cd /usr/src)

Damit mountest Du die Root-Partition und dann alle UFS-Partitionen. Das sollte in der Syntax auch mit fixit so laufen, da fstab unter /etc steht, das wiederum unter /, so daß Du es mit dem ersten Schritt mountest.
Dann wird mit /sbin/mount -a -t ufs fstab ausgelesen und die dort verzeichneten Slices/Partionen so gemountest wie eingetragen. Bitte nicht /sbin/swapon -a vergessen, da Du die Swap-Partiton benötigst.

Ich hoffe, das hilft etwas.
 
Riecht nach wildem Modulgewuerfel. Das cp -R haettest du mal lieber bleiben lassen sollen.

unload
set kernel=kernel.old
set module_path=/boot/kernel.old
load acpi
load kernel
boot -s

funktioniert eigentlich immer (wenn man nicht hergeht und wild onanierend durch die Gegend kopiert).
 
Zurück
Oben