Apakah yang dimaksud dengan reset perangkat USB?

20

Saya memiliki perangkat lunak baru RAID-1 yang dibangun dengan dua drive USB eksternal WD Elements, dan saya dapat melihat bahwa Linux mengulangi pesan berikut sedikit:

...
[302148.036912] usb 1-3.1: reset high-speed USB device number 19 using ehci_hcd
[302153.052029] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302186.031481] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302217.050210] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302281.043543] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302312.090158] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302351.076851] usb 1-3.1: reset high-speed USB device number 19 using ehci_hcd
...

Jadi, apa isinya? Apakah ini normal? Apakah ini masalah yang harus saya coba perbaiki?

Perbarui
Sebenarnya, pesan-pesan ini bukan untuk drive yang saya pikir. Saya memiliki banyak drive USB lain yang terhubung ke komputer ini melalui hub USB juga. Lagi pula, pertanyaan saya pada dasarnya adalah apa arti pesan ini dalam bahasa Inggris yang sederhana?

ILIV
sumber
3
Membuat RAID dari drive USB sepertinya bukan ide yang bagus. RAID adalah semua drive Anda yang andal, dan USB adalah tentang hot plugging dan unplugging devices. Karena Anda menggunakan RAID-1, itu tidak terlalu buruk, tetapi juga bukan ide yang bagus.
mvp
1
Tidak ada yang salah dengan menggunakan perangkat USB dalam konfigurasi RAID. Ini adalah ide yang sangat masuk akal, apalagi ketika seseorang menganggap bahwa itu adalah komputer rumah, bukan server perusahaan. Anda dapat memperdebatkan batasan throughput USB, tetapi itu bukan masalah bagi saya secara pribadi. Serangan ini adalah pendekatan malas untuk solusi cadangan lebih dari apapun.
ILIV
1
Anda mengindikasikan bahwa drive Anda terhubung ke port USB notebook. Katakan apa yang Anda inginkan, tetapi ini hanyalah bom waktu yang menunggu untuk meledak. Juga, jika perangkat Anda adalah USB3, kernel harus menggunakan xhci_hcd. Jika menggunakan ehci_hcd, itu berarti perangkat Anda berjalan dengan kecepatan USB2.
mvp
1
Mengapa itu "bom waktu"?
ILIV
2
Begitu ya, lain kali, tolong, coba cari alasan yang sebenarnya untuk menyebut sesuatu bom waktu. Sebagai catatan, saya tidak punya kucing, atau hewan peliharaan lain, saya tidak pernah menarik kabel, notebook ini tetap menjadi alat tulis selama beberapa tahun sekarang, kemungkinan port USB terbakar hampir sama dengan peluang memiliki koneksi langsung menjadi rusak, "sesuatu yang lain" itu lucu, dapat terjadi bahkan pada server perusahaan yang paling lengkap dikonfigurasi dan diinstal. Jadi, berhentilah bersikap begitu paranoid. Ini adalah RAID-1. Memiliki 2 disk keluar sekaligus, sangat tidak mungkin. Ini adalah solusi yang solid. Titik.
ILIV

Jawaban:

22

Biarkan aku mencoba.

Secara harfiah pesan mengatakan bahwa Linux USB stack telah mengeluarkan "USB_RESET" ke perangkat khusus Anda (perangkat # 19 dan # 20, apa pun itu). Kesalahan tampaknya terjadi sekali per 10-30 detik. Setelah reset, log harus memiliki pesan enumerasi baru, karena reset USB akan memaksa perangkat yang terhubung ke "keadaan default". Sepertinya verbositas log Anda sangat berkurang.

Menyetel ulang perangkat USB di tengah operasi adalah situasi yang cukup drastis. Controller menggunakan reset "port" ini jika mengalami "kesalahan transaksi". Kesalahan transaksi terjadi ketika tautan tidak menyelesaikan semua fase transaksi USB yang disyaratkan, atau memiliki kesalahan CRC. Pada USB normal, pengontrol EHCI secara otomatis akan mencoba kembali transaksi gagal (tipikal maksimum 3 kali), dan kemudian akan mengatur interupsi XACT_ERROR. Secara statistik, berdasarkan teori kesalahan, jika tautan tidak merespons dengan baik tiga upaya berturut-turut, ada yang salah dengan segmen USB tertentu, sebagian besar elektrik. Jadi kesalahan transaksi dianggap fatal, dan perangkat lunak mencoba memulihkan tautan. Jika pohon-empat upaya untuk memulihkan tautan gagal, tuan rumah menganggap port ini sudah mati, dan berhenti.

Namun di Linux, seseorang telah memutuskan bahwa 3 upaya teoritis tidak cukup, dan perangkat lunak Linux melakukan 32 upaya tambahan (tiga puluh dua), menjadikannya 96 (!!!) total. Jika tautan perangkat keras secara elektrik marjinal, upaya 96 mungkin berhasil dalam 99,99% dari waktu. Pakar perangkat lunak Linux mengklaim bahwa ini membantu meningkatkan operabilitas perangkat / kabel yang dipertanyakan. Intinya, teknik ini menyembunyikan masalah serius dengan koneksi USB khusus ini, yang tidak membantu pengguna dalam jangka panjang.

Masalahnya bisa pada pasokan tegangan marginal (VBUS) ke drive, atau gangguan VBUS, atau degradasi sinyal pada kabel sinyal. Saya akan mencoba kabel bersertifikasi berkualitas tinggi yang sangat pendek terlebih dahulu, dan memeriksa apakah statistik kesalahannya berubah.

Ale..chenski
sumber
Ringkasan super, terima kasih! Beberapa sumber tambahan akan keren.
Christian Benke
1
Apakah Anda tahu jika itu mungkin untuk meningkatkan jumlah percobaan yang dilakukan oleh ehci_hcdmodul? Atau mungkinkah untuk memaksa ohci_hcdperangkat tertentu (mis. /dev/sdaDitangani oleh ehci_hcddan "bermasalah" /dev/sdbditangani oleh ohci_hcd)?
dma_k
5

Kesalahan ini dijelaskan dalam artikel Linux: Reset Perangkat USB Berkecepatan Tinggi Menggunakan ehci_hcd Kesalahan dan Solusi :

Kesalahan ini menunjukkan bahwa USB 2.0 mungkin tidak berfungsi pada sistem Anda, atau hanya dapat berfungsi pada kecepatan USB 1.1. Untuk memperbaiki masalah ini:

  1. Ganti perangkat keras: Dalam kebanyakan kasus, Anda harus mengganti motherboard.
  2. Hapus driver ehci_hcd
  3. Nonaktifkan ehci_hcd drive antarmuka USB 2.0 dan gunakan sebagai USB 1.1. Singkatnya nonaktifkan ehci_hcd.

Jika Anda tidak ingin mengganti motherboard, untuk menghapus Driver ehci_hcd edit file /etc/modprobe.d/blacklist.conf dan tambahkan baris:

blacklist ehci_hcd

Akhirnya, gunakan skrip mkinitrd untuk membangun struktur direktori yang dapat berfungsi sebagai sistem file root initrd tanpa ehci_hcd:

# mkinitrd -o /boot/initrd.$(uname -r).img $(uname -r)

Reboot sebagai tes.

Artikel dengan instruksi serupa adalah: Mengapa kesalahan "kernel: usb 1-2.2: reset perangkat USB kecepatan tinggi menggunakan ehci_hcd dan alamat 6" ditulis ke file / var / log / messages?

harrymc
sumber