找回密码
 加入我们
搜索
      
楼主: hawie

[存储] 联芸MAP1602主控的可以入了,掉坑里刚爬出来,P7000Z晚班车拿了四块,附内核

  [复制链接]
发表于 2023-7-10 03:09 | 显示全部楼层
huyz 发表于 2023-6-28 16:30
我最近买的 P7000Z 4T 也遇到 linux 下不认盘的问题,但和 2T 不同,4T 的只装一块就不认。
但它也不是 100 ...

同样问题,找到解决办法了
添加grub参数 iommu=soft
参考: https://bbs.archlinux.org/viewtopic.php?id=278249
 楼主| 发表于 2023-7-10 07:40 | 显示全部楼层
本帖最后由 hawie 于 2023-7-10 07:44 编辑
marswjf 发表于 2023-7-10 01:16
请教下怎么查呢

好像不是一样


udevadm info -a -n /dev/nvme0
lspci -vv -nn
等等
 楼主| 发表于 2023-7-10 07:53 | 显示全部楼层
NexusHE 发表于 2023-7-10 03:09
同样问题,找到解决办法了
添加grub参数 iommu=soft
参考: https://bbs.archlinux.org/viewtopic.php?id= ...

如果是N100,可以同时开启iommu,及核显的SRIOV, 参考参数是:
intel_iommu=on i915.enable_guc=3 i915.max_vfs=7

不知道对MAP1602的4TB型号有没有帮助。我手头的4TB是三星的。
发表于 2023-7-10 07:54 来自手机 | 显示全部楼层
楼主小主机长啥样,想看看4盘位
 楼主| 发表于 2023-7-10 08:09 | 显示全部楼层
eneiku 发表于 2023-7-10 07:54
楼主小主机长啥样,想看看4盘位

可以关注,但不推荐,厂家目前还没有解决一些问题。
IMG_3156 2.jpg
IMG_3158.jpg
发表于 2023-7-10 08:37 | 显示全部楼层
hawie 发表于 2023-7-10 08:09
可以关注,但不推荐,厂家目前还没有解决一些问题。

看起来太舒适,以后4x4T,直接脱坑了
发表于 2023-7-10 18:15 | 显示全部楼层
hawie 发表于 2023-7-8 13:25
这个补丁只是针对重复ID的问题。如果4TB的主控PCIe ID也是0x1e4B, 0x1602,对重复ID会有作用。
不过,所 ...


4T的PCIe ID是1e4b:1602。
看上去可以用哇
目前用LSPCI能看到
但是PVE内核的管理界面看不到硬盘




1.png

2.png
 楼主| 发表于 2023-7-10 18:43 | 显示全部楼层
marswjf 发表于 2023-7-10 18:15
4T的PCIe ID是1e4b:1602。
看上去可以用哇
目前用LSPCI能看到
  1. ls -la /dev/disk/by-id/|grep -v dm|grep -v lvm|grep -v part
复制代码

可以看看/dev/disk/by-id/目录有没有识别了全部的盘。
发表于 2023-7-10 19:28 | 显示全部楼层
hawie 发表于 2023-7-10 18:43
可以看看/dev/disk/by-id/目录有没有识别了全部的盘。

4.png

这算是2个盘吗?
  nvme-eui.0000000000000000d0d0d0d0d0d0d0d0和 nvme-aigo_NVMe_SSD_P7000Z_4TB_19B46000000000000948
好像都在nvme1n1下面
 楼主| 发表于 2023-7-11 02:11 | 显示全部楼层
marswjf 发表于 2023-7-10 19:28
这算是2个盘吗?
  nvme-eui.0000000000000000d0d0d0d0d0d0d0d0和 nvme-aigo_NVMe_SSD_P7000Z_4TB_19B4 ...

只认了一个盘。类似这样是两个盘:
lrwxrwxrwx 1 root root  13 Jul 11 02:02 nvme-aigo_NVMe_SSD_P7000Z_4TB_15765000000010001880 -> ../../nvme1n1
lrwxrwxrwx 1 root root  13 Jul 11 02:02 nvme-aigo_NVMe_SSD_P7000Z_4TB_15765000000010001885 -> ../../nvme0n1

