web-dev-qa-db-ja.com

USBエラーコードのリストはどこにありますか?

Debianを起動するたびに、ブートログに一連のxhci_hcdの問題と次のようなメッセージが表示されます

usb 3-13: hub failed to enable device, error -22
usb 3-13: device descriptor read/8, error -61

しかし、これらのエラーコードが実際に何を意味するのかを見つけるのに苦労しています。これらすべてのエラーコードの意味が記載されている場所はありますか?

5
Eric Dand

最初のものはEINVAL(標準のPOSIX Cエラー)を反転したものです。興味があれば、それは_[src]/drivers/usb/core/hub.c_(v。3.19)の4218行目です:

_4217     if (udev->state != USB_STATE_DEFAULT)
4218         return -EINVAL;
_

もう1つは、同じファイルのhub_port_init()関数からのものです。

ただし、これらの種類のエラーメッセージは、実際には何があるか(「ハブがデバイスを有効にできませんでした」)よりも多くの情報をエンドユーザーに提供することを意図したものではありません。これらは、バグレポートを提出するかどうかなど、デバッグに使用されます。

問題を詳細に説明するドキュメントを希望している場合、私はあなたが運が悪いと思います。この理由の一部は、提供できるより正確で詳細な説明がない可能性があるためです。いくつかの事柄は、さまざまな不確定の潜在的な原因で同じように失敗する可能性があります。

3
goldilocks

エラーコードの原因は、問題のハブのソースコードにあります。

例えばgrep -A 1 -m 1 22 /usr/src/linux-source-4.3/drivers/usb/Host/xhci.h

#define PORT_PLC        (1 << 22)
/* port configure error change - port failed to configure its link partner */

someエラーコードの意味は/ usr/src/linux-source- $ yourKernel/Documentation/usb/error-codes.txtにあります

例えば.

-EINVAL         a) Invalid transfer type specified (or not supported)
                b) Invalid or unsupported periodic transfer interval
                c) ISO: attempted to change transfer interval
                d) ISO: number_of_packets is < 0
                e) various other cases

(および)ISO madness, if this happens: Log off and go home


61エラーの場合:-/ usr/src/linux-headers-4.3.0-0.bpo.1-common/include/uapi/asm-generic/errno.h

#define ENODATA         61      /* No data available */
4
user2699781

errnoプログラム(moreutilsパッケージの一部)は、エラー番号を対応する名前に変換します。

    $ errno 61
    ENODATA 61 No data available
3
Chris Ostler