Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can not enable E10M20-T1 on DS1621+ #97

Closed
FlintyLemming opened this issue Jun 22, 2023 · 24 comments
Closed

Can not enable E10M20-T1 on DS1621+ #97

FlintyLemming opened this issue Jun 22, 2023 · 24 comments

Comments

@FlintyLemming
Copy link

After execute the sh file, I still can not enable E10M20-T1 on my DS1621+ fully. It can not recognice my nvme ssd, only NIC work.
I've add DS1621+ in /usr/syno/etc.defaults/adapter_cards.conf file, both E10M20-T1_sup_nvme and E10M20-T1_sup_sata, but still not work.
After execute ls /run/synostorage/disks, it shows no nvme drives. ls /sys/block | grep nvme return

nvme0n1
nvme1n1

I think it may because 1621+ only have x4 lanes PCIe while E10M20-T1 has 8. But I think E10M20-T1 may be a plx card so it actucally can work on PCIe x4?

@007revad
Copy link
Owner

When I added support for enabling a M2D20, M2D18, M2D17 for models that don't officially support them I did wonder if the E10M20-T1 would work as both a NIC and NVMe on any NAS model.

On the DS1618+ is listed as supporting E10M20-T1_sup_nic, E10M20-T1_sup_nvme and E10M20-T1_sup_sata.

  • The Intel Atom C3538 CPU in the DS1618+ has 12 Gen 3 PCIe lanes which can be configured in x2, x4, x8.
  • The AMD Ryzen V1500B CPU in the DS1621+ has 16 Gen 3 PCIe lanes.

So you'd think the DS1618+ can fully support the E10M20-T1 then the DS1621+ should be able to as well.

There was someone who used the dual 10GbE E10G18-T2 card (in a DS1821+ I think) that found when both 10GbE ports were used the 2nd port ran at half the speed of the first port, due to not enough PCIe lanes.

According to this review the does have a PLX passthrough for the NVMe slots.

Were you wanting to use the NVMe drives on the E10M20-T1 as a cache or volume?

Synology officially only support M.2 drives in PCIe cards as cache drives. But my Synology_M2_volume script can see the NVMe drives on a PCIe card and create the storage pool, then after a reboot you go into storage manager and create your volume.

@FlintyLemming
Copy link
Author

Thanks for your reply. I just want to use the NVMe drives on the E10M20-T1 as a cache, the problem is I didn't see any drive on the E10M20-T1 in DSM.
I've found that RS1221+ supports E10M20-T1 which have same CPU and PCIe x4 slot like 1621+, so I think there may be a way to enable E10M20-T1 fully on 1621+.

@007revad
Copy link
Owner

007revad commented Jun 25, 2023

Comparing synoinfo.conf between the RS1221+ and DS1621+ the only difference that may be related is the RS1221+ has:
netif_seq="3 2 1 0"

netif stands for network interface. Both models have 4 1GbE ports so I don't know why the RS1221+ has netif_seq="3 2 1 0" and the DS1621+ doesn't.

Both models have 99% the same files that contain E10M20-T1:

  • adapter_cards.conf
  • storage_panel.js
  • libhwcontrol.so
  • libsynodiskmap.so

The one file that is different is the binary dtb file located in model.dtb where the RS1221+ model.dtb file contains a section of M.2 PCIe cards including the E10M20-T1

I had to google what a .dtb file is:
"During the Linux boot process, a "Device Tree Blob" (DTB) file is loaded into memory by U-Boot / UEFI, and a pointer to it is passed to the kernel. This DTB file describes the system's hardware layout to the Linux kernel, allowing for platform-specific code to be moved out of the kernel sources and replaced with generic code that can parse the DTB and configure the system as required."

I could decompile both model's model.dtb files and then compile a new one but:

  • I don't know if DSM has checksummed that file and would fail to boot if it doesn't match the checksum.
  • Messing around with the boot process of my own Synology, let alone someone else's, is not something I'd want to try.

I noticed that the DS1618+ and DS1819+ support the E10M20-T1, M2D20 and M2D18 yet they have no model.dtb file. So I thought maybe the model.dtb file is only needed for models with a Ryzen CPU but then I noticed plenty of Intel CPU models also have the model.dtb file.

Without kernel support I think it may not be possible to make the DS1621+ see the E10M20-T1 (or any M.2 PCIe card) but I'll keep looking.

@FlintyLemming
Copy link
Author

Omg, thank you so much for your thorough investigation. I am planning on attempting to modify my device tree file to see if I can get the E10M20-T1 to work fully on the DS1621+. Your research has given me valuable insights, and I hope that I can contribute some new information to this issue.
Once again, thank you for your work!​

@007revad
Copy link
Owner

007revad commented Jun 25, 2023

If you can figure it out I'd really like to know.

I've attached a copy of the model.dtb file from the RS1221+ DSM 7.2-64570

RS1221+_DSM_64570_model-dtb.zip

Since my last reply I've found that model.dtb also exists in /etc/model.dtb after DSM is installed.

The DSM .pat file contains 2 identical copies of the model.dtb file:

  • /etc.defaults/model.dtb
  • model.dtb <-- this one is in the root of the .pat file with all the boot files including bios.ROM and rd.gz etc and probably gets copied to synoboot.

@FlintyLemming
Copy link
Author

You are right! After modify model.dtb file, it works!

截屏2023-06-25 17 09 32