补丁解决的重复ID问题,是针对的类似这样的内核信息:
nvme nvme0: globally duplicate IDs for nsid 1
4TB看来还有其他不一样要处理,这类broken hardware距离大品牌还任重道远。
发表于 2023-7-11 14:29 | 显示全部楼层
NexusHE 发表于 2023-7-10 03:09
同样问题,找到解决办法了
添加grub参数 iommu=soft
参考: https://bbs.archlinux.org/viewtopic.php?id= ...

感谢提供解决思路
我后续要直通核显,
所以需要iommu=pt这个参数

我回去试试amd_iommu=fullflush,每次开启执行一次完全刷新试试能不能解决这个问题
发表于 2023-7-11 15:39 | 显示全部楼层
hawie 发表于 2023-7-11 02:11
只认了一个盘。类似这样是两个盘:
lrwxrwxrwx 1 root root  13 Jul 11 02:02 nvme-aigo_NVMe_SSD_P7000Z ...

感觉可能和我是AMD CPU有关系. intel的兼容性会好一些
发表于 2023-7-12 00:41 | 显示全部楼层
marswjf 发表于 2023-7-7 23:02
大神V5....
非常需要,求更新,求详细教程....
8.0升级了你2023616日发的那个的内核后   

同样问题,加了iommu参数也不起作用
发表于 2023-7-12 10:26 | 显示全部楼层
hawie 发表于 2023-6-18 20:55
万事俱备,调高目标,最终应该能达成:5*M.2 NVMe。
补个图。

请教一下这转接卡是不是有啥芯片啊。
N100虽然有9条PCIE通道。 但是实际上CPU最高支持 6个PCIE设备。(8个RootPort)
这 都4+4 8个PCIE设备了。
有芯片便宜能接受得估计只有PCIE2.0得switch芯片了。那这样是不是NVME得速度会有影响?
 楼主| 发表于 2023-7-12 10:44 | 显示全部楼层
