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

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.

主站蜘蛛池模板: 南和县| 桃园市| 子长县| 仪陇县| 扬中市| 禹州市| 江川县| 读书| 林甸县| 涪陵区| 故城县| 通道| 景泰县| 临城县| 阿克| 南涧| 靖州| 永德县| 永善县| 宁明县| 舞阳县| 苍山县| 青岛市| 射阳县| 平果县| 开鲁县| 奎屯市| 荆门市| 大名县| 资中县| 中阳县| 砚山县| 芜湖县| 潮州市| 娄烦县| 郸城县| 昌黎县| 元谋县| 东阳市| 文水县| 越西县|