Odroid-XU4 | USB Drive Speed (54% write/160% read) boost

So, I just got a major speed boost on my USB3 bus.

By compiling a 4.2.0 kernel and enabling the uas (usb attached scsi) module, I got a bump from 109MB/s to 168MB/s (54% increase) on the write speed and a bump from 79MB/s to 209MB/s (160% increase) on the read speed.


Nice, is this on a SSD?

Nope

1GB test file
2TB drive: Seagate Desktop HDD ST2000DM001 2TB 64MB Cache SATA 6.0Gb/s 3.5" Internal Hard Drive Bare Drive - Newegg.com
USB 3.1 Enclosure: VANTEC NST-270A31-BK Black 2.5” SATA 6 Gb/s to USB 3.1 Gen II Type-A SSD/HDD Enclosure - Newegg.com

UAS is a beast at pumping data through a USB3 hub. :sunglasses:

I also have 2 5TB Seagate Expansion Drives that also loaded with the uas module, but they have data in use, so I didn’t test them

I used the hardkernel repository with the 4.2.0-rc1 branch and got the blue LED heartbeat functions back, but the /proc/cpuinfo is still not reporting “SAMSUNG EXYNOS (Flattened Device Tree)” instead of “Odroid-XU3”, so the dietpi banner is stating “unknown”.

but, with some tweaks to the default config file, I got the kernel to build with 4 built-in cpu governors (powersave, conservative, ondemand [default], & performance). And, I got the uas driver to build and load.

I think that I can modify the source file properly to get it to report the correct CPU string, too. I’ll let you know.

-rob

:neutral_face:

Can we expect to have 4.2.0 delivered soon?

Fourdee doesn’t maintain the kernel used in the core Odroid-XU3/4 distro, so it’s unlikely to be “officially” supported “soon”. Meverick just updated the official kernel packages and they were still 3.10.96+ .

that being said, I’m am working on getting DietPi to properly recognize my XU4 with the 4.2.0 kernel. Currently, it reports “Unknown Model”

(and I’ve never built a kernel package for distribution, so… :neutral_face: )

Can we have 3.10.96+ with uas support?

Is Maverick reading this forum?

UAS was not added to the Linux kernel until 3.15.

I have no experience back-porting on the kernel and wouldn’t even know where to begin. I’m still testing on my 4.2-rc1 kernel build. If I can get it working correctly and build a valid package, then I’ll discuss with Fourdee about adding it (as a feature add) to DietPi. But currently, your best best is to follow/modify the build instructions on the Odroid wiki

here: http://odroid.com/dokuwiki/doku.php?id=en:xu4_building_kernel

NOTES:

  • These instructions are centered around cross compiling (I actually built the kernel on my XU4)
  • These instructions are clearly labeled “Experimental”
  • the hardkernel fork seems to have better support for the XU4 hardware than the tobetter fork mentioned above. It can be found here: https://github.com/hardkernel/linux/tree/odroidxu4-v4.2-rc1
  • the config does not build the uas module by default. it needs to be added to the .config file
  • the config also doesn’t add support for multiple cpu governors (only performance)… You’ll want to add the others. I use ondemand with pretty good results.
  • As I’m typing this, I realized that I didn’t test mass-storage on the 4.2 kernel, so I’m not 100% that the speed increase is from the UAS driver or the kernel upgrade… I will test this tonight.
  • Using any kernel on an Odroid XU4, other than meverick’s, will break DietPi. It will no longer properly identify the hardware (I’m working on the fix for this)

And, I cannot speak for Meverick. sorry

Thank you for update.