检测usb鼠标
学习驱动开发,在usb鼠标插入或拔出时,检测下。代码如下:#include <linux/module.h>#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/input.h>
#include <linux/usb.h>
#include <linux/usb_input.h>
#include <asm/uaccess.h>
#include <linux/kref.h>
MODULE_LICENSE("GPL");
static struct usb_device_id um_id_table[] =
{
{USB_INTERFACE_INFO(3, 1, 2)},
{ }
};
MODULE_DEVICE_TABLE(usb, um_id_table);
static int um_probe(struct usb_interface *intf, const struct usb_device_id *id)
{
printk("----found test's usb mouse\n");
return 0;
}
static void um_disconnect(struct usb_interface *intf)
{
printk("----disconnect test's usb driver\n");
}
static struct usb_driver usbmouse_drv =
{
.owner = THIS_MODULE,
.name = "usbmouse_test",
.id_table = um_id_table,
.probe = um_probe,
.disconnect = um_disconnect,
};
static void usbmouse_exit(void)
{
printk(KERN_NOTICE "usbmouse driver unloading...\n");
usb_deregister(&usbmouse_drv);
}
static int usbmouse_init(void)
{
int retval;
printk(KERN_NOTICE "usbmouse driver init....\n");
retval = usb_register(&usbmouse_drv);
printk("my usbmouse driver register, the return value is %d\n", retval);
return 0;
}
module_init(usbmouse_init);
module_exit(usbmouse_exit);
编译成功,加载驱动后,当插入鼠标时,驱动检测不到,错在哪里呢? 鼠标是通用设备,看看是不是被usbhid抢先挂到其设备链表里了。
tree /sys/bus/usb/drivers/usbhid 你好!我是Linux新手 我的老师让我 分析一下linux内核中的USB鼠标驱动程序 并且改一下代码将左右键功能互换 请问怎样在我安装的linux(Ubuntu)中找到USB鼠标驱动程序的源代码 以前没有学习过这块知识向您虚心请教 !谢谢…… limao2008 发表于 2012-03-01 18:07 static/image/common/back.gif
你好!我是Linux新手 我的老师让我 分析一下linux内核中的USB鼠标驱动程序 并且改一下代码将左右键功能互换 ...
在2.6.13内核中,鼠标的驱动程序是drivers/usb/input/usbmouse.c,而现在的内核中,鼠标的驱动程序已经从drivers/usb移到了drivers/input/mouse中,你看看Kconfig的内容,看看你需要哪个。 回复 4# ice2000feng
呵呵!好的,谢谢您!希望从您身上学到更多的知识……再次感谢……
azfa123 发表于 2012-03-01 14:21 static/image/common/back.gif
鼠标是通用设备,看看是不是被usbhid抢先挂到其设备链表里了。
tree /sys/bus/usb/drivers/usbhid
谢谢,的确是这个问题,配置内核时,把“USB Human Interface Device (full HID) support”那一项去掉就好了。 本帖最后由 limao2008 于 2012-03-07 13:14 编辑
不得不再来问一下前辈,为什么我下载的内核代码中没有USB鼠标的驱动程序,我下载的版本是linux-2.6.32.58?我的鼠标是SIGMA Micro芯片的USB鼠标,我怎样才能找到与之相适应的内核代码中提供的USB鼠标驱动程序呢?谢谢…… 您好!这是下载的内核鼠标驱动目录下的驱动程序,可是找不到相应的USB鼠标驱动程序代码。这是什么情况呢?
limao@limao-laptop:~$ ls '/home/limao/下载/mouse'
alps.c gpio_mouse.clogips2pp.c rpcmouse.c touchkit_ps2.h
alps.h hgpk.c logips2pp.h sentelic.c trackpoint.c
amimouse.c hgpk.h Makefile sentelic.h trackpoint.h
appletouch.cinport.c maplemouse.c sermouse.c vsxxxaa.c
atarimouse.cKconfig pc110pad.c synaptics.c
bcm5974.c lifebook.c psmouse-base.c synaptics.h
elantech.c lifebook.h psmouse.h synaptics_i2c.c
elantech.h logibm.c pxa930_trkball.ctouchkit_ps2.c
我来了~~~嘿嘿~~
页:
[1]