1. Log Level 의미

 

항목 레벨 설명
1 Console Log Level 이 값보다 높은 우선순위 메세지(숫자가 작은..)들을 콘솔에 출력
2 Default Message Log Level 우선순위 없는 메시지들의 Level Default 값.
ex) printk함수를 사용하면서 별도의 로그레벨을 설정하지 않을 경우
     default로 입력되는 레벨.
3 Minimum Console Log Level Console Log Level 이 설정될 수 있는 최소값. 
Console Log Level >= Minimum Console Log Level
4 Default Console Log Level Console Log Level Default 값

주로 Console Log Level이 핵심. 

 

로그 레벨 DEFINE  의미 
"<0>"  KERN_EMERG 시스템이 동작하지 않음
"<1>" KERN_ALERT 즉시 출력 메시지
"<2>" KERN_CRIT 치명적 에러 메시지
"<3>" KERN_ERR  에러 메시지
"<4>" KERN_WARNING 경고 메시지
"<5>" KERN_NOTICE 정상 메시지
"<6>" KERN_INFO 시스템 정보 메시지
"<7>" KERN_DEBUG 디버깅 정보

적절하게 사용하면 디버깅이라든지 Error 발생시 중요한 정보 등 편하게 표시하면서 개발할 수 있다.

 

2. Log Level 확인 및 적용

  1. /proc 확인

# cat /proc/sys/kernel/printk
4	7	1	7
# echo '1 1 1 1' > /proc/sys/kernel/printk
# cat /proc/sys/kernel/printk
1	1	1	1

 

  2. sysctl.conf 확인

# vi /etc/sysctl.conf
kernel.printk = 4 7 1 7		### 수정

 

  3. uboot bootargs 옵션 확인

> setenv bootargs ${bootargs} loglevel=4
>	### loglevel을 지정.
> setenv bootargs ${bootargs} quiet
>	### quiet 옵션이 있으면 debug message를 띄우지 않는다. 제거해야 한다.
> setenv bootargs ${bootargs} earlyprintk
>	### earlyprintk 옵션도 생각해보자.

 

기본적으로 Target Board의 Debug Serial pinmuxing이 되어야 하고, uboot에서 먼저 Setting값을 확인하여야 한다.

kernel, filesystem에서 아무리 변경해도 적용되지 않으면 uboot쪽을 봐야한다.

그리고 kernel에서 make menuconfig ( defconfig file 수정) -> Kernel hacking -> printk and dmesg options도 함께 보아야한다.

+ Recent posts