【问题标题】:how can i find the info i modified in kernel如何找到我在内核中修改的信息
【发布时间】:2014-03-30 02:03:48
【问题描述】:

我在 /usr/src/linux/arch/x86/kernel/setup.c 的函数 void __init setup_arch(char **cmdline_p) 中添加了一个 printk()。然后运行 ​​make 然后 dmesg /var/log 并且看不到我的 printk 内容,我如何以及在哪里可以看到它们

【问题讨论】:

    标签: linux kernel


    【解决方案1】:

    从内核日志级别获取帮助

    http://elinux.org/Debugging_by_printing#Log_Levels

    您可以使用以下命令启用内核的所有日志

    echo 7 > /proc/sys/kernel/printk

    希望对你有所帮助。

    要查看内核日志使用 -> dmesg,它会显示 linux() 的环形缓冲区的 printf。

    如果在控制台登录有问题,则使用 dmesg > log_file(日志将存储在文件中,您可以在文件中找到日志)

    更多系统日志,您可以使用以下

    vim /var/log/messages

    vim /var/log/syslog

    在/var/log/目录下所有系统日志都存在。

    【讨论】:

    • 我的 printk 是 KERN_INFO,所以我认为这里的优先级不是问题,但我发现我无法滚动到消息的前几行,我该怎么做
    • 确保你修改的文件在 make 时正在编译。如果你能提供更多信息,那么我可以帮助你更多(在构建内核之后你是如何使用的,你是如何配置的,你是如何构建内核映像和其他东西)
    • 我运行 dpkg 并得到了 linux-image.xxx.deb 和 linux-headers.xxx.deb 我使用了 make menuconfig 但什么都不做应该是默认设置。我认为问题在于我插入 printk 的位置。也许我将它插入到无法打印出来的地方。我在 #else 0873 printk(KERN_INFO "Command line: %s\n", boot_command_line); 之后插入了它
    猜你喜欢
    • 1970-01-01
    • 2015-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多