Dear Firefly:
I encountered a problem for USB drivers that usb_register_dev do not create device under /dev
Here is the code
static char *flv_devnode(struct device *dev, umode_t *mode)
{
return kasprintf(GFP_KERNEL, “%s”, dev_name(dev));
}
static struct usb_class_driver flv_class_driver = {
.name = “flv%d”,
.fops = &flv_fops_nop,
.devnode = flv_devnode,
.minor_base = FLV_MINOR_BASE,
};
Static int flv_probe(struct usb_interface dev_if, …)
{
usb_set_intfdata(dev_if, &flv_class_driver);
retval = usb_register_dev(dev_if, &flv_class_driver);
if (retval != 0) {
/* something prevented us from registering this driver */
printk(KERN_INFO "%s() unable to get a minor for this device.\n", __func__);
usb_set_intfdata(dev_if, NULL);
goto _safe_exit;
}
}
The function usb_register_dev should create file not only under /sys/class/usbmisc/flv0, but under /dev/flv0.
However, I cannot see the device file under /dev.
I also refer to snd_register_device(), which successfully create device under /dev/snd, but can not find the key place.
Could you give me some suggestions? Thank you very much.
Thanks,