Wrt3200acm esata port multiplier

I'm new to the Linux/OpenWRT/LEDE thing so be gentle.:slight_smile:

I have a Mediasonic H82-SU3S2 8-bay JBOD drive enclosure. It seems too unstable under the Linksys firmware and DD-WRT. Drives can unmount randomly.

I was able to mount all the drives on LEDE just fine on USB but I'd rather use eSATA because it's faster and much more stable (although I'm not sure if the wrt3200acm's esata controller can handle more than 5 esata drives). Is there any way to enable esata port multiplier on LEDE?
If esata can't see more than 5 drives I'll be stuck with USB anyways.

Can someone help me to enable port multiplier?

You will have to enable:

CONFIG_SATA_PMP=y

in file:

target/linux/mvebu/config-4.9

to enable the PM code in the kernel. So your build or one that has that enabled, as it is not enabled currently for LEDE but I think there is a FS requesting same.

Unfortunately most (e)SATA PMs seems really dodgy, the best one around seems to be Marvell 88SM9705 or 88SM9715 but good luck finding appliances.

Having the same question... say, is the stable Image Builder (17.01.4) sufficient to do this, or do I have to build the whole thing from source to get it working?

I tried the latest stable Image Builder to create images and also edited the file target/linux/mvebu/config-4.4 to include CONFIG_SATA_PMP=y but in the resulted image the function does not appear to be enabled as only the first drive is detected when connected with eSATA. This probably implies the kernel might have been precompiled and not adjustable...

If I need to build from source, is the current stable source available and sufficient? Since the config file for 4.9 kernel was mentioned I assumed you built the snapshot at the time of writing to enable it, as the stable build remained at 4.4 kernel.

You will have to build/compile the kernel to get the requisite support. Clone the current tagged stable (17.01.4) and make the modification to the 4.4 config. But as @diizzy mentioned, PM device compatibility may be found wanting, but I have seen reports of devices found to work.

I'm using these: https://www.arrow.com/en/products/s-331/sunrich-technology-us-inc (Marvell 88SM9715). These port multipliers are the same ones used by Backblaze ( https://www.backblaze.com/b2/storage-pod.html ) and are certified to work with Marvell Host Controllers, like the ones found int the WRT1200AC and WRT3200AC :slight_smile:

Just managed to compile the 17.01.4 version from source with CONFIG_SATA_PMP=y set in the kernel menuconfig, and created the image with intended features using the created Image Builder, and now the router can see all five drives installed in my eSATA drive bay, whereas previously the system could only detect the first one.

So the parameter is indeed required to get multi-drive eSATA drive bays to work, though I once read reports of someone saying only up to 5 drives are stable to use via eSATA. I still need to test further...

By the way, there's a request (FS #547) in the LEDE bug tracker asking for enabling the parameter for mvebu devices, which has been closed due to lack of explanation... so I dunno if's possible to explain this further and reopen the issue.

As stated in FS#547, opening a PR might be your best bet at getting this in images OOTB. When I last checked it added ~4k to kernel size, so not a big issue given the target. The limited audience could prove to be a show stopper though.

Good news: I'm able to find this from the kernel config for OpenWrt 18.06-rc. I'm using the ImageBuilder archive, but this should apply to everything officially built.

In file: ./build_dir/target-arm_cortex-a9+vfpv3_musl_eabi/linux-mvebu_cortexa9/linux-4.14.50/.config

CONFIG_SATA_PMP=y

It seems SATA PMP is enabled by default with the recent 18.06-rc. Guess this means I don't have to build everything from source anymore.