- Linux Device Driver Development Cookbook
- Rodolfo Giometti
- 376字
- 2021-06-24 13:54:13
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
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.
- 零起點學Linux系統管理
- Modern Web Testing with TestCafe
- Kali Linux滲透測試全流程詳解
- Delphi Programming Projects
- Learning BeagleBone
- Java EE 7 Developer Handbook
- Linux內核分析及應用
- 辦公自動化教程(Windows7+Office2010)
- openEuler操作系統核心技術與行業應用實踐
- Selenium Framework Design in Data-Driven Testing
- OpenWrt智能路由系統開發
- 電腦辦公(Windows 10+Office 2016)從入門到精通
- INSTANT AngularJS Starter
- Python網絡編程(Linux)
- LAMP&OpenLDAP圖書館Web應用平臺構建與開發