Отладочные сообщения не выводятся на консоль - PullRequest
0 голосов
/ 01 января 2019

Я пытаюсь включить печать сообщений отладки на консоли.

#include <linux/kernel.h>
#include <linux/module.h>

MODULE_LICENSE("GPL");
static int test_hello_init(void)
{
    printk(KERN_INFO"%s: In init\n", __func__);
    return 0;
}

static void test_hello_exit(void)
{
    printk(KERN_INFO"%s: In exit\n", __func__);
}

module_init(test_hello_init);
module_exit(test_hello_exit);

Чтобы получить информационные сообщения на консоли, я выполнил следующую команду: dmesg -n7

 cat /proc/sys/kernel/printk
7   4   1   7

Когда я загружаю модуль с помощью insmod, я не получаю никаких сообщений на терминале, пока оно доступно, когда я печатаю dmesgКакую ошибку я совершаю здесь.

1 Ответ

0 голосов
/ 01 января 2019

Сообщения от ядра не печатаются на терминале (если это не указано как console = в cmdline ядра).Они добавляются в журнал ядра, который существует в ядре.Он доступен для программ пользовательского пространства через файл устройства /dev/kmsg.Этот файл читается командой dmesg для печати содержимого журнала ядра на терминале.

...