Ich habe das Creating a Generic Kernel Extension with Xcode Tutorial gefolgt.Mac-Kernel-Programmierung generische Kernel-Erweiterung prinf() funktioniert nicht
MyKext.c:
#include <sys/systm.h>
#include <mach/mach_types.h>
kern_return_t MyKext_start (kmod_info_t * ki, void * d)
{
printf("MyKext has started.\n");
return KERN_SUCCESS;
}
kern_return_t MyKext_stop (kmod_info_t * ki, void * d)
{
printf("MyKext has stopped.\n");
return KERN_SUCCESS;
}
Ich habe auch die csrutil, deaktiviert, die mir erlauben, meine eigene kext zu laden.
# csrutil disable
Als ich
meine eigene kext in den Kernel geladen werden$ sudo kextload -v /tmp/MyKext.kext
Das Ergebnis der printf() nicht in /var/log/system.log schreiben.
Ich habe auch festgelegt boot-args
$ sudo nvram boot-args="original_contents debug=0x4"
Kann mir jemand helfen?
Zuerst müssen Sie Kernal Funktionen verwenden. so sollte 'printf() '' printk() ' – user3629249
sein, es gibt spezielle Funktionen zum Schreiben in das Systemprotokoll. Sie sind: 'openlog()', 'syslog()', 'closelog()' – user3629249
@ user3629249: Was gibt Ihnen diese Idee? 'printf()' sollte gut funktionieren. –