列表 上一篇 下一篇

ubuntu下hello world模块

ubuntu版本号13.10,接着上一篇内核源码树。

1.切换到root账户

sudo su

2.创建工程目录

mkdir hello-module cd hello-module

3.源文件、Makefile文件

hello.c

#include<linux/init.h> #include<linux/kernel.h> #include<linux/module.h> MODULE_LICENSE("Dual BSD/GPL"); int hello_init(void) { printk("hello,module\n"); return 0; } void hello_exit(void) { printk("exit,module\n"); } module_init(hello_init); module_exit(hello_exit);

Makefile

obj-m += hello.o KERNELDIR := /usr/src/linux PWD := $(shell pwd) modules: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules modules_install: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install clean: $(MAKE) -C $(KERNELDIR) M=$(PWD) clean

4.编译模块

make

5.加载模块

insmod ./hello.ko

6.查看模块列表

lsmod

7.卸载模块

rmmod ./hello.ko

8.查看printk信息

在网上找了很多关于printk输出不到控制台的信息,暂时没有解决,但是可以通过log文件查看。

cat /var/log/kern.log