zzj 发表于 2016-8-17 16:23:59

有关rmmod时模块忙碌的问题

我写了一个驱动来控制黄色led,这是驱动文件
#include<linux/init.h>
#include<linux/module.h>
#include <linux/leds.h>

MODULE_LICENSE("GPL");
DEFINE_LED_TRIGGER(ledtrig_ir_click);


static int led_init(void)
{
      printk("turn on\n");
      led_trigger_register_simple("ir-user-click", &ledtrig_ir_click);
      led_trigger_event(ledtrig_ir_click, LED_FULL);
      return 0;
}

static void led_exit(void)
{
      printk("turn off\n");
      led_trigger_register_simple("ir-user-click", &ledtrig_ir_click);
      led_trigger_event(ledtrig_ir_click, LED_OFF);
}

module_init(led_init);
module_exit(led_exit);

然后就用了sudo insmod led.ko加载,灯也亮了,但是用sudo rmmod led.ko时却出现模块忙的问题,如下
firefly@firefly:~/temp/makepra/led$ lsmod
Module                  SizeUsed by
led                      9170
mali_kbase            1596890
firefly@firefly:~/temp/makepra/led$ sudo rmmod led.ko
rmmod: ERROR: ../libkmod/libkmod-module.c:769 kmod_module_remove_module() could not remove 'led': Device or resource busy
rmmod: ERROR: could not remove module led.ko: Device or resource busy

请问这是怎么回事?网上说是缺少exit函数,但是我的.c文件里有,每次只能重启开发板才能卸载模块。

HelloBirthday 发表于 2016-8-18 14:18:56

insmod    xxx.ko   
rmmod   xxx

zzj 发表于 2016-8-18 14:22:19

HelloBirthday 发表于 2016-8-18 14:18
insmod    xxx.ko   
rmmod   xxx

你这个我试过,会提示权限不足,进入root后会报原来的错误
页: [1]
查看完整版本: 有关rmmod时模块忙碌的问题