[Edit:] ARM / aarch64 missing USB UAS(P) kernel module for storage devices (SSD discard, fstrim etc. + speed)

Hello,
I see the a daily cronjob that is nicely trying to do fstrim.

Though, I don’t seem to be able to get it to work with USB connected SSDs (probably same with “shingled” SMR disks) that support it when connected to other machines. I could only find out that there does not seem to be a “uas” kernel module.

lsusb -t does not show the uas driver for the device, and modprobe uas fails.
Is it maybe available somehow or somewhere?

Hi @df-h

I had a look in the source code for the kernel setup for IPFire and CONFIG_USB_UAS=y is defined for x86_64 and i586. The y means that the module is not only installed but loaded as standard.

modinfo uas shows it as builtin on my x86_64 system.

If you are using an arm or aarch64 system then CONFIG_USB_UAS is not set so the module is not installed.

Ok, that’s what it is. Thanks!
Could the uas module maybe be enabled for the next release?

I am not sure if that will help you.

It seems that the lsusb -t shows you what your usb storage is capable of supporting. It should show uas if it can support uas otherwise it will show usb-storage in which case I believe it doesn’t support uas even if the module was available.

In terms of having the uas module in aarch64, I have no idea if it is possible.

Usually, if the modules are present in some architectures and not in others it is an indication that there are some issues with that module in those architectures. One of the IPFire devs would need to comment on that.

Thank you for explaining, hopefully a dev can shed some light on this.

The USB enclosure and SSD lists and works with UAS when connected to the desktop.
[Edit: And blkdiscard was able to reset the SSD before flashing the ipfire image.]

Found a similar, positive thread to include the module (though on odroid C4): [SOLVED+TIP] Driver=usb-storage vs Driver=uas on C4 - ODROID

I noticed that the AHCI module has also only been added to the kernel building very recently to aarch64. Thank you very much, because I can confirm that USB works well here after my Improving aarch64-image booting (+ ESPRESSObin network setup).

@arne_f As the author of the AHCI change, may I kindly ask you, if you could also enable that CONFIG_USB_UAS line for aarch64 and armv5tel?

Hi,

first please open a bug report for this in Bugzilla. For information on how to do this please read blog.ipfire.org - How to write a good bug report?.

Reason:
A lot of Core Developers read in this community somehow irregular (although there are some very busy readers like Peter Mueller). This has nothing to do with ignorance just with a lake of time. We cannot monitor a handful of platforms for important information and so important information like the one which you posted here gets somehow lost.

Therefore please post this information in a bug report, that it gets recognized.

Greetings Jonatan

1 Like

Let’s see what Arne answers, making that config change is probably much easier for a developer than having to answer or deal with the bug tracker.

I have already changed this setting in my tree for the upcoming 5.10 kernel.
https://git.ipfire.org/?p=people/arne_f/ipfire-2.x.git;a=shortlog;h=refs/heads/kernel-5.10
https://people.ipfire.org/~arne_f/highly-experimental/kernel-5.10/

If you add new boards or build patches for hardware specific components like u-boot they should base on this tree.

Arne

2 Likes