Debianを起動するたびに、ブートログに一連のxhci_hcd
の問題と次のようなメッセージが表示されます
usb 3-13: hub failed to enable device, error -22
usb 3-13: device descriptor read/8, error -61
しかし、これらのエラーコードが実際に何を意味するのかを見つけるのに苦労しています。これらすべてのエラーコードの意味が記載されている場所はありますか?
最初のものは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()
関数からのものです。
ただし、これらの種類のエラーメッセージは、実際には何があるか(「ハブがデバイスを有効にできませんでした」)よりも多くの情報をエンドユーザーに提供することを意図したものではありません。これらは、バグレポートを提出するかどうかなど、デバッグに使用されます。
問題を詳細に説明するドキュメントを希望している場合、私はあなたが運が悪いと思います。この理由の一部は、提供できるより正確で詳細な説明がない可能性があるためです。いくつかの事柄は、さまざまな不確定の潜在的な原因で同じように失敗する可能性があります。
エラーコードの原因は、問題のハブのソースコードにあります。
例えば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 */
errno
プログラム(moreutils
パッケージの一部)は、エラー番号を対応する名前に変換します。
$ errno 61
ENODATA 61 No data available