커 널 디 버 깅 옵션

用printk在终端看不到显示是因为printk是在kernel里面执行的啊 终端只是一个加载的过程

* * * * * * * * * * * * * * * * * * * * 초 고 는 검증 을 기다 리 고 있 습 니 다. 본인 은 디버그 에 대해 잘 모 릅 니 다 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
앞에서 제안 한 바 와 같이 드라이버 를 만 드 는 것 을 배 워 서 자신의 커 널 (표준 메 인 커 널) 을 구축 해 야 합 니 다.가장 중요 한 원인 중 하 나 는 커 널 개발 자 들 이 디 버 깅 에 사용 할 여러 가지 기능 을 만 들 었 기 때문이다.그러나 이러한 기능 은 추가 적 인 수출 을 초래 하고 떨 어 질 수 있 기 때문에 발행 판 업 체 는 발행 판 커 널 의 디 버 깅 기능 을 금지한다.커 널 디 버 깅 을 실현 하기 위해 서 나 는 커 널 설정 에 몇 가지 항목 을 추가 했다.  Kernel hacking  --->             [*] Magic SysRq key        [*] Kernel debugging        [*]   Debug slab memory allocations          [*]   Spinlock and rw-lock debugging: basic checks         [*]   Spinlock debugging: sleep-inside-spinlock checking        [*]   Compile the kernel with debug info          [*] Magic SysRq key Device Drivers  --->          Generic Driver Options  --->          [*] Driver Core verbose debug messages General setup  --->       [*] Configure standard kernel features (for small systems)  --->          [*]   Load all symbols for debugging/ksymoops 디 버 깅 정 보 를 편리 하 게 열 고 닫 기 위해  Makefile 에 추가 할 구문:
# Comment/uncomment the following line to disable/enable debuggingDEBUG = y# Add your debugging flag (or not) to CFLAGSifeq ($(DEBUG),y)  DEBFLAGS = -O -g -DSCULL_DEBUG # "-O"is needed to expand inlineselse
DEBFLAGS = -O2endifEXTRA_CFLAGS += $(DEBFLAGS)    
완전한 Makefile 파일
# Comment/uncomment the following line to disable/enable debuggingDEBUG = y# Add your debugging flag (or not) to CFLAGSifeq ($(DEBUG),y)  DEBFLAGS = -O -g -DSCULL_DEBUG # "-O"is needed to expand inlineselse  DEBFLAGS = -O2endifEXTRA_CFLAGS += $(DEBFLAGS)# Makefile2.6ifneq ($(KERNELRELEASE),)#kbuild syntax. dependency relationshsip of files and target modules are listed here.mymodule-objs := hello.o #param-objs := file1.o file2.oobj-m := hello.o         #obj-m := param.oelsePWD := $(shell pwd)KVER ?= $(shell uname -r)KDIR :=/lib/modules/$(KVER)/buildall:    $(MAKE) -C $(KDIR) M=$(PWD)clean:    rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions.PHONY: modules modules_install cleanendif

좋은 웹페이지 즐겨찾기