Support for UASP (USB Attached SCSI protocol)

Moderator: Lillian.W@AST

Post Reply
User avatar
Nazar78
Posts: 2058
youtube meble na wymiar Warszawa
Joined: Wed Jul 17, 2019 10:21 pm
Location: Singapore
Contact:

Support for UASP (USB Attached SCSI protocol)

Post by Nazar78 »

I hope that Asustor could look into this enhancement. Have opened a ticket with support as below...
Hi Support,

Can we request the support for UASP (USB Attached SCSI protocol) in future firmware release? This greatly improves USB storage performance that supports UAS. NAS manufacturers like Synology have long provided its support as UAS has been supported since kernel 3.15 but it is currently being disabled in the Asustor kernel 4.14.x:

root@Nimbustor4:~ # zcat /proc/config.gz | grep USB_UAS
# CONFIG_USB_UAS is not set

A performance reference can be found here https://linux-sunxi.org/USB/UAS

I've successfully compiled the kernel for the Nimbustor4 with UAS support but it's tedious to recompile, repack everytime there's a new firmware update. Thank you.
AS5304T - 16GB DDR4 - ADM-OS modded on 2GB RAM
Internal:
- 4x10TB Toshiba RAID10 Ext4-Journal=Off
External 5 Bay USB3:
- 4x2TB Seagate modded RAID0 Btrfs-Compression
- 480GB Intel SSD for modded dm-cache (initramfs auto update patch) and Apps

When posting, consider checking the box "Notify me when a reply is posted" to get faster response
User avatar
father.mande
Posts: 1815
Joined: Sat Sep 12, 2015 2:55 am
Location: La Rochelle (France)

Re: Support for UASP (USB Attached SCSI protocol)

Post by father.mande »

Hi,

If you have what is need to test ... try to load the module uas.ko here after
uas.tar
untar using tar xf uas.tar
(390 KiB) Downloaded 222 times
extract file ... then use insmod uas.ko ...

modinfo :

Code: Select all

 modinfo ./drivers/usb/storage/uas.ko
filename:       PATH_TO/drivers/usb/storage/uas.ko
author:         Hans de Goede <hdegoede@redhat.com>, Matthew Wilcox and Sarah Sharp
license:        GPL
srcversion:     A0E9BAEB8F4432846F484CD
alias:          usb:v*p*d*dc*dsc*dp*ic08isc06ip62in*
alias:          usb:v*p*d*dc*dsc*dp*ic08isc06ip50in*
alias:          usb:v4971p8024d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v4971p8017d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v4971p1012d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v357Dp7788d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2537p1068d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2109p0711d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v152Dp0578d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v152Dp0567d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v152Dp0539d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v13FDp3940d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BC2pAB2Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BC2pAB21d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BC2pAB20d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BC2pA0A4d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BC2pA013d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BC2pA003d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BC2p3320d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BC2p331Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BC2p3312d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BC2p2312d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0984p0301d0128dc*dsc*dp*ic*isc*ip*in*
depends:
intree:         Y
name:           uas
vermagic:       4.14.x SMP mod_unload modversions
insert module tested on AS5002T with last A.D.M. (not how-to use it)

Code: Select all

Module                  Size  Used by
uas                    20480  0
uvcvideo               77824  0
videobuf2_vmalloc      16384  1 uvcvideo
videobuf2_memops       16384  1 videobuf2_vmalloc
videobuf2_v4l2         24576  1 uvcvideo
videobuf2_core         40960  2 videobuf2_v4l2,uvcvideo
videodev              147456  3 videobuf2_core,videobuf2_v4l2,uvcvideo
dmesg :

Code: Select all

[329471.992031] usbcore: registered new interface driver uas
Good luck.
Philippe.
AS6602T / AS5202T /AS5002T / AS1002T / FS6706T
User avatar
Nazar78
Posts: 2058
Joined: Wed Jul 17, 2019 10:21 pm
Location: Singapore
Contact:

Re: Support for UASP (USB Attached SCSI protocol)

Post by Nazar78 »

Hi Philippe,

I don't think inserting this module alone is enough. It needs other dependencies like usbcore, scsi_mod and usb-storage. The only way I can make it work is to compile as in-kernel rather than module but this involves repacking all Asustor's builtin modules and initramfs.

But are you able to make it work using modules only? "lsusb -t" will show the driver as UAS instead of USB Storage for supported device.
AS5304T - 16GB DDR4 - ADM-OS modded on 2GB RAM
Internal:
- 4x10TB Toshiba RAID10 Ext4-Journal=Off
External 5 Bay USB3:
- 4x2TB Seagate modded RAID0 Btrfs-Compression
- 480GB Intel SSD for modded dm-cache (initramfs auto update patch) and Apps

