close
控制kernel message level的方法
在開發kernel module最常用,也最直接的方法就是printk, 將訊息印出來方便我們除錯.
但有時程式不是我們自己寫的, 又加了非常多的debug message, 有時加在read/write function裡, 讓不時跳出來的message, 尤其在embedded system上, 幾乎讓UART consol沒加辦法再接受任何指令.甚至有讓UART當掉的可能.
最快的方法就是先暫時把printk的訊息關掉./proc下有提供了我們一些提示.
因此我們在不詳細探究所有的使用方法的前提之下.
就看不到任何的printk訊息了.
但是看不見不代表不存在, 我們還是可以用dmesg或者是tail -f /var/log/messages, 來看到printk訊息.
再者因為過多的debug message而影響效能的問題則還是依然存在, 並不會消失.
但有時程式不是我們自己寫的, 又加了非常多的debug message, 有時加在read/write function裡, 讓不時跳出來的message, 尤其在embedded system上, 幾乎讓UART consol沒加辦法再接受任何指令.甚至有讓UART當掉的可能.
最快的方法就是先暫時把printk的訊息關掉./proc下有提供了我們一些提示.
# cat /proc/sys/kernel/printk這表示的是原本printk的訊息優先權(printk level), 每個值都有自己的意義.
7 4 1 7
- Messages with a higher priority than console_loglevel will be printed to the console.
- Messages without an explicit priority will be printed with priority default_message_level.
- Minimum_console_loglevel is the minimum (highest) value to which console_loglevel can be set.
- default_console_loglevel is the default value for console_loglevel.
因此我們在不詳細探究所有的使用方法的前提之下.
#echo "0 0 0 0" > /proc/sys/kernel/printk
就看不到任何的printk訊息了.
但是看不見不代表不存在, 我們還是可以用dmesg或者是tail -f /var/log/messages, 來看到printk訊息.
再者因為過多的debug message而影響效能的問題則還是依然存在, 並不會消失.
echo "7 4 1 7" > /proc/sys/kernel/printk
全站熱搜
留言列表