求助:U盘驱动不被调用
rrlrr 2011-05-12 08:54:05 如题,插入U盘时,在probe函数中打印输出的内容始终没显示,也就是说插入时没有调用驱动程序的probe函数
内核是2.4版的 大家帮忙看看是怎么回事呢 最怕这种没反应的情况了
代码如下
#include <storage/protocol.h>
#include <storage/transport.h>
#include <linux/usb.h>
#include <linux/module.h>
#include <linux/wait.h>
#include <asm/page.h>
#include <linux/kernel.h>
#include <linux/init.h>
//#include <asm/uaccess.h>
#define MY_UDISK_VENDOR_ID 0x0951
#define MY_UDISK_PRODUCT_ID 0x1624
MODULE_LICENSE("Dual BSD/GPL");
static struct usb_device_id usbmajor_id_table[]={
{ USB_DEVICE(MY_UDISK_VENDOR_ID, MY_UDISK_PRODUCT_ID)},
{}
};
MODULE_DEVICE_TABLE(usb, usbmajor_id_table);
static void usbmajor_disconnect(struct usb_device *udev, void *ptr)
{
printk("disconnected");
}
static void *usbmajor_probe(struct usb_device *udev, unsigned int ifnum,const struct usb_device_id *id)
{
printk(KERN_ALERT "drivers has successfully detected the disk!");
}
static struct usb_driver usbmajor = {
name : "usbmajor",
id_table : usbmajor_id_table,
probe: usbmajor_probe,
disconnect: usbmajor_disconnect,
};
static int usbdev_init(void)
{
int ret;
ret = usb_register(&usbmajor);
if(ret)
{
printk("usbmajor register failure!\n");
}
else
{
printk("usbmajor register success!\n");
}
return 0;
return ret ;
}
static void usbdev_exit(void)
{
usb_deregister(&usbmajor);
printk("the module is removed!\n");
}
module_init(usbdev_init);
module_exit(usbdev_exit);