USB 3.xフラッシュドライブを挿入して取り外すと、USB 3.2 SSD速度が「修正」されます(以前は2.0速度で実行)。

USB 3.xフラッシュドライブを挿入して取り外すと、USB 3.2 SSD速度が「修正」されます(以前は2.0速度で実行)。

私は最近、SanDisk 2TB Extreme PROポータブルSSD(モデルSDSSDE81-2t00)を購入しました。 Linuxシステムに接続し、バックアップを実行した後に遅く実行されることがわかりました。ddかなり低い速度(50MBps未満)を示すいくつかのテストを経た後、実行してみるとlsusb -t「高速」USB 2.0である480Mが報告されました。

$ lsusb
Bus 001 Device 002: ID 8087:8001 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 005: ID 04f2:b449 Chicony Electronics Co., Ltd Integrated Camera
Bus 002 Device 003: ID 138a:0017 Validity Sensors, Inc. VFS 5011 fingerprint sensor
Bus 002 Device 011: ID 0781:55af SanDisk Corp. Extreme Pro 55AF      <--- here
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$ lsusb -t
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/11p, 480M
    |__ Port 1: Dev 11, If 0, Class=Mass Storage, Driver=uas, 480M      <--- here
    |__ Port 6: Dev 3, If 0, Class=Vendor Specific Class, Driver=, 12M
    |__ Port 8: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 8: Dev 5, If 1, Class=Video, Driver=uvcvideo, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M

追加のトラブルシューティング後に動作することが知られているUSB 3.xフラッシュドライブを接続しましたが、速度は正しく5000Mとマークされています。

$ lsusb -t
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
    |__ Port 1: Dev 18, If 0, Class=Mass Storage, Driver=usb-storage, 5000M     <--- here
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/11p, 480M
    |__ Port 6: Dev 3, If 0, Class=Vendor Specific Class, Driver=, 12M
    |__ Port 8: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 8: Dev 5, If 1, Class=Video, Driver=uvcvideo, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M

その後、新しいSSDを再接続しましたが、速度は5000Mと報告されました!別のLinuxボックスでこのテストを確認しましたが、同じ結果が出ました。カーネルは次のとおりです

  • 4.19.107(アンレード・サーバー)
  • 5.4.0-64-ユニバーサル(Ubuntu)

Driver=uas運転者が低速で走行し、Driver=usb-storage退勤後運転状態に切り替えた点も注目に値する。カーネルモジュールがまだロードされていませんが、フラッシュドライブによってロードが発生していますか?

簡単に言うと:

  1. 新しいSSDはUSB 2.0の速度を示しています(実際に報告されているようにlsusb)。
  2. SSDを取り外し、USB 3.0フラッシュドライブを挿入したら、フラッシュドライブを取り外してSSDを再挿入します。
  3. これでSSD速度が正確です(実際にはもちろんまでlsusb)。
  4. 両方のコンピュータで再現可能

なぜこれが起こるのですか?さらに、どのようなトラブルシューティングを行うことができますか?これがLinuxカーネルのバグであれば、正しく報告するのに十分な情報を収集したいと思います。

ベストアンサー1

私のカーネルモジュール理論が正しいという部分的な答えがあります。lsmodサムドライブの挿入/削除トリックの前後の出力を比較しましたが、結果は非常に明確です。

$ diff lsmod.txt lsmod.txt2
36c36
< usb_storage            77824  1 uas
---
> usb_storage            77824  4 uas

以下を介してこのステータスをコピーした後:

$ sudo modprobe usb_storage

追加のトリックなしでドライブを最大速度で実行できます。

より詳細な情報を提供できる他の回答を歓迎します。

おすすめ記事