树莓派5 PCIe转M.2 NVMe PCIe gen 3 SSD存储

警告

经过 树莓派5 PCIe转M.2 NVMe "PCIe gen4" SSD存储报错记录 验证,证明 树莓派Raspberry Pi 5 只能使用 PCIe gen 3 SSD存储,无法驱动 gen4 SSD存储

实践采用的硬件是 铠侠KIOXIA EXCERIA G2 NVMe SSD存储 配合 树莓派5 PCIe转M.2 NVMe SSD存储 转接卡

激活 pcie 3 模式

树莓派Raspberry Pi 5 默认没有激活 pcie 3 ,对于 PCIe gen 3 铠侠KIOXIA EXCERIA G2 NVMe SSD存储 ,虽然 树莓派Raspberry Pi 5 不能达到标准的 PCIe gen 3 速率,但是激活 PCIe gen 3 还是能够大大提高接口性能:

  • 修改 /boot/firmware/config.txt 设置:

配置激活 PCIe gen 3
[all]
dtparam=nvme
dtparam=pciex1_gen=3
  • 重启系统,通过 dmesg -T 检查系统启动信息如下:

配置激活 PCIe gen 3 后重启检查 dmesg -T 输出
...
[Sun Sep 29 15:57:36 2024] nvme nvme0: pci function 0000:01:00.0
[Sun Sep 29 15:57:36 2024] nvme 0000:01:00.0: enabling device (0000 -> 0002)
[Sun Sep 29 15:57:37 2024] nvme nvme0: Shutdown timeout set to 10 seconds
[Sun Sep 29 15:57:37 2024] hwmon hwmon1: temp1_input not attached to any thermal zone
[Sun Sep 29 15:57:37 2024] nvme nvme0: 4/0/0 default/read/poll queues
[Sun Sep 29 15:57:37 2024] brcm-pcie 1000120000.pcie: host bridge /axi/pcie@120000 ranges:
[Sun Sep 29 15:57:37 2024] brcm-pcie 1000120000.pcie:   No bus range found for /axi/pcie@120000, using [bus 00-ff]
[Sun Sep 29 15:57:37 2024] brcm-pcie 1000120000.pcie:      MEM 0x1f00000000..0x1ffffffffb -> 0x0000000000
[Sun Sep 29 15:57:37 2024] brcm-pcie 1000120000.pcie:      MEM 0x1c00000000..0x1effffffff -> 0x0400000000
[Sun Sep 29 15:57:37 2024] brcm-pcie 1000120000.pcie:   IB MEM 0x1f00000000..0x1f003fffff -> 0x0000000000
[Sun Sep 29 15:57:37 2024] brcm-pcie 1000120000.pcie:   IB MEM 0x0000000000..0x0fffffffff -> 0x1000000000
[Sun Sep 29 15:57:37 2024] brcm-pcie 1000120000.pcie: Forcing gen 2
[Sun Sep 29 15:57:37 2024] brcm-pcie 1000120000.pcie: PCI host bridge to bus 0001:00
[Sun Sep 29 15:57:37 2024] pci_bus 0001:00: root bus resource [bus 00-ff]
[Sun Sep 29 15:57:37 2024] pci_bus 0001:00: root bus resource [mem 0x1f00000000-0x1ffffffffb] (bus address [0x00000000-0xfffffffb])
[Sun Sep 29 15:57:37 2024] pci_bus 0001:00: root bus resource [mem 0x1c00000000-0x1effffffff pref] (bus address [0x400000000-0x6ffffffff])
[Sun Sep 29 15:57:37 2024] pci 0001:00:00.0: [14e4:2712] type 01 class 0x060400
[Sun Sep 29 15:57:37 2024] pci 0001:00:00.0: PME# supported from D0 D3hot
[Sun Sep 29 15:57:37 2024] pci 0001:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[Sun Sep 29 15:57:37 2024] brcm-pcie 1000120000.pcie: link up, 5.0 GT/s PCIe x4 (!SSC)
...
  • 检查pci设备 lspci :

检查PCI设备
lspci

输出信息显示已经识别了 铠侠KIOXIA EXCERIA G2 NVMe SSD存储 :

检查PCI设备可以看到识别了 铠侠KIOXIA EXCERIA G2 NVMe SSD存储
0000:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 21)
0000:01:00.0 Non-Volatile memory controller: KIOXIA Corporation NVMe SSD (rev 01)
0001:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 21)
0001:01:00.0 Ethernet controller: Raspberry Pi Ltd RP1 PCIe 2.0 South Bridge
  • 检查块设备:

检查块设备设备
lsblk

可以看到识别了 nvme

检查块设备设备
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
mmcblk0     179:0    0 59.5G  0 disk
├─mmcblk0p1 179:1    0  512M  0 part /boot/firmware
└─mmcblk0p2 179:2    0   59G  0 part /
nvme0n1     259:0    0  1.8T  0 disk

使用存储

接下来是软件配置如何使用这个存储发挥其性能:

参考