小编Jen*_*man的帖子

内核模块:如何获得控制台输出?

我正在编写一个内核模块,我希望能够在使用时加载它时在控制台输出上打印一些东西insmod module.ko.

我试过用

printk(KERN_EMERG "test kernel emergency\n");
Run Code Online (Sandbox Code Playgroud)

但我的控制台上没有任何内容 然而它确实出现在dmesg.

额外信息:
我使用的是带有linux-3.0.0的Intel x86 32位

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

linux kernel-module printk

6
推荐指数
1
解决办法
8763
查看次数

交叉编译内核模块:无效的模块格式

我试图交叉编译具有规范的helloworld内核模块:

  • 主机:intel x86 32位,linux-3.0.0
  • 目标:ARM机器(Parrot AR.Drone),linux-2.6.27.47

我正在使用makefile:

PWD := $(shell pwd)
obj-m := test.o
all:
    $(MAKE) -C /path/to/kernel M=$(PWD) CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm  modules
Run Code Online (Sandbox Code Playgroud)

arm-none-linux-gnueabi-arm工具链的前缀在哪里。

作为内核,我尝试使用来自git://github.com/CyanogenMod/cm-kernel.git内核的克隆。这是一个2.6内核派生。使用该内核,编译成功。尝试插入模块时,出现错误:

invalid module format
Run Code Online (Sandbox Code Playgroud)

可悲的是,这说得很少。

arm cross-compiling kernel-module linux-kernel

4
推荐指数
1
解决办法
1万
查看次数