When posting, consider checking the box "Notify me when a reply is posted" to get faster response
User avatar
father.mande
Posts: 1815
Joined: Sat Sep 12, 2015 2:55 am
Location: La Rochelle (France)

Re: Support for UASP (USB Attached SCSI protocol)

Post by father.mande »

Hi,
Nazar78 wrote:Hi Philippe,

I don't think inserting this module alone is enough. It needs other dependencies like usbcore, scsi_mod and usb-storage. The only way I can make it work is to compile as in-kernel rather than module but this involves repacking all Asustor's builtin modules and initramfs.

But are you able to make it work using modules only? "lsusb -t" will show the driver as UAS instead of USB Storage for supported device.
Seem that modules you list are builtin the kernel
usb_storage, scsi_mod and usbcore ... so uas.ko must be enough ... ???

Code: Select all

CONFIG_SCSI_MOD=y
CONFIG_USB_STORAGE=y
Philippe.
AS6602T / AS5202T /AS5002T / AS1002T / FS6706T
User avatar
Nazar78
Posts: 2058
Joined: Wed Jul 17, 2019 10:21 pm
Location: Singapore
Contact:

Re: Support for UASP (USB Attached SCSI protocol)

Post by Nazar78 »

Hi Philippe,

Yes I'm aware they are built in but think something is broken because the Asustor's kernel was built without the UAS module in the first place. I got these in the log below which the "no symbol" is not a good sign. Think it's missing the correct "Modules.symvers" from the Asustor's initial kernel when the uas.ko module was then later produced.

I successfully produced and loaded a patched btusb.ko previously but this time round by just inserting the module it doesn't work properly. Edited: Below is the uas.ko you've provided:

Code: Select all

[ 9014.879691] uas: no symbol version for module_layout
[ 9014.881340] usbcore: registered new interface driver uas
And below is when I compiled the uas.ko:

Code: Select all

[11979.486799] uas: disagrees about version of symbol usb_stor_adjust_quirks
[11979.486806] uas: Unknown symbol usb_stor_adjust_quirks (err -22)
Last edited by Nazar78 on Sun May 16, 2021 7:43 am, edited 1 time in total.
AS5304T - 16GB DDR4 - ADM-OS modded on 2GB RAM
Internal:
- 4x10TB Toshiba RAID10 Ext4-Journal=Off
External 5 Bay USB3:
- 4x2TB Seagate modded RAID0 Btrfs-Compression
- 480GB Intel SSD for modded dm-cache (initramfs auto update patch) and Apps

When posting, consider checking the box "Notify me when a reply is posted" to get faster response
User avatar
Nazar78
Posts: 2058
Joined: Wed Jul 17, 2019 10:21 pm
Location: Singapore
Contact:

Re: Support for UASP (USB Attached SCSI protocol)

Post by Nazar78 »

Below is after I compiled the UAS as in-kernel bzImage and it loads properly. But if I were to use this method, the problematic hit & miss part is when Asustor release a new firmware, I'll also need to repack both the initramfs and builtin.tgz (contains most of the KOs modules syslinked from initramfs).

Code: Select all

[    6.261332] usbcore: registered new interface driver catc
[    6.264443] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    6.265474] ehci-pci: EHCI PCI platform driver
[    6.266527] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    6.267548] ohci-pci: OHCI PCI platform driver
[    6.268680] uhci_hcd: USB Universal Host Controller Interface driver
[    6.270740] usbcore: registered new interface driver cdc_acm
[    6.271609] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[    6.272934] usbcore: registered new interface driver usblp
[    6.273897] usbcore: registered new interface driver uas
[    6.274970] usbcore: registered new interface driver usb-storage
[    6.276492] usbcore: registered new interface driver usbserial
[    6.277726] usbcore: registered new interface driver ftdi_sio
AS5304T - 16GB DDR4 - ADM-OS modded on 2GB RAM
Internal:
- 4x10TB Toshiba RAID10 Ext4-Journal=Off
External 5 Bay USB3:
- 4x2TB Seagate modded RAID0 Btrfs-Compression
- 480GB Intel SSD for modded dm-cache (initramfs auto update patch) and Apps

When posting, consider checking the box "Notify me when a reply is posted" to get faster response
User avatar
father.mande
Posts: 1815
Joined: Sat Sep 12, 2015 2:55 am
Location: La Rochelle (France)

Re: Support for UASP (USB Attached SCSI protocol)

