NVMe drives on Oculink not detected

[Disclaimer: Yes, I know, this is not a Clear Linux question, yet I’d appreciate some help from those of you with some knowledge of Intel hardware.]

I got a NAS system built around an EC266D2I-2T/AQC motherboard. I purchased two 8TB NVMe M2 drives, and I have installed them in the Oculink slots (OCU1 and OCU2) using two Oculink to NVMe adapters. So far it looks like the system is not detecting them. What am I doing wrong? My guess is that there are some BIOS settings that I need to mess with in order to get them detected, though at this point I don’t really know what those settings are exactly.

At this point I have the following settings:

OCU Mode Selection = PCIE (as opposed to SATA)
SATA Controller = “Disabled” (as opposed to “Enabled”)

Are these the right choices? If yes, what am I doing wrong?

These settings look right according to basic logic of the way one would think this board would work. I have a 1TB NVMe drive in my system it has worked with Clear Linux since 2021 along with all of the software updates. The core part of Linux is on that drive. Did you boot from a USB from a USB initially? I am assuming at least a “server” type of text interface.
I would boot from a USB then use lspci --vv and look what is there, see if anything shows up
My NVMe shows up as:

lspci -vv 

# Note I edited out all of the other devices on the PCI bus
# if lspci -vv find the equivalent that for Oculink 
# does a device driver exist for such a configuration in Clear Linux? 
# What my M2 Drive reports out as:

07:00.0 Non-Volatile memory controller: Sandisk Corp SanDisk Ultra 3D / WD Blue SN570 NVMe SSD (DRAM-less) (prog-if 02 [NVM Express])
        Subsystem: Sandisk Corp SanDisk Ultra 3D / WD Blue SN570 NVMe SSD (DRAM-less)
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 32
        IOMMU group: 13
        Region 0: Memory at fc700000 (64-bit, non-prefetchable) [size=16K]
        Region 4: Memory at fc704000 (64-bit, non-prefetchable) [size=256]
        Capabilities: <access denied>
        Kernel driver in use: nvme

Apologies for not updating this thread: there has been some “progress” made in this and this threads.

The short version is that everything is clear as mud at this point. The root of the problem seems(!) to be that the NVMe drives do not receive power. Someone made some changes to a typical Oculink cable, and things started working (… namely power started flowing from the Oculink connector to the NVMe M.2 device). I, for one, am attempting two strategies:

  1. Purchase Oculink adapters that have separate power connectors (the ones listed in the OP do not(!), and power is supposed to be transmitted over the Oculink cable–though in this case it’s obviously(?) not);
  2. Take a U.2 detour, meaning buy some Oculink-to-U.2 cables (with separate power connector), and then some U.2 to M.2 adapter(s).

They assure me that the latter works, though I do want to try out the former as well (it’s cheaper :slightly_smiling_face: )

Looks like you need the cable specification, and by now you have probably gotten the specifications. By modification, cutting pins or wires? Annoying. Good luck, I will know
not the fooled by the Amazon page for the Cablecc Oculink adapter.

Anyway, just so I can close this thread, the Oculink to M.2 adapters I had did not have any power input, and my current mobo does not provide power via Oculink (there may be mobos that do though!). In the end, I chose to go the U.2 route: Oculink → powered Oculink to U.2 cable → U.2 to M.2 adapter, and that works a treat. I also tried a powered Oculink to M.2 adapter, but it blew out one of its capacitors just as soon as I turned on the box, so I just gave up. The U.2 detour is good enough for me.