Following steps below

  1. Use dtc -I dtb -O dts -o model.dts model.dtb to decomplie dtb file to editable dts file

  2. Add lost E10M20-T1 support. It comes from 1221+'s dtb file you gave to me.

    图片

  3. Use dtc -I dts -O dtb -o model.dtb model.dts to complie dts file back to dtb file and replace /etc.defaults/model.dtb. Just only need to replace this file.

  4. Reboot

Really thank you a lot!!!

@007revad
Copy link
Owner

Awesome. Thank you.

@007revad
Copy link
Owner

PS you're Synology account email address is showing in your first picture.

@FlintyLemming
Copy link
Author

Thank you for your concern. However, please be assured that there is no problem. The account displayed is my publicly shared personal account, and I believe Synology would not object to my action.

@karsayor
Copy link

Hi guys

Thanks for sharing !! Does it mean we can do this procedure with every model having a PCIE slot ? Why does synology removes stuff like this…

what happens after an upgrade of the dsm ?

@FlintyLemming
Copy link
Author

I think it's not. This way is only for the device that use device tree. You can ls /dev, if your sata device show like "sata1, sata2..." it use device tree; if there are "sda, sdb...", it's not.

@007revad
Copy link
Owner

I assume models that use the device tree are the ones that have /etc.defsults/model.dtb ?

Only 33 of the 112 models that can use DSM 7.2 have the model.dtb file and all seem to be '20 series and newer. But not all '20 series and newer models have model.dtb, like the RS4021xs+

Synology NAS models that have \etc.defaults\model.dtb in DSM 7.2-64570

DS220+, DS420+, DS720+, DS920+, DS1520+
DS1621+, DS1821+
DS1522+, DS2422+
DS223, DS423, DS423+, DS723+, DS923+, DS1823xs+

RS1221+, RS1221RP+, RS2421+, RS2421RP+
RS422+, RS822+, RS822RP+, RS2821RP+
RS2423+, RS2423RP+

DVA1622

FS2500, FS3410, FS6400

HD6500

SA3410, SA3610, SA6400

@007revad
Copy link
Owner

@karsayor What model Synology NAS do you have?

Editing the model.dtb file is only needed for DS1821+, DS1621+ and DS1520+

I have a pre-release version of this script that does it for if you have a DS1821+, DS1621+ or DS1520+ and have installed a E10M20-T1, M2D20 and M2D18
https://github.com/007revad/Synology_HDD_db/releases/tag/v3.1.57-RC

@karsayor
Copy link

Hey

currently I have a 1618+ so the card is supported. But when it will be eol I plan to change for a new with PCIe x4 slot as well if I take the card.

A little bit too much future thinking I know 😝

But i find all this interesting to know. Maybe in 2-3 years I would swap my unit so i’m hopping to keep the card.

And I also wonder why Synology removes the support of this…

@007revad
Copy link
Owner

007revad commented Jul 1, 2023

What PCIe card do you have?

And I also wonder why Synology removes the support of this…

In DSM 7.2-64570 Synology did add more Synology NAS models to support the M2D18 adapter card: RS822RP+, RS822+, RS1221RP+ and RS1221+. I have no idea why they didn't already support the M2D18 adapter card in DSM 7.0,.x and 7.1.x

@karsayor
Copy link

karsayor commented Jul 1, 2023

E10M20

@007revad
Copy link
Owner

E10M20

Sorry, I forgot to answer your question. I doubt Synology would drop support for the E10M20-T1 but if they did I can enable it.
https://github.com/007revad/Synology_enable_M2_card

@007revad
Copy link
Owner

@FlintyLemming

Can you do me a favor and tell me what this command returns on your DS1621+

cat /sys/firmware/devicetree/base/power_limit && echo

@FlintyLemming
Copy link
Author

FlintyLemming commented Sep 23, 2023 via email

@007revad
Copy link
Owner

Interesting. Because you are using 4 NVMe drives I expected to see 4 power limit values instead of the regular 2.

Are you using DSM 7.2 Update 1, 2 or 3?

@FlintyLemming
Copy link
Author

FlintyLemming commented Sep 23, 2023 via email

@loonyd
Copy link

loonyd commented Mar 19, 2024

You are right! After modify model.dtb file, it works!

截屏2023-06-25 17 09 32 Following steps below
  1. Use dtc -I dtb -O dts -o model.dts model.dtb to decomplie dtb file to editable dts file
  2. Add lost E10M20-T1 support. It comes from 1221+'s dtb file you gave to me.
    图片
  3. Use dtc -I dts -O dtb -o model.dtb model.dts to complie dts file back to dtb file and replace /etc.defaults/model.dtb. Just only need to replace this file.
  4. Reboot

Really thank you a lot!!!

I have already installed e10m20-t1 in 1821, but I cannot compile DTS. Has the latest script from the script author solved this problem? Can we directly install e10m20-t1.

@007revad
Copy link
Owner

@loonyd

I just answered your other issue 007revad/Synology_M2_volume#133

https://github.com/007revad/Synology_enable_M2_card does it all for you.

@loonyd
Copy link

loonyd commented Mar 19, 2024

In other words, the two built-in SSDs I installed before have already formed raid0. Now I have added a new e10m20-t1 and a SSD. I want to run the script again to make a single storage space, but I don't want to delete the raid0 with two built-in SSDs that I have already completed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants