我正在编写一个内核模块,我希望能够在使用时加载它时在控制台输出上打印一些东西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
我试图交叉编译具有规范的helloworld内核模块:
我正在使用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)
可悲的是,这说得很少。