|
本帖最后由 qwerttt 于 2015-4-12 09:37 编辑
初入linux驱动
用VM10.0, ubuntu14.04.2 内核3.16.0
- 代码很简单
- static int __init hello_init(void)
- {
- printk(KERN_NOTICE "hello world!\n");
- return 0;
- }
- static void __exit hello_exit(void)
- {
- printk(KERN_NOTICE "hello exit!\n");
- }
复制代码
- Makefile代码
- ifneq ($(KERNELRELEASE),)
- obj-m :=helloworld.o
- else
- KDIR:=/lib/modules/3.16.0-30-generic/build
- all:
- make -C $(KDIR) M=$(PWD) modules
- clean:
- rm -f *.ko *.o *.mod.o *.mod.c .symvers
- endif
复制代码
insmod可以加载成功 命令insmod helloworld.ko
rmmod出现如下错误: 命令rmmod helloworld
rmmod: ERROR: ../libkmod/libkmod-module.c:769 kmod_module_remove_module() could not remove 'helloworld': Device or resource busy
rmmod: ERROR: could not remove module helloworld.ko: Device or resource busy
网上有的说用rmmod -f 或是 在/lib/modules/建一个与内核文件名一样的文件夹 也没有成功卸载 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
该献的血还是要献的。你不献他不献。难道让我去献? --- 出自坛友:lovejp1981
|