私は解決策を見つけるために午前3時まで一日中働きました。私は終わった。
私はUSB 3を搭載したRaspberry PiでUbuntuを実行しており、USBハブを介して外部ストレージを接続しました。そのうちの1つはJMicronコントローラによって制御されます。lsusb
Bus 002 Device 003: ID 152d:0567 JMicron Technology Corp. / JMicron USA Technology Corp. JMS567 SATA 6Gb/s bridge
私が見るとdmesg
ブラックリストに登録されているようです。
[ 2.134591] usb 2-2.1: new SuperSpeed Gen 1 USB device number 3 using xhci_hcd
[ 2.155251] usb 2-2.1: New USB device found, idVendor=152d, idProduct=0567, bcdDevice= 2.05
[ 2.155259] usb 2-2.1: New USB device strings: Mfr=10, Product=11, SerialNumber=5
[ 2.155264] usb 2-2.1: Product: USB to ATA/ATAPI Bridge
[ 2.155268] usb 2-2.1: Manufacturer: JMicron
[ 2.155272] usb 2-2.1: SerialNumber: 152D00539000
[ 2.169663] usb-storage 2-2.1:1.0: USB Mass Storage device detected
[ 2.169914] usb-storage 2-2.1:1.0: Quirks match for vid 152d pid 0567: 5000000
[ 2.169997] scsi host0: usb-storage 2-2.1:1.0
[ 2.170329] usbcore: registered new interface driver usb-storage
[ 2.173030] usbcore: registered new interface driver uas
インタフェースドライバ uas が登録されたと出てきます。
しかし、それは使用されていません。私はそれが特異点のためだと信じています。lsmod
与えられた
uas 28672 0
usb_storage 81920 6 uas
これが私が読む方法です。 6 uasをサポートするデバイスは、uasの代わりにusb_storageドライバを使用します。私はこれが珍しい点だと思います(私はその言葉が嫌いです)。
私はあまりにも多くを試しましたが、その多くはもはや覚えていません。脳はプリンでした。
私の目標はブラックリストのキャンセルこれらのデバイス。どうすればいいですか?
お手伝いいただける場合は、必要な情報をお知らせください。ご提供いたします。
答え1
JMicron JMS567は、少なくとも期待どおりに機能しません。したがって、uas
デバイスを有効にすると状況が良くなるとは思わないでください。
珍しい点これはファームウェアの実装のバグの回避策であり、かなり長い間JMS567に「特異点」を追加します。今後。
~によるとカーネルパラメータ文書空のクォークを設定してクォークを無効にできます。
usbcore.quirks=
[USB] A list of quirk entries to augment the built-in
usb core quirk list. List entries are separated by
commas. Each entry has the form
VendorID:ProductID:Flags. The IDs are 4-digit hex
numbers and Flags is a set of letters. Each letter
will change the built-in quirk; setting it if it is
clear and clearing it if it is set. [...]
これはusbcore.quirks
文書からのものです。USBストレージ。「消去すると設定し、設定すると消去します」という言及はありません。
とにかく、ブラックリストのキャンセル装備(下)しなければならない働く:
% sudo rmmod uas usb-storage
% sudo modprobe usb-storage quirks=152d:0567:
% sudo modprobe uas
モジュールパラメータが設定されていることを確認してください。
% cat /sys/module/usb_storage/parameters/quirks
152d:0567:
変更を永続的に適用するには(つまり、起動時にモジュールパラメータを自動的に設定する必要があります):
% echo "options usb-storage quirks=152d:0567:" | sudo tee /etc/modprobe.d/usb-storage-unblacklist.conf
% sudo update-initramfs -u -k all
カーネルがモジュールusb_storage
にロードされた場合に機能します。組み込まれている場合の対処方法については、こちらをご覧ください。https://unix.stackexchange.com/a/441772/144250