ShireCiel 发表于 2023-7-12 10:26
请教一下这转接卡是不是有啥芯片啊。
N100虽然有9条PCIE通道。 但是实际上CPU最高支持 6个PCIE设备。(8 ...

转接板:
IMG_3411.jpg

芯片局部图:
IMG_3410.JPG

你看看,是什么情况?
发表于 2023-7-12 11:06 | 显示全部楼层

这颗芯片是一颗clock buffer。
作用是 将1路时钟 分成 多路时钟。没有PCIE SWITCH的作用。
奇了怪了。按理说Intel的RootPort是物理上的闲置,不存在破解的可能性的。
难道是 机器的主板上的网卡那边有PCIE SWTICH芯片?(这样会导致网卡没办法同时跑满2.5G)
发表于 2023-7-12 11:12 | 显示全部楼层

你在Linux系统上 lspci 看看输出的有哪些设备来着。
里面pcie switch也是可以看到的。
 楼主| 发表于 2023-7-12 12:25 | 显示全部楼层
ShireCiel 发表于 2023-7-12 11:12
你在Linux系统上 lspci 看看输出的有哪些设备来着。
里面pcie switch也是可以看到的。 ...

厂家的BIOS还有些问题一直没解决,我暂时拆下了这个转接板,要等BIOS修正完成后再安装。

不过,找到之前安装时拍过这个:
IMG_3157.jpg
发表于 2023-7-12 16:59 | 显示全部楼层
marswjf 发表于 2023-7-7 23:02
大神V5....
非常需要,求更新,求详细教程....
8.0升级了你2023616日发的那个的内核后   

我也遇到了和你同样的问题,报错是一样的:

nvme nvme0: Device not ready; aborting initialisation, CSTS=0x0

我的也是爱国者7000Z 4T,PVE 8.0 版本,只有这一块硬盘。

发表于 2023-7-12 17:15 | 显示全部楼层
hawie 发表于 2023-7-12 12:25
厂家的BIOS还有些问题一直没解决,我暂时拆下了这个转接板,要等BIOS修正完成后再安装。

不过,找到之前 ...

卧槽。完全看不出来有啥Switch设备。看起来所有得通道都是从 CPU直出得??!?!?
发表于 2023-7-12 22:41 | 显示全部楼层
happysun110 发表于 2023-7-12 16:59
我也遇到了和你同样的问题,报错是一样的:

nvme nvme0: Device not ready; aborting initialisation, C ...

你是啥CPU呢  A家还的I家的?

我测试了下改grub
iommu=soft
amd_iommu=fullflush这些都无效

我用dmsg看了下,

如果没有成功启动,就是2个盘都没加载成功
nvme nvme0: Device not ready; aborting initialisation, CSTS=0x0
nvme nvme1: Device not ready; aborting initialisation, CSTS=0x0

如果成功启动,日志显示其中一个盘没有加载成功

[    0.003127] ACPI: SSDT 0x0000000091B4A000 00073F (v02 AMD    NVME     00000001 INTL 20220331)
[    0.003128] ACPI: SSDT 0x0000000091B49000 00073F (v02 AMD    NVME     00000001 INTL 20220331)
[    0.311251] pci 0000:02:00.0: [1e4b:1602] type 00 class 0x010802
[    0.311263] pci 0000:02:00.0: reg 0x10: [mem 0xdd100000-0xdd103fff 64bit]
[    0.312729] pci 0000:07:00.0: [1e4b:1602] type 00 class 0x010802
[    0.312744] pci 0000:07:00.0: reg 0x10: [mem 0xdcf00000-0xdcf03fff 64bit]
[    0.342006] pci_bus 0000:02: resource 1 [mem 0xdd100000-0xdd1fffff]
[    0.342009] pci_bus 0000:07: resource 1 [mem 0xdcf00000-0xdcffffff]
[    0.342694] pci 0000:02:00.0: Adding to iommu group 18
[    0.342725] pci 0000:07:00.0: Adding to iommu group 22
[    0.804086] nvme 0000:02:00.0: platform quirk: setting simple suspend
[    0.804090] nvme 0000:07:00.0: platform quirk: setting simple suspend
[    0.804137] nvme nvme1: pci function 0000:07:00.0
[    0.804138] nvme nvme0: pci function 0000:02:00.0
[    0.811168] nvme nvme0: Device not ready; aborting initialisation, CSTS=0x0
[    0.811174] fbcon: Taking over console
[    0.815787] nvme nvme1: allocated 40 MiB host memory buffer.
[    0.846933] pps pps0: new PPS source ptp0


0000:02和07的2个4T P7000Z都找到了
但是在初始化的时候0000.02那个盘没加载起来
只认出了一个


所以楼主的内核应该是有效的,
只是因为有其他原因导致这个盘加载不起来.
 楼主| 发表于 2023-7-13 10:36 | 显示全部楼层
ShireCiel 发表于 2023-7-12 17:15
卧槽。完全看不出来有啥Switch设备。看起来所有得通道都是从 CPU直出得??!?!? ...

厂家似乎能将N100的9条PCIE通道全都用上,配NVMe、网卡、USB3.0等不同的硬件规格。不过,我感兴趣的还是这个PCIe x4通道,拆分成4*M.2,理论上可用5*M.2(底板还有一条M.2)。但是,厂家这么久了目前还调试得不稳定,时不时死机,给他们指出来问题在哪儿也不改,所以改为暂不推荐了。等厂家自发地找到问题去改,不知道要到什么时侯,这个转接板只能先闲置吃灰了。
 楼主| 发表于 2023-7-13 10:48 | 显示全部楼层
marswjf 发表于 2023-7-12 22:41
你是啥CPU呢  A家还的I家的?

我测试了下改grub

亲测PVE 8的最新更新内核6.2.16-4,也没有把MAP1602的补丁做进去。
再编译了6.2.16-4的带补丁版本,放在1楼了。已验证能同时支持手头的P7000Z 2TB版本多块。

P7000Z的4TB版本比2TB版本,还有这些问题真是意外,不过由于当时没买4TB版本,手头没法测,等以后有条件了再试试。
如果你感兴趣可尝试自己修改,nvme内核驱动中的复位超时那个部份,表面现象是超时返回的错误信息。可能增加一点点超时的门限也许会好。
发表于 2023-7-13 16:22 | 显示全部楼层
hawie 发表于 2023-7-13 10:48
亲测PVE 8的最新更新内核6.2.16-4,也没有把MAP1602的补丁做进去。
再编译了6.2.16-4的带补丁版本,放在1 ...

感谢提供思路,我的硬盘是梵想S790 4TB,主控也是MAP1602,同样报 kernel: nvme nvme0: Device not ready; aborting initialisation, CSTS=0x0 错误,之前说的iommu=soft参数验证后发现无效,是偶然情况,我这里设备是联想的Y9000X 2022,bios里没法关闭ASPM来测试,昨天和朋友改的drivers/nvme/host/core.c 经过多次验证没有问题

  1. diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
  2. index 3ec38e2b9173..ab2583cb42aa 100644
  3. --- a/drivers/nvme/host/core.c
  4. +++ b/drivers/nvme/host/core.c
  5. @@ -2408,6 +2408,7 @@ int nvme_enable_ctrl(struct nvme_ctrl *ctrl)
  6.         } else {
  7.                 timeout = NVME_CAP_TIMEOUT(ctrl->cap);
  8.         }
  9. +        dev_info(ctrl->device, "[PATCH] nvme core got timeout %u\n",timeout);

  10.         ctrl->ctrl_config |= (NVME_CTRL_PAGE_SHIFT - 12) << NVME_CC_MPS_SHIFT;
  11.         ctrl->ctrl_config |= NVME_CC_AMS_RR | NVME_CC_SHN_NONE;
  12. @@ -2425,8 +2426,9 @@ int nvme_enable_ctrl(struct nvme_ctrl *ctrl)
  13.         ret = ctrl->ops->reg_write32(ctrl, NVME_REG_CC, ctrl->ctrl_config);
  14.         if (ret)
  15.                 return ret;
  16. +        dev_info(ctrl->device, "[PATCH] nvme_wait_ready now wait for %u, previously %u\n",(timeout + 1) * 2, (timeout + 1)/2);
  17.         return nvme_wait_ready(ctrl, NVME_CSTS_RDY, NVME_CSTS_RDY,
  18. -                               (timeout + 1) / 2, "initialisation");
  19. +                               (timeout + 1) * 2, "initialisation");
  20. }
  21. EXPORT_SYMBOL_GPL(nvme_enable_ctrl);

