求助: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);

...全文
150 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
rrlrr 2011-05-16
  • 打赏
  • 举报
回复
知道原因了,linux已经支持了USB MASS STORAGE

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