나는 Creating a Generic Kernel Extension with Xcode 튜토리얼을 따라 갔다.맥 커널 프로그래밍 일반 커널 확장 prinf() 작동하지 않음
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;
}
나는 또한 내 자신의 KEXT를로드 허용 csrutil을 비활성화했습니다. 나는 커널
$ sudo kextload -v /tmp/MyKext.kext
로의 printf의 결과를 내 자신의 KEXT를로드
# csrutil disable
() /var/log/system.log에 쓸 수 없습니다.
나는 또한 설정 한 부트 인수
$ sudo nvram boot-args="original_contents debug=0x4"
이 사람이 나를 도울 수 있습니까?
먼저 kernal 함수를 사용해야합니다. 그래서'printf()'는'printk()'이어야합니다. – user3629249
시스템 로그에 쓰는 특정 함수가 있습니다. 그것들은 다음과 같습니다 :'openlog()','syslog()','closelog()' – user3629249
@ user3629249 : 'printf()'는 잘 동작 할 것이다. –