我添加了一些 printk(KERN_ALERT "sample\n"); 进入驱动模块。如果我手动安装驱动程序,则会出现这些打印。但如果在引导过程中加载了相同的驱动程序,则不会出现该消息。
我确信在启动过程中会加载相同的模块,因为我更改了模块作者名称,以便在我执行 $modinfo 时它会出现。该模块位于内核源代码路径中,我已经编译并 $make module_install。
我正在运行 ubuntu 10.04 和内核版本 3.14.2 我缺少什么?
谢谢。
我添加了一些 printk(KERN_ALERT "sample\n"); 进入驱动模块。如果我手动安装驱动程序,则会出现这些打印。但如果在引导过程中加载了相同的驱动程序,则不会出现该消息。
我确信在启动过程中会加载相同的模块,因为我更改了模块作者名称,以便在我执行 $modinfo 时它会出现。该模块位于内核源代码路径中,我已经编译并 $make module_install。
我正在运行 ubuntu 10.04 和内核版本 3.14.2 我缺少什么?
谢谢。
好的,现在我知道错误是什么了。我没有使用新模块创建 inintramfs。所以它在引导过程中从旧的 initramfs 加载旧驱动程序。谢谢大家。
@silly_walker,如果控制台未初始化 printk 没有用,因为它可以将输出重定向到哪里?, printk() 只有在控制台初始化时才能输出。如果您真的想在启动过程的早期输出,请尝试使用“early_printk()”。通过以下链接,
http://www.makelinux.net/books/lkd2/ch18lev1sec3
希望这能解决你的问题!!!