如何在开始时向 dmesg 写入消息?

如何在开始时向 dmesg 写入消息?

目前,当我运行时启动时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

相关内容