在mini2440平台下加载LED驱动模块出现以下错误:
[root@FriendlyARM 5-3-2]# insmod mini2440_leds_misc.ko
WARNING: at fs/sysfs/dir.c:491 sysfs_add_one+0x88/0xb0()
sysfs: cannot create duplicate filename '/devices/virtual/misc/leds'
Modules linked in: mini2440_leds_misc(+)
Backtrace: ....
出错原因:
mini2440系统开机时已经加载名为les的混杂设备驱动
crw-rw---- 1 root root 10, 62 Dec 4 2005 leds
而本人修改的LED驱动模块使用了同样的设备名,在加载驱动系统建立设备文件时即出现以上错误。
解决方案:
第一步:修改驱动程序中此混杂设备名
static struct miscdevice misc = {
.minor = MISC_DYNAMIC_MINOR,
.name = "ledtest",
.fops = &dev_fops,
};
第二步:修改应用程序打开的设备文件名
fd = open("/dev/ledtest", 0);
重新编译模块和应用程