강좌 & 팁
글 수 2,412
2014.07.10 21:32:59 (*.134.169.166)
40443
커널 부팅 후 디바이스드라이버에서 printk를 사용하였는데 메세지가 바로 출력이 되지 않고, dmesg 로만 확인이 가능할 경우에 아래의 커널 loglevel 을 적절이 사용하면 됩니다.
loglevel= All Kernel Messages with a loglevel smaller than the
console loglevel will be printed to the console. It can
also be changed with klogd or other programs. The
loglevels are defined as follows:
0 (KERN_EMERG) system is unusable
1 (KERN_ALERT) action must be taken immediately
2 (KERN_CRIT) critical conditions
3 (KERN_ERR) error conditions
4 (KERN_WARNING) warning conditions
5 (KERN_NOTICE) normal but significant condition
6 (KERN_INFO) informational
7 (KERN_DEBUG) debug-level messages
커널의 다음 위치에 정의되어 있습니다. ( 커널 버젼 : 3.0.35 )
include/linux/printk.h
#define KERN_EMERG "<0>" /* system is unusable */
#define KERN_ALERT "<1>" /* action must be taken immediately */
#define KERN_CRIT "<2>" /* critical conditions */
#define KERN_ERR "<3>" /* error conditions */
#define KERN_WARNING "<4>" /* warning conditions */
#define KERN_NOTICE "<5>" /* normal but significant condition */
#define KERN_INFO "<6>" /* informational */
#define KERN_DEBUG "<7>" /* debug-level messages */
항상 커널 메세지를 출력하기 위해서는 다음과 같이 사용하면 됩니다.
printk(KERN_ALERT "FLASH: success\n");