复制代码


直接暴力把timeout除以2改成乘2了hhh,应该是硬盘固件问题?也联系硬盘官方了,他们也在复现问题,修改后内核的dmesg信息如下

微信图片_20230713161415.jpg

感觉在楼主的修改位置,.driver_data后加入NVME_QUIRK_DELAY_BEFORE_CHK_RDY也可能会生效?之后我验证一下

楼上的marswjf和huyz兄弟可以试一下

评分

参与人数 1邪恶指数 +10 收起 理由
hawie + 10 就是NB

查看全部评分

 楼主| 发表于 2023-7-13 18:08 | 显示全部楼层
NexusHE 发表于 2023-7-13 16:22
感谢提供思路,我的硬盘是梵想S790 4TB,主控也是MAP1602,同样报 kernel: nvme nvme0: Device not ready ...

属性调整为:"NVME_QUIRK_DELAY_BEFORE_CHK_RDY | NVME_QUIRK_BOGUS_NID",放在1楼,有4TB盘可试试。
发表于 2023-7-13 18:24 | 显示全部楼层
本帖最后由 happysun110 于 2023-7-13 18:32 编辑

你们是怎么测试的啊,我可以一起来验证。

我的是 华硕 z690-p ddr4 主板,cpu 是 13700k,ssd 是爱国者p7000z 4t 单盘。我安装 pve 8.0.2 版本,安装过程正常,能正确识别 爱国者p7000z 4t 硬盘而且安装文件写入都正常。安装完成后重启,进入pve操作系统时报错

nvme nvme0: Device not ready; aborting initialisation, CSTS=0x0

你们说的补丁,是要怎么打?我现在连pve都启动不了,怎么打补丁啊?

最好是能进去 iso 启动盘,安装时就已经搞定了。

现在我这种安装正常启动失败,要怎么打补丁?请指教,谢谢!



