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

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.

主站蜘蛛池模板: 乌拉特后旗| 朝阳县| 澄江县| 革吉县| 丹凤县| 花垣县| 辉县市| 宿州市| 平度市| 郴州市| 平阳县| 三都| 时尚| 威信县| 崇仁县| 五常市| 临沧市| 仁布县| 铁岭市| 沙田区| 长兴县| 湘乡市| 肥乡县| 遂平县| 五台县| 城口县| 穆棱市| 宜宾县| 盘锦市| 富源县| 唐山市| 金华市| 杂多县| 崇礼县| 蚌埠市| 十堰市| 当涂县| 黑龙江省| 宁国市| 金门县| 来凤县|