1 (edytowany przez dzyndzla 2026-01-15 17:23:54)

Temat: Jak wyłączyć sterownik uas i wymusić usb-storage?

Heja,
mam dysk zewnętrzny HDD Seagate Expansion, znany z tego, że na Linuksie nie obsługuje SMART, jeżeli działa na sterowniku uas.
Rozwiązanie polega na przekazaniu parametru "0bc2:0x2036:u" do jądra i wymuszenie usb-storage, i o ile na wszystkich linuksach, jakie mam, udało mi się to zrobić, o tyle na OpenWrt nie działa to w ogóle; z tego, co wyczytałem, ładowanie modułu uas w trakcie bootowania następuje w OpenWrt później, niż przekazanie parametru do jądra, efekt jest taki, że po każdym restarcie routera trzeba wpiąć i wypiąć wtyk, żeby to zadziałało.

sterownik:

root@skynet:~# lsusb -t
/:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd/1p, 480M
/:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd/1p, 5000M
    |__ Port 001: Dev 002, If 0, Class=[unknown], [b]Driver=uas[/b], 5000M
/:  Bus 003.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd/1p, 480M

urządzenie:

root@skynet:~# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux 6.12.63 xhci-hcd xHCI Host Controller
Bus 002 Device 001: ID 1d6b:0003 Linux 6.12.63 xhci-hcd xHCI Host Controller
Bus 002 Device 002: ID [b]0bc2:2036[/b] Seagate Expansion HDD
Bus 003 Device 001: ID 1d6b:0002 Linux 6.12.63 xhci-hcd xHCI Host Controller

echo w rc.local:

root@skynet:~# cat /etc/rc.local 
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

echo "0bc2:0x2036:u" > /sys/module/usb_storage/parameters/quirks

exit 0

quirk

root@skynet:~# cat /sys/module/usb_storage/parameters/quirks
0bc2:0x2036:u

próbowałem też tak:

root@skynet:~# cat /etc/modules.d/usb-storage
usb-storage quirks=0bc2:2036:u

i tak:

root@skynet:~# cat /etc/modules.conf 
# examples:
# options mod1 option=val
 blacklist uas

i absolutnie nic nie działa :-)

Jak mogę ten uas wyłączyć?
W sieci jest sporo materiałów, ale zasadniczo nic mi nie zadziałało. Jest niby coś takiego, ale to straszna czeczenia:
https://github.com/openwrt/openwrt/issues/8694

EDIT: próbowałem też wyrzucać cały moduł usb-storage-uas - podobnie, bez efektu

Linksys MR8300 V1.1 / Linksys WRT1200AC V2 / TP-Link Archer C7 V5

2

Odp: Jak wyłączyć sterownik uas i wymusić usb-storage?

Jeżeli to ostatni openwrt to w /etc/modules.conf dodaj

options usb-storage quirks=0bc2:2036:u

A uas po prostu odinstaluj, to jest moduł.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3 (edytowany przez dzyndzla 2026-01-15 18:34:36)

Odp: Jak wyłączyć sterownik uas i wymusić usb-storage?

Dzięki Cezary za sugestię, niestety modules.conf nie zadziałał:

root@skynet:~# lsusb -t
/:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd/1p, 480M
/:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd/1p, 5000M
    |__ Port 001: Dev 002, If 0, Class=[unknown], Driver=uas, 5000M
/:  Bus 003.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd/1p, 480M
root@skynet:~# cat /etc/modules.conf 
# examples:
# options mod1 option=val
# blacklist uas
options usb-storage quirks=0bc2:2036:u
root@skynet:~# cat /sys/module/usb_storage/parameters/quirks
root@skynet:~# cat /etc/modules.d/usb-storage
usb-storage

a moduł uas to sporo zależności:

root@skynet:~# apk del kmod-usb-storage-uas
World updated, but the following packages are not removed due to:
  kmod-usb-storage-uas: ekooneplusb-luci

OK: 38.5 MiB in 354 packages
root@skynet:~# apk info -R ekooneplusb-luci
ekooneplusb-luci-20250123-r1 depends on:
comgt
comgt-ncm
ekooneplusb
kmod-usb-acm
kmod-usb-net
kmod-usb-net-cdc-ether
kmod-usb-net-cdc-mbim
kmod-usb-net-cdc-ncm
kmod-usb-net-huawei-cdc-ncm
kmod-usb-net-qmi-wwan
kmod-usb-net-rndis
kmod-usb-printer
kmod-usb-serial
kmod-usb-serial-option
kmod-usb-serial-qualcomm
kmod-usb-serial-sierrawireless
ksmbd-server
libc
luci-app-ksmbd
luci-app-p910nd
luci-i18n-ksmbd-pl
luci-i18n-p910nd-pl
luci-proto-3g
luci-proto-mbim
luci-proto-ncm
luci-proto-qmi
p910nd
umbim
uqmi
usb-modeswitch
wsdd2

zabawa na weekend