=========

我明白了,你们是用这个有问题的ssd硬盘做从盘,pve 是安装在其他硬盘上。

😓,我是用这个盘做系统盘,pve是直接安装在这个 4t 硬盘上的,所以启动时失败我就完全没有机会做其他事情了。。。

只能等 iso 安装文件能修复这个问题了。
发表于 2023-7-13 18:26 | 显示全部楼层
bios里没法关闭ASPM来测试

这个我试过了,关闭 ASPM 之后依然是同样报错。
发表于 2023-7-13 19:04 | 显示全部楼层
本帖最后由 marswjf 于 2023-7-13 21:31 编辑
hawie 发表于 2023-7-13 18:08
属性调整为:"NVME_QUIRK_DELAY_BEFORE_CHK_RDY | NVME_QUIRK_BOGUS_NID",放在1楼,有4TB盘可试试。 ...


可以结案了
经测试,
PVE8.0下联芸1602 4T重启找不到盘,2*4T只认一个的故障已排除。


机器是零刻GTR7 ,
配置7840hs+64G+2*爱国者P7000Z 4T


各位大神简直V5


1.png


  1. root@marswjf:~# ls -la /dev/disk/by-id/|grep -v dm|grep -v lvm|grep -v part
  2. total 0
  3. drwxr-xr-x 2 root root 480 Jul 13 18:55 .
  4. drwxr-xr-x 7 root root 140 Jul 13 18:55 ..
  5. lrwxrwxrwx 1 root root  13 Jul 13 18:55 nvme-aigo_NVMe_SSD_P7000Z_4TB_19B46000000000000936 -> ../../nvme0n1
  6. lrwxrwxrwx 1 root root  13 Jul 13 18:55 nvme-aigo_NVMe_SSD_P7000Z_4TB_19B46000000000000948 -> ../../nvme1n1
  7. lrwxrwxrwx 1 root root  13 Jul 13 18:55 nvme-nvme.1e4b-3139423436303030303030303030303030393336-6169676f204e564d65205353442050373030305a20345442-00000001 -> ../../nvme0n1
  8. lrwxrwxrwx 1 root root  13 Jul 13 18:55 nvme-nvme.1e4b-3139423436303030303030303030303030393438-6169676f204e564d65205353442050373030305a20345442-00000001 -> ../../nvme1n1
复制代码

  1. root@marswjf:~# dmesg | grep nvme
  2. [    0.809229] nvme 0000:02:00.0: platform quirk: setting simple suspend
  3. [    0.809231] nvme 0000:07:00.0: platform quirk: setting simple suspend
  4. [    0.809277] nvme nvme1: pci function 0000:07:00.0
  5. [    0.809277] nvme nvme0: pci function 0000:02:00.0
  6. [    3.149783] nvme nvme0: allocated 40 MiB host memory buffer.
  7. [    3.149792] nvme nvme1: allocated 40 MiB host memory buffer.
  8. [    3.189419] nvme nvme1: 16/0/0 default/read/poll queues
  9. [    3.203389] nvme nvme0: 16/0/0 default/read/poll queues
  10. [    3.218318] nvme nvme0: Ignoring bogus Namespace Identifiers
  11. [    3.218475] nvme nvme1: Ignoring bogus Namespace Identifiers
  12. [    3.230674]  nvme0n1: p1 p2 p3
  13. [    3.231145]  nvme1n1: p1 p2 p3
复制代码


发表于 2023-7-13 20:52 | 显示全部楼层
happysun110 发表于 2023-7-13 18:24
你们是怎么测试的啊,我可以一起来验证。

我的是 华硕 z690-p ddr4 主板,cpu 是 13700k,ssd 是爱国者p70 ...

我是作为主盘用的,完全靠运气进入...差不多启动七八次有一次能进去,然后换内核解决
发表于 2023-7-13 21:26 | 显示全部楼层
NexusHE 发表于 2023-7-13 20:52
我是作为主盘用的,完全靠运气进入...差不多启动七八次有一次能进去,然后换内核解决 ...

请教下  换的哪个内核呢?什么版本   求链接
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2024-5-19 19:48 , Processed in 0.014028 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表