私のストレージデバイスをブラックリストに載せるアイテムを見つける方法

私のストレージデバイスをブラックリストに載せるアイテムを見つける方法

私は解決策を見つけるために午前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 ドキュメント:

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

関連情報