NexusHE
发表于 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
hawie
发表于 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
等等
hawie
发表于 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是三星的。
eneiku
发表于 2023-7-10 07:54
楼主小主机长啥样,想看看4盘位
hawie
发表于 2023-7-10 08:09
eneiku 发表于 2023-7-10 07:54
楼主小主机长啥样,想看看4盘位
可以关注,但不推荐,厂家目前还没有解决一些问题。
eneiku
发表于 2023-7-10 08:37
hawie 发表于 2023-7-10 08:09
可以关注,但不推荐,厂家目前还没有解决一些问题。
看起来太舒适,以后4x4T,直接脱坑了
marswjf
发表于 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内核的管理界面看不到硬盘
hawie
发表于 2023-7-10 18:43
marswjf 发表于 2023-7-10 18:15
4T的PCIe ID是1e4b:1602。
看上去可以用哇
目前用LSPCI能看到
ls -la /dev/disk/by-id/|grep -v dm|grep -v lvm|grep -v part
可以看看/dev/disk/by-id/目录有没有识别了全部的盘。
marswjf
发表于 2023-7-10 19:28
hawie 发表于 2023-7-10 18:43
可以看看/dev/disk/by-id/目录有没有识别了全部的盘。
这算是2个盘吗?
nvme-eui.0000000000000000d0d0d0d0d0d0d0d0和 nvme-aigo_NVMe_SSD_P7000Z_4TB_19B46000000000000948
好像都在nvme1n1下面
hawie
发表于 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 root13 Jul 11 02:02 nvme-aigo_NVMe_SSD_P7000Z_4TB_15765000000010001880 -> ../../nvme1n1
lrwxrwxrwx 1 root root13 Jul 11 02:02 nvme-aigo_NVMe_SSD_P7000Z_4TB_15765000000010001885 -> ../../nvme0n1
补丁解决的重复ID问题,是针对的类似这样的内核信息:
nvme nvme0: globally duplicate IDs for nsid 1
4TB看来还有其他不一样要处理,这类broken hardware距离大品牌还任重道远。
marswjf
发表于 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,每次开启执行一次完全刷新试试能不能解决这个问题
marswjf
发表于 2023-7-11 15:39
hawie 发表于 2023-7-11 02:11
只认了一个盘。类似这样是两个盘:
lrwxrwxrwx 1 root root13 Jul 11 02:02 nvme-aigo_NVMe_SSD_P7000Z ...
感觉可能和我是AMD CPU有关系. intel的兼容性会好一些
wangmice
发表于 2023-7-12 00:41
marswjf 发表于 2023-7-7 23:02
大神V5....
非常需要,求更新,求详细教程....
8.0升级了你2023616日发的那个的内核后
同样问题,加了iommu参数也不起作用
ShireCiel
发表于 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得速度会有影响?
hawie
发表于 2023-7-12 10:44
ShireCiel 发表于 2023-7-12 10:26
请教一下这转接卡是不是有啥芯片啊。
N100虽然有9条PCIE通道。 但是实际上CPU最高支持 6个PCIE设备。(8 ...
转接板:
芯片局部图:
你看看,是什么情况?
ShireCiel
发表于 2023-7-12 11:06
hawie 发表于 2023-7-12 10:44
转接板:
这颗芯片是一颗clock buffer。
作用是 将1路时钟 分成 多路时钟。没有PCIE SWITCH的作用。
奇了怪了。按理说Intel的RootPort是物理上的闲置,不存在破解的可能性的。
难道是 机器的主板上的网卡那边有PCIE SWTICH芯片?(这样会导致网卡没办法同时跑满2.5G)
ShireCiel
发表于 2023-7-12 11:12
hawie 发表于 2023-7-12 10:44
转接板:
你在Linux系统上 lspci 看看输出的有哪些设备来着。
里面pcie switch也是可以看到的。
hawie
发表于 2023-7-12 12:25
ShireCiel 发表于 2023-7-12 11:12
你在Linux系统上 lspci 看看输出的有哪些设备来着。
里面pcie switch也是可以看到的。 ...
厂家的BIOS还有些问题一直没解决,我暂时拆下了这个转接板,要等BIOS修正完成后再安装。
不过,找到之前安装时拍过这个:
happysun110
发表于 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 版本,只有这一块硬盘。
ShireCiel
发表于 2023-7-12 17:15
hawie 发表于 2023-7-12 12:25
厂家的BIOS还有些问题一直没解决,我暂时拆下了这个转接板,要等BIOS修正完成后再安装。
不过,找到之前 ...
卧槽。完全看不出来有啥Switch设备。看起来所有得通道都是从 CPU直出得??!?!?
marswjf
发表于 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: type 00 class 0x010802
[ 0.311263] pci 0000:02:00.0: reg 0x10:
[ 0.312729] pci 0000:07:00.0: type 00 class 0x010802
[ 0.312744] pci 0000:07:00.0: reg 0x10:
[ 0.342006] pci_bus 0000:02: resource 1
[ 0.342009] pci_bus 0000:07: resource 1
[ 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那个盘没加载起来
只认出了一个
所以楼主的内核应该是有效的,
只是因为有其他原因导致这个盘加载不起来.
hawie
发表于 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)。但是,厂家这么久了目前还调试得不稳定,时不时死机,给他们指出来问题在哪儿也不改,所以改为暂不推荐了。等厂家自发地找到问题去改,不知道要到什么时侯,这个转接板只能先闲置吃灰了。
hawie
发表于 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内核驱动中的复位超时那个部份,表面现象是超时返回的错误信息。可能增加一点点超时的门限也许会好。
NexusHE
发表于 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 经过多次验证没有问题
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 3ec38e2b9173..ab2583cb42aa 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -2408,6 +2408,7 @@ int nvme_enable_ctrl(struct nvme_ctrl *ctrl)
} else {
timeout = NVME_CAP_TIMEOUT(ctrl->cap);
}
+ dev_info(ctrl->device, " nvme core got timeout %u\n",timeout);
ctrl->ctrl_config |= (NVME_CTRL_PAGE_SHIFT - 12) << NVME_CC_MPS_SHIFT;
ctrl->ctrl_config |= NVME_CC_AMS_RR | NVME_CC_SHN_NONE;
@@ -2425,8 +2426,9 @@ int nvme_enable_ctrl(struct nvme_ctrl *ctrl)
ret = ctrl->ops->reg_write32(ctrl, NVME_REG_CC, ctrl->ctrl_config);
if (ret)
return ret;
+ dev_info(ctrl->device, " nvme_wait_ready now wait for %u, previously %u\n",(timeout + 1) * 2, (timeout + 1)/2);
return nvme_wait_ready(ctrl, NVME_CSTS_RDY, NVME_CSTS_RDY,
- (timeout + 1) / 2, "initialisation");
+ (timeout + 1) * 2, "initialisation");
}
EXPORT_SYMBOL_GPL(nvme_enable_ctrl);
直接暴力把timeout除以2改成乘2了hhh,应该是硬盘固件问题?也联系硬盘官方了,他们也在复现问题,修改后内核的dmesg信息如下
感觉在楼主的修改位置,.driver_data后加入NVME_QUIRK_DELAY_BEFORE_CHK_RDY也可能会生效?之后我验证一下
楼上的marswjf和huyz兄弟可以试一下
hawie
发表于 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盘可试试。
happysun110
发表于 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 安装文件能修复这个问题了。
happysun110
发表于 2023-7-13 18:26
bios里没法关闭ASPM来测试
这个我试过了,关闭 ASPM 之后依然是同样报错。
marswjf
发表于 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
root@marswjf:~# ls -la /dev/disk/by-id/|grep -v dm|grep -v lvm|grep -v part
total 0
drwxr-xr-x 2 root root 480 Jul 13 18:55 .
drwxr-xr-x 7 root root 140 Jul 13 18:55 ..
lrwxrwxrwx 1 root root13 Jul 13 18:55 nvme-aigo_NVMe_SSD_P7000Z_4TB_19B46000000000000936 -> ../../nvme0n1
lrwxrwxrwx 1 root root13 Jul 13 18:55 nvme-aigo_NVMe_SSD_P7000Z_4TB_19B46000000000000948 -> ../../nvme1n1
lrwxrwxrwx 1 root root13 Jul 13 18:55 nvme-nvme.1e4b-3139423436303030303030303030303030393336-6169676f204e564d65205353442050373030305a20345442-00000001 -> ../../nvme0n1
lrwxrwxrwx 1 root root13 Jul 13 18:55 nvme-nvme.1e4b-3139423436303030303030303030303030393438-6169676f204e564d65205353442050373030305a20345442-00000001 -> ../../nvme1n1
root@marswjf:~# dmesg | grep nvme
[ 0.809229] nvme 0000:02:00.0: platform quirk: setting simple suspend
[ 0.809231] nvme 0000:07:00.0: platform quirk: setting simple suspend
[ 0.809277] nvme nvme1: pci function 0000:07:00.0
[ 0.809277] nvme nvme0: pci function 0000:02:00.0
[ 3.149783] nvme nvme0: allocated 40 MiB host memory buffer.
[ 3.149792] nvme nvme1: allocated 40 MiB host memory buffer.
[ 3.189419] nvme nvme1: 16/0/0 default/read/poll queues
[ 3.203389] nvme nvme0: 16/0/0 default/read/poll queues
[ 3.218318] nvme nvme0: Ignoring bogus Namespace Identifiers
[ 3.218475] nvme nvme1: Ignoring bogus Namespace Identifiers
[ 3.230674]nvme0n1: p1 p2 p3
[ 3.231145]nvme1n1: p1 p2 p3
NexusHE
发表于 2023-7-13 20:52
happysun110 发表于 2023-7-13 18:24
你们是怎么测试的啊,我可以一起来验证。
我的是 华硕 z690-p ddr4 主板,cpu 是 13700k,ssd 是爱国者p70 ...
我是作为主盘用的,完全靠运气进入...差不多启动七八次有一次能进去,然后换内核解决
marswjf
发表于 2023-7-13 21:26
NexusHE 发表于 2023-7-13 20:52
我是作为主盘用的,完全靠运气进入...差不多启动七八次有一次能进去,然后换内核解决 ...
请教下换的哪个内核呢?什么版本 求链接