linux usb驱动 probe,Linux USB驱动程序probe()问题

我目前正在使用Seowon SWU-3220A WiMAX USB调制解调器的内核模式USB驱动程序。它是一个复杂的设备(在插入系统后显示为USB CDROM,驱动程序需要将其切换到调制解调器模式)。我的问题是我的驱动程序中的probe()函数永远不会被调用。我认为这是因为OS使用标准的USB大容量存储驱动程序而不是我自己的。Linux USB驱动程序probe()问题

我初始化驱动程序如下:

#define GDM7213_VENDOR_ID 0x1076

#define GDM7213_PRODUCT_ID 0x7f40

static struct usb_device_id gdm7213_table [] = {

{ USB_DEVICE(GDM7213_VENDOR_ID, GDM7213_PRODUCT_ID) },

{ }

};

MODULE_DEVICE_TABLE(usb, gdm7213_table);

static struct usb_driver gdm7213_driver = {

.name = "gdm7213",

.probe = gdm7213_probe,

.disconnect = gdm7213_disconnect,

.suspend = gdm7213_suspend,

.resume = gdm7213_resume,

.pre_reset = gdm7213_pre_reset,

.post_reset = gdm7213_post_reset,

.id_table = gdm7213_table,

};

static int gdm7213_probe(struct usb_interface *interface, const struct usb_device_id *id)

{

printk(KERN_INFO "GDM7213 gdm7213_probe()\n");

return 0;

}

static int __init gdm7213_init_module(void)

{

int result;

printk(KERN_INFO "GDM7213 init_module()\n");

result = usb_register(&gdm7213_driver);

if (result)

err("usb_register failed. Error number %d", result);

return result;

}

static void __exit gdm7213_cleanup_module(void)

{

printk(KERN_INFO "GDM7213 cleanup_module()\n");

usb_deregister(&gdm7213_driver);

}

module_init(gdm7213_init_module);

module_exit(gdm7213_cleanup_module);

可有人说我哪里是一个bug或者提出任何解决方法吗?

+0

看:http://stackoverflow.com/questions/2538079/linux-usb-driver-probe-not-called-if-device-already-plugged –

2012-11-06 15:45:28

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值