NVMe SSD detected in lspci but missing in lsblk (Missing kmod-nvme & Kernel Mismatch)

Hi everyone,

I recently purchased a Banana Pi BPI-R4 Pro and I am facing a persistent issue with getting my NVMe SSD to work. I’m hoping someone can point me to the correct firmware image or a workaround.

The Issue: The system physically detects the NVMe controller (visible in lspci), but the block device is not created (not visible in lsblk). It seems the necessary kernel modules (kmod-nvme) are missing from the image, and I cannot install them via opkg due to a kernel version mismatch with the official snapshots.

Hardware Setup:

  • Board: Banana Pi BPI-R4 Pro
  • Storage: 128GB NVMe SSD (Silicon Motion Controller)
  • Current OS: OpenWrt (Vendor Snapshot Image, Kernel 6.6.x - dated approx Nov 25, 2024)

Diagnostics & Logs:

  1. LSPCI (Hardware is detected): The controller is clearly visible here, so the hardware connection is fine.root@OpenWrt:~# lspci 0003:01:00.0 Non-Volatile memory controller: Silicon Motion, Inc. SM2263EN/SM2263XT (DRAM-less) NVMe SSD Controllers (rev 03)
  2. LSBLK (No disk found): Only the eMMC (mmcblk0) and system partitions are visible. nvme0n1 is missing.root@OpenWrt:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS mmcblk0 179:0 0 7.3G 0 disk ... (only emmc partitions)
  3. Missing Modules: I searched for the module manually, but it returns nothing.root@OpenWrt:~# find /lib/modules -name "*nvme*" (no output)
  4. OPKG Install Fails (Kernel Mismatch): When I try to install kmod-nvme from the official repos, it fails because the kernel version of the vendor image does not match the official snapshot repository.`root@OpenWrt:~# opkg install kmod-nvme Unknown package ‘kmod-nvme’.
  • opkg_install_cmd: Cannot install package kmod-nvme.*I even tried using –force-dependsand–nodeps`, but since the kernel magic string is different, it refuses to load the module.*

What I have tried so far:

  • Verified the SSD works by formatting it (ExFAT) on a PC via USB. It works perfectly.
  • Tried updating opkg lists and installing pciutils, nvme-cli, block-mount (these installed fine, but the driver kmod-nvme is the issue).
  • I cannot simply flash the official mainline OpenWrt BPI-R4 image because I need the 2.5G ports to work (which are specific to the Pro model).

My Request: Is there a specific “Full” or “SD-Media” image for the BPI-R4 Pro that comes with kmod-nvme pre-installed/built-in? Or is there a compatible repository where I can pull the correct kernel modules for the Sinovoip vendor kernel?

Any link to a working image for the Pro model with NVMe support would be greatly appreciated.

Thanks in advance!

My personal opinion:

This might be caused by the failure to increase the driver. It would be better to add the necessary configuration by yourself and recompile from the BSP.