如何找出哪些内容将我的存储设备列入黑名单

如何找出哪些内容将我的存储设备列入黑名单

我一整天都在努力寻找解决方案,直到凌晨 3 点。我熟了。

我在带有 USB 3 的 Raspberry Pi 上运行 Ubuntu,并通过 USB 集线器将一些外部存储设备连接到它。其中之一由 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 的设备使用 usb_storage 驱动程序而不是 uas。我相信这是因为怪癖(我讨厌这个词)。

我尝试了很多事情,其中​​很多我已经不记得了,大脑是布丁。

我的目标是取消黑名单这些设备。我怎样才能做到这一点?

如果您能提供帮助,请告诉我您需要的任何信息,我将提供。

答案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 存储.quirks没有提到“如果清除则设置它,如果设置则清除它”。

无论如何,为了取消黑名单设备,以下应该工作:

% 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

相关内容