Linksys MR8300 V1.1 / Linksys WRT1200AC V2 / TP-Link Archer C7 V5

4

Odp: Jak wyłączyć sterownik uas i wymusić usb-storage?

To fizycznie wywal moduł z dysku.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: Jak wyłączyć sterownik uas i wymusić usb-storage?

tak na pałę?

root@skynet # mv /lib/modules/6.12.63/uas.ko /lib/modules/6.12.63/uas.ko.disabled

włączy się router po takim zabiegu?

Linksys MR8300 V1.1 / Linksys WRT1200AC V2 / TP-Link Archer C7 V5

6

Odp: Jak wyłączyć sterownik uas i wymusić usb-storage?

mv /lib/modules/6.12.63/uas.ko /root/uas.ko.disabled

Tak po prostu, tak.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: Jak wyłączyć sterownik uas i wymusić usb-storage?

uparte

root@skynet:~# ls /lib/modules/6.12.63/u*
/lib/modules/6.12.63/udp_tunnel.ko   /lib/modules/6.12.63/usblp.ko
/lib/modules/6.12.63/usb-storage.ko  /lib/modules/6.12.63/usbnet.ko
/lib/modules/6.12.63/usb_wwan.ko     /lib/modules/6.12.63/usbserial.ko
root@skynet:~# ls /root/*
/root/uas.ko.disabled
root@skynet:~# lsusb -t | grep uas
    |__ Port 001: Dev 002, If 0, Class=[unknown], Driver=uas, 5000M
root@skynet:~# dmesg | grep uas
[    0.000000] Kernel command line: init=/sbin/init rootfstype=ubifs ubi.mtd=11,2048 root=ubi0:ubifs rootwait rw root=/dev/ubiblock0_0 rootfstype=squashfs ro
[    0.101205] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    1.487330] mtdsplit: no squashfs found in "rootfs"
[    2.934325] VFS: Mounted root (squashfs filesystem) readonly on device 254:0.
[    5.434060] usbcore: registered new interface driver uas
[    6.581157] scsi host0: uas
[   14.128416] kmodloader: failed to open /tmp/overlay/upper/lib/modules/6.12.63/uas.ko

skądś indziej ten driver uas się ładuje?

Linksys MR8300 V1.1 / Linksys WRT1200AC V2 / TP-Link Archer C7 V5

8

Odp: Jak wyłączyć sterownik uas i wymusić usb-storage?

No nie może się ładować jak go nie ma smile

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9 (edytowany przez dzyndzla 2026-01-17 12:38:07)

Odp: Jak wyłączyć sterownik uas i wymusić usb-storage?

Dzięki Cezary, nic z tego nie zadziałało; ostatecznie zrobiłem minimalny build (minimum + luci + wg + NAS + USB), musiałem później doinstalować kmod-usb-storage i dodać serwis init.d:

root@skynet:# cat /etc/init.d/usb-hdd-rebind 
#!/bin/sh /etc/rc.common

START=10

boot() {
    echo "0bc2:2036:u" > /sys/module/usb_storage/parameters/quirks
    echo "2-0:1.0" > /sys/bus/usb/drivers/hub/unbind
    echo "2-0:1.0" > /sys/bus/usb/drivers/hub/bind
}

bez quirka i rebindingu nie przypisuje drivera, ostateczna sekwencja wygląda tak, zostawiam, może komuś się przyda:

root@skynet:# dmesg | grep usb
[    0.077121] usbcore: registered new interface driver usbfs
[    0.077189] usbcore: registered new interface driver hub
[    0.077250] usbcore: registered new device driver usb
[    0.433230] tcsr 194b000.tcsr: setting usb hs phy mode select = e700e7
[    5.002048] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    6.060533] usb 2-1: new SuperSpeed USB device number 2 using xhci-hcd
[   13.456106] usbcore: registered new interface driver usb-storage
[   25.061686] usb 2-1: USB disconnect, device number 2
[   25.370505] usb 2-1: new SuperSpeed USB device number 3 using xhci-hcd
[   25.393690] usb 2-1: UAS is ignored for this device, using usb-storage instead
[   25.393778] usb-storage 2-1:1.0: USB Mass Storage device detected
[   25.400858] usb-storage 2-1:1.0: Quirks match for vid 0bc2 pid 2036: 800000
[   25.406302] scsi host0: usb-storage 2-1:1.0
Linksys MR8300 V1.1 / Linksys WRT1200AC V2 / TP-Link Archer C7 V5

10

Odp: Jak wyłączyć sterownik uas i wymusić usb-storage?

Tak swoją drogą po co ta męka? Tylko żeby smarta mieć?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: Jak wyłączyć sterownik uas i wymusić usb-storage?

Bynajmniej; z uas ten dysk wciąga połowę prędkości transferu, co na usb-storage; gdyby chodziło o sam smart, to bym to odpuścił.

Linksys MR8300 V1.1 / Linksys WRT1200AC V2 / TP-Link Archer C7 V5