官术网_书友最值得收藏!

Getting ready

Our ESPRESSObin is the system that generates kernel messages, so we need a connection to it. Through the serial console, these messages are automatically displayed as soon as they arrive, but if we are using an SSH connection, we can still display them by reading specific files, as with the following command:

# tail -f /var/log/kern.log

However, the serial console deserves a special note: in fact, in our example, the kernel messages will be automatically displayed on the serial console, if, and only if, the leftmost number, among the ones found inside the /proc/sys/kernel/printk file, happens to be greater than seven, as shown in the following:

# cat /proc/sys/kernel/printk
10 4 1 7

These magic numbers have a well-defined meaning; in particular, the first one represents the error message level that the kernel must show on the serial console. These levels are defined in the linux/include/linux/kern_levels.h file, as follows:

#define KERN_EMERG KERN_SOH "0"    /* system is unusable */
#define KERN_ALERT KERN_SOH "1" /* action must be taken immediately */
#define KERN_CRIT KERN_SOH "2" /* critical conditions */
#define KERN_ERR KERN_SOH "3" /* error conditions */
#define KERN_WARNING KERN_SOH "4" /* warning conditions */
#define KERN_NOTICE KERN_SOH "5" /* normal but significant condition */
#define KERN_INFO KERN_SOH "6" /* informational */
#define KERN_DEBUG KERN_SOH "7" /* debug-level messages */

For example, if the contents of the preceding file were 4, as reported in the following, only messages having the KERN_EMERG, KERN_ALERT, KERN_CRIT, and KERN_ERR levels will be automatically displayed on the serial console:

# cat /proc/sys/kernel/printk
4 4 1 7

In order to allow all messages, a subset of them, or none to be displayed, we have to modify the leftmost number of the /proc/sys/kernel/printk file by using the echo command, as in the following example in which we act in such a way to completely disable the printing of all kernel messages. This is because no message can have a priority level greater than 0:

 # echo 0 > /proc/sys/kernel/printk
Kernel message priorities start from 0 (the highest) and go up to 7 (the lowest)!

Now that we know how to display kernel messages, we can try to perform some modifications to our kernel code in order to do some experimentation with kernel messages.

主站蜘蛛池模板: 昭平县| 诸城市| 靖远县| 大英县| 祁门县| 阳城县| 延长县| 准格尔旗| 军事| 甘德县| 琼结县| 杭锦旗| 西昌市| 广南县| 南华县| 壤塘县| 台前县| 中西区| 额尔古纳市| 甘肃省| 榆社县| 赤水市| 兴隆县| 京山县| 福安市| 灵台县| 大宁县| 新泰市| 察隅县| 永康市| 休宁县| 吐鲁番市| 刚察县| 崇义县| 邵阳县| 双峰县| 奉化市| 宜宾市| 洪泽县| 信阳市| 南安市|