Jump to content
XPEnology Community

Can't find the right DiskIdxMap, SataPortMap for pass-throughed SATA controller


JamesMcgill

Recommended Posts

Hello friends,

 

I am running DSM 7.0.1 of 918+ on ESXi 7.0 with tinycore bootloader.

I have a virtual sata controller to boot up DSM and had to pass-throughed onboard SATA (ACHI) controller because two HDDs attached to were extracted from the old Synology machine and bind together as SHR.

s1.jpg

 

Anyway, I have successfully made all the way through Synology installation page. but it keep saying there are failures with the HDDs on SATA Port (12,13) and that the SATA Ports has been disabled. 

 

DiskIdxMap=94 SataPortMap=00 is my current configuration of user_config.json and I just don't know what number shall I be assigning to make this work.

Please help.

Link to comment
Share on other sites

4 hours ago, JamesMcgill said:

Hello friends,

 

I am running DSM 7.0.1 of 918+ on ESXi 7.0 with tinycore bootloader.

I have a virtual sata controller to boot up DSM and had to pass-throughed onboard SATA (ACHI) controller because two HDDs attached to were extracted from the old Synology machine and bind together as SHR.

s1.jpg

 

Anyway, I have successfully made all the way through Synology installation page. but it keep saying there are failures with the HDDs on SATA Port (12,13) and that the SATA Ports has been disabled. 

 

DiskIdxMap=94 SataPortMap=00 is my current configuration of user_config.json and I just don't know what number shall I be assigning to make this work.

Please help.

You swapped DiskIdxMap and SataPortMap values.

 

First : check on VM settings that Hard disk 1 (loader) is set to SATA 0:0

Then, SataPortMap=18 DiskIdxMap=0800

 

I don't think DiskIdxMap will really be used, but try like this.

 

Your disk should be seen as 1 and 2, or 2 and 3 if DiskIdxMap is ignored

Edited by Orphée
Link to comment
Share on other sites

15 hours ago, Orphée said:

You swapped DiskIdxMap and SataPortMap values.

 

First : check on VM settings that Hard disk 1 (loader) is set to SATA 0:0

Then, SataPortMap=18 DiskIdxMap=0800

 

I don't think DiskIdxMap will really be used, but try like this.

 

Your disk should be seen as 1 and 2, or 2 and 3 if DiskIdxMap is ignored

 

I have changed the numbers to the one you gave but Synology Web Assistant says I have problem for HDD drives (3,4,7,8).

 

Anyway, as you see in my screenshot above of VM settings, I have set only one virtual HDD (which contains a boot loader) to a virtual SATA controller 0, so I think this makes SATA 0:0.

and for next SATA controller, which is pass-throughed from the bare metal PC, has 4 SATA ports. Considering all this, shouldn't I be doing as:

SataPortMap=14 DiskIdxMap=0400 ?

 

P.S. I am using ASROCK Z170M-ITX/AC as my MOBO, and it has a mSATA connector, but according to the manual, this is not paired together with other 4 SATA ports under the onboard SATA controller. Would this have an effect to the digits of SataPortMap and DiskIdxMap?

 

s2.JPG

 

Also, attaching a screenshot of CMOS setup

 

20220305_153839.jpg

Edited by JamesMcgill
Link to comment
Share on other sites

8 hours ago, Orphée said:

As you are passing through your internal sata controller, you may try to change SataPortMap=188 launch tinycore OS (from your ESXi VM) and launch "./rploader.sh satamap now"

 

And check the result.

I have set:

    "SataPortMap": "188",
    "DiskIdxMap": "080000"
and now it says there is no drives recognizes at all.  

 

Two questions.

1. Even though my MOBO has a mSATA, the controller is not listed on EXSi and I haven't assigned/attached other SATA controller other than the virtual one (tiny core) and onboard SATA (Pass-through, "Sunrise Point-H AHCI Controller"). According to your SataPortMap suggestion it looks like my VM has three controllers. Why is that?

2. My onboard SATA has only 4 ports and why the number in SataPortMap has 8? 

 

and ./rploader.sh satamap now gives:

Machine is VIRTUAL Hypervisor=VMware
Running on VMware, Possible working solution, SataPortMap=1 DiskIdxMap=00

 

Quote

Machine is VIRTUAL Hypervisor=VMware
Running on VMware, Possible working solution, SataPortMap=1 DiskIdxMap=00

I have already tried this and did not work.

 

 

Edited by JamesMcgill
Link to comment
Share on other sites

22 minutes ago, JamesMcgill said:

I have set:

    "SataPortMap": "188",
    "DiskIdxMap": "080000"
and now it says there is no drives recognizes at all.  

 

Two questions.

1. Even though my MOBO has a mSATA, the controller is not listed on EXSi and I haven't assigned/attached other SATA controller other than the virtual one (tiny core) and onboard SATA (Pass-through, "Sunrise Point-H AHCI Controller"). According to your SataPortMap suggestion it looks like my VM has three controllers. Why is that?

