printf im Kernel erzeugt keine Ausgabe

KobRheTilla

used register
Hi,

es gibt reproduzierbare Probleme bei gmirror auf SSDs in Verbindung mit TRIM. Um das ganze vielleicht mal selber zu debuggen habe ich im Kernel in den Dateien

sys/ufs/ffs/ffs_alloc.c
sys/geom/geom_dev.c
sys/geom/mirror/g_mirror.c

an bestimmten Stellen printf-Aufrufe drin, die mir verschiedene Sachen ausgeben sollen. Ich habe printf benutzt, weil es auch in den debug-Makros benutzt wird. Nur das Problem: es erscheint nirgends eine Ausgabe.
Gibt es eventuell sowas wie printk unter Linux, mit dem Meldungen des Kernels nach dem Boot deaktiviert werden?

Rob
 
Ich habe meine Kopie von Writing FreeBSD Device Drivers gerade nicht zur Hand, aber da war gut drin beschrieben, wie man im Kernel loggen sollte.
 
Also, ich bin wohl offensichtlich zu blöd, einen neuen Kernel zu bauen!

Ich editiere eine Datei und ändere einen Text, der definitiv beim Initialisieren des gmirrors zu sehen ist.
Dann baue ich den Kernel neu (make kernel) und reboote. Der Text ist unverändert.

Kann mir das jemand erklären?

Rob
 
Das soll so, weil geom_mirror ein Kernelmodul ist und make kernel der alte Weg ist nur den Kernel neu zu bauen ohne die Module zu bauen. Geh doch direkt in den Ordner des Moduls und führe make build install aus um nur ein Modul neu zu bauen.
 
Nun, das bezweifle ich. /usr/src/UPDATING sieht genau diesen Weg vor, außerdem /usr/src/Makefile:

kernel: buildkernel + installkernel
buildkernel: Rebuild the kernel and the kernel-modules
installkernel: Install the kernel and the kernel-modules

Das Problem befand sich vor dem Bildschirm. Ich habe den Mirror nicht korrekt eingebunden und hab also den Kernel immer auf die Partition installiert, von der gar nicht gebootet wurde. Thread kann zu.

Rob
 
Zurück
Oben