デフォルトでは、パブリックテストUSBドライバをバインドしようとしています。フラッグハブ。基本的に自分でテストしたい場合は、非常にシンプルなUSBドライバです。
私が行ったステップは次のとおりです。
lsusb -t
USB接続用のバスとポートを見つけるために使用されます。私は知った1-3
。- 私はそこに行き、
/sys/bus/usb/devices
それを見つけ、1-3
それが製本されていることを発見しましたdrivers/usb
。 - バインド解除に使用されます
echo 1-3 > unbind
。正常にバインディングを解除できました。 devices
フォルダに移動して、1-3
まだバインドされているアイテムがあることを確認してください。いいえ。- 名前付きマイドライバーディレクトリに移動します。
hello_driver
- これを試しましたが、
echo 1-3 > bind
エラーメッセージが表示されますecho: write error: No such device
lsusb -t
役に立つなら、結果は次のようになります。
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
|__ Port 4: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 480M
|__ Port 3: Dev 15, If 0, Class=Mass Storage, Driver=, 480M
|__ Port 4: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 3: Dev 5, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 3: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 2: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 10: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 10: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M
何が問題なのかよく分からない。他の人がこの質問をしましたが、彼らの解決策が私の状況に役立たなかったことを知っています。このエラーは私のドライバでのみ表示され、他のドライバでは表示されないようです。ありがとうございます。
答え1
私は同じ問題に直面しました。私の場合は、USBデバイスを製品とベンダーIDと共にドライバコードに登録する必要がありました。
const struct usb_device_id etx_usb_table[] = {
{USB_DEVICE(USB_PRODUCT_ID, USB_VENDOR_ID)},
{}
};
;
MODULE_DEVICE_TABLE(usb, etx_usb_table);
「該当デバイスがありません」というエラーが発生するところのようです。デバイスを世界中で検索していますが、見つかりませんでした。