はじめてメールします。田崎と申します。
作成したUSBデバイス・ドライバの登録についてお聞きします。
CPU Pentium4
ディストリビューション Vine Linux 2.5(kernel 2.4.18)
計測機器とPCをUSB1.1で通信したく、PC側のドライバを作成しています。
以下の手順で作成を行いました。
1.デバイスノードの作成
#mknod /dev/usbdrv1 c 180 100
/devに usbdrv1が出来ました。
2.ドライバをコンパイルして、
usbdrv1.o出来ました。
ドライバ登録部分は、以下のとおりです。
static struct usb_driver usbdrv1_data = {
name: "usbdrv1",
probe: usbdrv1_probe,
disconnect: usbdrv1_disconnect,
fops: &usbdrv1_fileopes,
minor: USBDRV1_MINOR,
};
int __init usb33_init(void)
{
if (usb_register(&usbdrv1_data) < 0) {
return -1;
}
return 0;
}
void __exit usb33_exit(void)
{
usb_deregister(&usb33_data);
}
int init_module(void) { return( usbdrv1_init()); }
void cleanup_module(void) { usbdrv1_exit(); }
3.
#modprobe usb-uhci
/lib/modules/2.4.18-0vl3/kernel/drivers/usb/usb-uhci.o: init_module: No
such device
/lib/modules/2.4.18-0vl3/kernel/drivers/usb/usb-uhci.o: insmod
/lib/modules/2.4.18- 0vl3/kernel/drivers/usb/usb-uhci.o failed
/lib/modules/2.4.18-0vl3/kernel/drivers/usb/usb-uhci.o: insmod usb-uhci
failed
Hint: insmod errors can be caused by incorrect module parameters,
including invalid IO or IRQ parameters
なにか失敗しているみたいです。
#modprobe uhci
これだとOKみたいです。
※#lsmodでは、
Module Size Used by Tainted: P
uhci 23600 0 (unused)
なので、uhciは機能しているようです。
4.ここで登録しようとすると、エラーになってしまいました。
#insmod usbdrv1.o
Warning: loading usbdrv1.o will taint the kernel: no license
usbdrv1.o: init_module: Operation not permitted
Hint: insmod errors can be caused by incorrect module parameters,
including invalid IO or IRQ parameters
init_moduleで、usb_register関数が失敗してしいるようですが,原因がわかり
ません。
※USBを接続して、#cat /proc/bus/usc/devices で、
相手のベンダID,プロダクトID等は認識できています。
ただし、Driver=(none)となっていますが。
よろしくお願いします。