Post by father.mande »

Hi,

I have others modules (working) with the "warning" about no symbol_version ... it's due to the not correctly /lib/modules/XXX/ folder not provide as it's necessary
But in some case ... you can use at workaround (to suppress symbol warning) ... by adding information in the modules.dep / modules.dep.bb (the same suffixed by .bb is for busybox modules tools).

BUT due to the fact I can't test UAS (if fact I don't know how and hardware need) ... my remarks must be ignored.

the second problem : uas: disagrees about version of symbol usb_stor_adjust_quirks ... is generally due to the fact that you don't use the 4.14.xx corresponding to Asustor kernel version or in some time, truncated version of modules.
ex. a same module created with subversion .100 don't have the same symbol for some modules like the .187 subversion

For my own I used only external modules (.ko) because it's generally more easy for supporting multiple NAS architecture and more easy if Asustor update the kernel ...

Philippe.
AS6602T / AS5202T /AS5002T / AS1002T / FS6706T
User avatar
Nazar78
Posts: 2058
Joined: Wed Jul 17, 2019 10:21 pm
Location: Singapore
Contact:

Re: Support for UASP (USB Attached SCSI protocol)

Post by Nazar78 »

BUT due to the fact I can't test UAS (if fact I don't know how and hardware need) ... my remarks must be ignored.
Hi Philippe,

Thanks for your reply. I'm actually trying to use the USB3 enclosure driver loaded as UAS instead of USB Storage. If the UAS module loads correctly, we should see something like this.

Code: Select all

[    9.650928] usb 1-1: New USB device found, idVendor=46f4, idProduct=0003
[    9.652220] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    9.653268] usb 1-1: Product: USB Attached SCSI HBA
[    9.653922] usb 1-1: Manufacturer: QEMU
[    9.654604] usb 1-1: SerialNumber: 27842-0000:00:04.0-1
[    9.668029] usb 1-1: UAS is blacklisted for this device, using usb-storage instead
Above log is of course I was just testing the Asustor 4.14.x kernel I compiled with in-kernel UAS support and it loads correctly. This doesn't happen when loading the uas.ko manually. For USB enclosure that supports UASP, the UAS driver will used for the performance benefits. My Asus RT-AX86U with older Merlin kernel supports UAS and I notice the performance difference on the USB3 enclosure using UAS as the driver. You can see some reference here https://linux-sunxi.org/USB/UAS.
AS5304T - 16GB DDR4 - ADM-OS modded on 2GB RAM
Internal:
- 4x10TB Toshiba RAID10 Ext4-Journal=Off
External 5 Bay USB3:
- 4x2TB Seagate modded RAID0 Btrfs-Compression
- 480GB Intel SSD for modded dm-cache (initramfs auto update patch) and Apps

When posting, consider checking the box "Notify me when a reply is posted" to get faster response
User avatar
father.mande
Posts: 1815
Joined: Sat Sep 12, 2015 2:55 am
Location: La Rochelle (France)

Re: Support for UASP (USB Attached SCSI protocol)

Post by father.mande »

Hi,

Thanks, I don't understand clearly what happens ... perhaps external module is not used because define after internal builtin ... (uas (builtin) module is registered before usb_storage module in your kernel)

So sorry to wasting your time.

Philippe.
AS6602T / AS5202T /AS5002T / AS1002T / FS6706T
User avatar
Nazar78
Posts: 2058
Joined: Wed Jul 17, 2019 10:21 pm
Location: Singapore
Contact:

Re: Support for UASP (USB Attached SCSI protocol)

Post by Nazar78 »

Hi Philippe,

No worries thanks for your great insight. I have the custom compiled kernel tested running on my Nimbustor4 NAS but with a custom initramfs so it's missing some of the ADM's stuffs, which I don't mind switching to another OS if Asustor reject this request.

Asustor support replied that they'll forward this request to the engineer team for further evaluation.

Hope they could implement this UASP kernel support in our NAS soon perhaps in the ADM 4 as it'll benefit all users who does lots of USB transfers to external enclosures. Would encourage majority to support this enhancement too.
AS5304T - 16GB DDR4 - ADM-OS modded on 2GB RAM
Internal:
- 4x10TB Toshiba RAID10 Ext4-Journal=Off
External 5 Bay USB3:
- 4x2TB Seagate modded RAID0 Btrfs-Compression
- 480GB Intel SSD for modded dm-cache (initramfs auto update patch) and Apps

When posting, consider checking the box "Notify me when a reply is posted" to get faster response
Post Reply

Return to “ADM general”