처음에 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:

등...

"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

관련 정보