LINUX.ORG.RU

Отключить UAS для всех юсб-усройств.

 , uas,


0

1

Воюю с неприятным багом ЮСБ3 на Raspberry Pi 4.

Суть в том, что при активном i/o всё падает и помогает только ребут. Планы А и Б уже не помогли, план С состоит в том, чтобы отклчить UAS и это вроде как длжо помочь. Проблема - отключать его надо пераметром ядра при загрузке, причём для каждого конкретного устройства по его идентификаторам.

Нагуглил предложение вписать в строку параметров ядра usbcore.quirks=usb-storage:uas, но это не помогло (в смысле UAS не отключен).

Кто нибудь в курсе как это работает и отключается?

★★★★★

При активном i/o должна возрастать потребляемая мощность.

У тебя БП обеспечивает её? А провода питания нормальные?

Оно у тебя с охлаждением?

Я бы пробовал подключать к RP4 все через usb-хаб со своим питанием.

vel ★★★★★
()
Ответ на: комментарий от vel

У тебя БП обеспечивает её? А провода питания нормальные?

Конкретно тут баг с несовместимостью некоторых usb-uas адаптеров с usb-контроллером малины, сам с этим сталкивался.

По теме: заблеклистить модуль uas не вариант?

whbex ★★
()

строку параметров ядра usbcore.quirks=usb-storage:uas

То что я видел в сети, имеет примерно такой вид с указанием id устройства usb-storage.quirks=2109:0715:u.

upd. В названии темы «Отключить UAS для всех юсб-усройств», не увидел сразу. )

krasnh ★★★★
()
Последнее исправление: krasnh (всего исправлений: 2)
Ответ на: комментарий от whbex

Не только малины кстати. Багнутый контролер юсб, его пытаются починить прошивками, но нифига.

Известно что то про это? Насколько я понял это расширение драйвера usb mass-storage и блеклистится не он вообще, а конкретное устройство с передачей ему параметров quirks.

kirill_rrr ★★★★★
() автор топика
Ответ на: комментарий от kirill_rrr

блеклистится не он вообще

Я про блеклист в конфиге modprobe.

Самому пока лень проверять, лишнего пустого HDD нет, куда бы можно было систему накатить, а SD-карту от малины куда-то посеял.

Сейчас вот:

[whbex@wbx-desktop ~]$ lsmod | grep uas
uas                    32768  0
usb_storage            94208  1 uas
[24093.341997] usbcore: registered new interface driver usb-storage
[24093.344981] usbcore: registered new interface driver uas

после modprobe uas.

whbex ★★
()
Последнее исправление: whbex (всего исправлений: 1)
Ответ на: комментарий от whbex
root@raspberrypi:~# dmesg | grep uas
[    0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_headphones=0 snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_hdmi=0 video=HDMI-A-1:1920x1080M@60 video=HDMI-A-2:1400x1050M@60 smsc95xx.macaddr=DC:A6:32:50:D4:F1 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  console=ttyS0,115200 console=tty1 root=PARTUUID=d0093179-02 rootfstype=ext4 fsck.repair=yes rootwait usbcore.quirks=usb-storage:uas
[    1.528650] usbcore: registered new interface driver uas
[    2.519998] scsi host0: uas
[   44.036101] sd 0:0:0:0: [sda] tag#28 uas_eh_abort_handler 0 uas-tag 6 inflight: CMD IN 
[   44.036553] sd 0:0:0:0: [sda] tag#27 uas_eh_abort_handler 0 uas-tag 5 inflight: CMD IN 

pekmop1024 Вообще в принципе он есть в ядре. Но не модулем.

kirill_rrr ★★★★★
() автор топика
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от whbex

intelfx

initcall_blacklist=uas_init вроде бы срабатывает.

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
        |__ Port 2: Dev 4, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
    |__ Port 2: Dev 3, If 0, Class=Mass Storage, Driver=, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 3: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 4: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 4: Dev 5, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
root@raspberrypi:~# lsusb
Bus 002 Device 003: ID 7825:a2a4 Other World Computing External SATA Hard Drive Adapter cable PA023U3
Bus 002 Device 004: ID 0951:16ae Kingston Technology DT microDuo 3C
Bus 002 Device 002: ID 2109:0817 VIA Labs, Inc. USB3.0 Hub             
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 1c4f:0002 SiGma Micro Keyboard TRACER Gamma Ivory
Bus 001 Device 004: ID 09da:9090 A4Tech Co., Ltd. XL-730K / XL-750BK / XL-755BK Mice
Bus 001 Device 003: ID 2109:2817 VIA Labs, Inc. USB2.0 Hub             
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Для sda используется масс-сторэдж, вот только sda это флешка в хабе, а Port 2: Dev 3 (SSD) не подхватывается вообще, хотя адаптер якобы виден.

kirill_rrr ★★★★★
() автор топика
Ответ на: комментарий от kirill_rrr

Если не получается общего параметра, то можно, типа, автоопределения id на лету и подстановкой в usb-storage.quirks=****:****:u. Как это реализуемо не задавался вопросом, но для uuid это делается силами grub, через переменные:

search --set=root ...
probe -s uuid -u $root

linux / .... root=UUID=${uuid}

upd. Но случай возможно сложнее, чем я могу представить: )

Мне пришлось бы прописать каждый диск и флешку отдельно.

krasnh ★★★★
()
Последнее исправление: krasnh (всего исправлений: 1)
Ответ на: комментарий от krasnh

Если я правильно понял, это Граб определит диски и передаст ядру несколько конкретных. Меня интересует отключение uas вообще, для всего что я возможно воткну в будущем. Ну и на малине нет Граба.

kirill_rrr ★★★★★
() автор топика
Ответ на: комментарий от intelfx

мдя. кстати, тут заметил такую особенность, что частично это от самого M.2 зависит - есть одно такое SATA, падает при массовых чтениях, в основном на AMD. при том, что пишет нормально. вангую, что питание.

mumpster ★★★★★
()