2. My onboard SATA has only 4 ports and why the number in SataPortMap has 8? 

 

and ./rploader.sh satamap now gives:

I have already tried this and did not work.

 

 

I don't see any command result I requested from tinycore OS.

Link to comment
Share on other sites

6 minutes ago, Orphée said:

I don't see any command result I requested from tinycore OS.

 

Machine is VIRTUAL Hypervisor=VMware
Running on VMware, Possible working solution, SataPortMap=1 DiskIdxMap=00

 

It does not work and I think it only recognizes the virtual drive not the pass-through controller

Link to comment
Share on other sites

Is your CPU PCI-passthrough capable ?

 

Where is stored your ESXi datastore ?

If any of the disk connected to the controller you want to use as passthrough is used for any other matter on host (like datastore) you can't passthrough the controller.

Link to comment
Share on other sites

33 minutes ago, Orphée said:

Is your CPU PCI-passthrough capable ?

 

Where is stored your ESXi datastore ?

If any of the disk connected to the controller you want to use as passthrough is used for any other matter on host (like datastore) you can't passthrough the controller.

Is your CPU PCI-passthrough capable ?

-> Yeah I believe so, it's Intel comet lake on ASROCK Z170M-ITC/AC nothing special.

 

Where is stored your ESXi datastore ?

-> I have a 1TB NVME SSD drive and it is used as the Datastore. Thus, not any of HDDs are used for data stores. Also, pass-through toggle of SATA controller in ESXi works just fine. 

 

Ah, I just realized a strange thing.

Drives those are attached to onboard SATA controller, two 6TB of HDDs and the other - SATA interface 128GB SSD drive, show up in the CMOS, like the screenshot below, but NOT IN THE EXSi.

I need to bind 2 x 6TB HDDs as SHR and want to use SMART thus AFAIK pass-through is the only way.

 

As ESXi has no problem listing the onboard SATA controller, what else do I need to do?

 

20220305_153839.jpg

ssss33.JPG

Link to comment
Share on other sites

You can't see the disks inside ESXi once you passed through the PCI card. This is normal. But they should be seen in the Tinycore OS as long as passthrough works.

Maybe a missing driver/particular configuration

 

Try :

lspci -kkq

 

from Tinycore OS, and paste the result here.

  • Thanks 1
Link to comment
Share on other sites

7 hours ago, Orphée said:

You can't see the disks inside ESXi once you passed through the PCI card. This is normal. But they should be seen in the Tinycore OS as long as passthrough works.

Maybe a missing driver/particular configuration

 

Try :

lspci -kkq

 

from Tinycore OS, and paste the result here.

 

 

Ah!!! You are so right, I don't see my SATA controller - Sunrise AHCI controller - in the list:

 

root@box:/home/tc# lspci -kkq
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)
        Subsystem: VMware Virtual Machine Chipset
00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01)
00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 08)
        Subsystem: VMware Virtual Machine Chipset
00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
        Subsystem: VMware Virtual Machine Chipset
        Kernel driver in use: ata_piix
00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
        Subsystem: VMware Virtual Machine Chipset
00:07.7 System peripheral: VMware Virtual Machine Communication Interface (rev 10)
        Subsystem: VMware Virtual Machine Communication Interface
        Kernel driver in use: vmw_vmci
00:0f.0 VGA compatible controller: VMware SVGA II Adapter
        Subsystem: VMware SVGA II Adapter
00:11.0 PCI bridge: VMware PCI bridge (rev 02)
00:15.0 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:15.1 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:15.2 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:15.3 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:15.4 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:15.5 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:15.6 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:15.7 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:16.0 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:16.1 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:16.2 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:16.3 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:16.4 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:16.5 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:16.6 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:16.7 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:17.0 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:17.1 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:17.2 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:17.3 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:17.4 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:17.5 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:17.6 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:17.7 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:18.0 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:18.1 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:18.2 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:18.3 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:18.4 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:18.5 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:18.6 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
00:18.7 PCI bridge: VMware PCI Express Root Port (rev 01)
        Kernel driver in use: pcieport
02:00.0 USB controller: VMware USB1.1 UHCI Controller
        Subsystem: VMware Device 1976
        Kernel driver in use: uhci_hcd
02:01.0 USB controller: VMware USB2 EHCI Controller
        Subsystem: VMware USB2 EHCI Controller
        Kernel driver in use: ehci-pci
02:02.0 SATA controller: VMware SATA AHCI controller
        Subsystem: VMware SATA AHCI controller
        Kernel driver in use: ahci
03:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
        Subsystem: VMware VMXNET3 Ethernet Controller
        Kernel driver in use: vmxnet3
 

I know below command adds driver into the loader but how or where do I find the right URL for "Intel Corporation Sunrise Point-H AHCI Controller"?

    ./rploader.sh ext apollolake-7.0.1-42218 add https://raw.githubusercontent.com/pocopico/rp-ext/master/vmw_pvscsi/rpext-index.json

