Debian を起動するたびに、起動ログには次のようなxhci_hcd
さまざまな問題やメッセージが表示されます。
usb 3-13: hub failed to enable device, error -22
usb 3-13: device descriptor read/8, error -61
しかし、これらのエラーコードが実際に何を意味するのかを理解するのに問題があります。これらのすべてのエラーコードが何を意味するのかをリストしていますか?
答え1
このerrno
プログラム(パッケージの一部moreutils
)はエラー番号をその名前に変換します。
$ errno 61
ENODATA 61 No data available
答え2
1つ目はEINVAL(標準POSIX Cエラー)の反転です。ご質問があれば[src]/drivers/usb/core/hub.c
(3.19節)の4218行目をご覧ください。
4217 if (udev->state != USB_STATE_DEFAULT)
4218 return -EINVAL;
hub_port_init()
同じファイルの他の機能です。
ただし、このタイプのエラーメッセージは、実際にエンドユーザーにすでに提供されている情報(「ハブはデバイスをアクティブにできません」)よりも多くの情報を提供するためのものではありません。デバッグに使用され、バグレポートを送信するかどうかを含めることができます。
問題を詳しく説明する文書が欲しいなら運がないと思います。その理由の1つは、より正確で詳細な説明を提供できないためです。不特定範囲の根本的な原因により、一部の操作が同じ方法で失敗する可能性があります。
答え3
エラーコードのソースは、対応するハブのソースコードで確認できます。
例えば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 */
その意味を発見するだろう一部エラーコードは次のとおりです。/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 */