![如何在开始时向 dmesg 写入消息?](https://linux22.com/image/139993/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%BC%80%E5%A7%8B%E6%97%B6%E5%90%91%20dmesg%20%E5%86%99%E5%85%A5%E6%B6%88%E6%81%AF%EF%BC%9F.png)
目前,当我运行时启动时dmesg | head
我得到了。
[ 0.000000] Linux version 4.17.19+ (bob@bob-VirtualBox) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #2 SMP Mon Sep 10 21:33:25 EDT 2018
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.17.19+ root=UUID=2e69cd99-b344-4014-bb00-ce3da383be05 ro quiet splash
[ 0.000000] KERNEL supported cpus:
ETC...
内核源代码中是否有一个已经存在的文件,我可以修改它来打印一条类似“Hello world”的消息,这样一旦我构建并安装了新的文件,它就会显示在启动后 dmesg 输出的开头或第一行之后核心。我意识到我可以通过一个新模块来做到这一点,但是我可以修改预先存在的东西吗?
答案1
您可以修改打印第一行输出的函数;在start_kernel
里面init/main.c
。 “Linux版本”消息被存储linux_banner
并输出使用pr_notice
,您也应该将其用于早期消息。
答案2
编辑根 crontab:
# crontab -e
添加以下行:
@reboot echo "Hello World!" > /dev/kmsg
重新启动然后检查:
# dmesg | grep Hello