Also, If I am thinking of passing through the VGA to enable HW accelerated transcoding, do I need to add that here as well?

Also, I am thinking of buying a SATA expansion card for my mPCIE slot, such as this one and looks like it's using a chipset named ASM1061, but at least would like to know this is compatible or the driver is supported by TC or Xpenology. Is there is a list such as compatibility list?

https://www.aliepxress.com/item/...

 

 

 

Edited by JamesMcgill
Link to comment
Share on other sites

2 hours ago, Orphée said:

You MUST see the pci device with lspci -kkq inside the VM.
If you don't, no need to hope for any driver.
There is an issue with the passthrough if you expect to see you card and it isn't seen.

 

Ah stupid me, I have re-created VM and forgot to add onboard SATA controller for pass-through.

Now having this added, lspci -kkq gives the SATA controller in the list

 

0b:00.0 SATA controller: Intel Corporation Sunrise Point-H SATA controller [AHCI                mode] (rev 31)
        Subsystem: ASRock Incorporation Device a102
        Kernel driver in use: ahci
 

I have set SataPortMap=14 DiskIdxMap=0000 and still getting the error. "Hdd(3,4) error. Sata Ports disabled."

Feel like I'm back at the starting point. 

 

FYI, I have opened up a telnet during the DSM installation and typed fdisk -l which shows below.

I think sdb and sdc are those two 6TB * 2 hard drives attached to onboard SATA controller (pass-throughed)

but still can't get the right SataPortMap and DiskIdxMap values.

 

Disk /dev/synoboot: 1024 MB, 1073741824 bytes, 2097152 sectors

130 cylinders, 255 heads, 63 sectors/track

Units: sectors of 1 * 512 = 512 bytes

 

Device Boot StartCHS EndCHS StartLBA EndLBA Sectors Size Id Type

/dev/synoboot1 * 0,32,33 6,62,56 2048 100351 98304 48.0M 83 Linux

/dev/synoboot2 6,62,57 15,205,62 100352 253951 153600 75.0M 83 Linux

/dev/synoboot3 15,205,63 130,138,8 253952 2097151 1843200 900M 83 Linux

fdisk: device has more than 2^32 sectors, can't use all of them

 

Disk /dev/sdb: 2048 GB, 2199023255040 bytes, 4294967295 sectors

267349 cylinders, 255 heads, 63 sectors/track

Units: sectors of 1 * 512 = 512 bytes

 

Device Boot StartCHS EndCHS StartLBA EndLBA Sectors Size Id Type

/dev/sdb1 0,0,1 1023,254,63 1 4294967295 4294967295 2047G ee EFI GPT

fdisk: device has more than 2^32 sectors, can't use all of them

 

Disk /dev/sdc: 2048 GB, 2199023255040 bytes, 4294967295 sectors

267349 cylinders, 255 heads, 63 sectors/track

Units: sectors of 1 * 512 = 512 bytes

 

Device Boot StartCHS EndCHS StartLBA EndLBA Sectors Size Id Type

/dev/sdc1 0,0,1 1023,254,63 1 4294967295 4294967295 2047G ee EFI GPT

Disk /dev/md0: 2431 MB, 2549940224 bytes, 4980352 sectors

622544 cylinders, 2 heads, 4 sectors/track

Units: sectors of 1 * 512 = 512 bytes

 

Disk /dev/md0 doesn't contain a valid partition table

Disk /dev/md1: 2047 MB, 2147418112 bytes, 4194176 sectors

524272 cylinders, 2 heads, 4 sectors/track

Units: sectors of 1 * 512 = 512 bytes

 

Disk /dev/md1 doesn't contain a valid partition table

Link to comment
Share on other sites

./rploader.sh satamap now

 

Edit :

  

6 hours ago, JamesMcgill said:

I have set SataPortMap=14 DiskIdxMap=0000 and still getting the error. "Hdd(3,4) error. Sata Ports disabled."

 

DiskIdxMap=0000 is a non sense.

Check my older posts from my profile or from IG-88's profile.

Edited by Orphée
Link to comment
Share on other sites

13 hours ago, Orphée said:

DiskIdxMap=0000 is a non sense.

Check my older posts from my profile or from IG-88's profile.

 

better read about it here

https://xpenology.com/forum/topic/32867-sata-and-sas-config-commands-in-grubcfg-and-what-they-do/

DiskIdxMap=0000 means the 1st and 2nd controller should start counting there drives starting with sda, no idea how that will give results in dsm because synology might not have done things properly to prevent mishandling like that, under normal conditions thats not occurring (because synology knows how to handle that properly) and they might not have prevented that case in kernel code, so might result in a kernel panic, strange drive arrangements or ...

to really know what would happen you would need to read the kernel code (synology's own custom mod's)

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...