我最近买了一块新主板(华硕 ROG Strix B650E-F GAMING WIFI + AMD Ryzen 9 7900 CPU),并从旧设备(Iocrest si-pex40097)上移过来了一个旧 SATA 控制器。它在 Windows 11 下可以正常工作,无需任何额外的驱动程序/软件。
但是,我想设置 Linux(Ubuntu Server),以便可以在多个驱动器上设置 RAID。尝试过 Linux 22.04.2 后,无法看到驱动器。
这个 Sata 控制器确实可以在我旧的设备中使用 ubuntu server 18,无需额外的驱动程序。
我尝试过使用此处的说明(https://www.sybausa.com/index.php?route=product/product/download&download_id=225),但它们似乎适用于旧版本的 grub。
任何想法都将受到赞赏。
戴夫
答案1
查找 SATA 控制器的预期 PCI 供应商和设备 ID
问题说 SATA 控制卡是一个Iocrest si-pex40097
。
产品页面16 端口 SATA PCI-e 2.0 x4 卡 - SI-PEX40097说:
芯片组: Marvell 9215
PCI ID 存储库具有名称:88SE9215 PCIe 2.0 x1 4 端口 SATA 6 Gb/s 控制器身份为:
供应商 1b4b
设备 9215
在 Ubuntu 22.04 或 18.04 中找不到支持 Marvell 9215 的内置内核模块
通过Ubuntu 22.04.4 LTS
安装和5.15.0-100-generic
内核,使用以下方法扫描模块以查看哪些模块支持 Marvell 供应商 ID 1B4B
:
find /lib/modules/5.15.0-100-generic/ -name '*.ko' | xargs -n 1 modinfo | grep 1B4B
pci:v00001B4Bd00009215
上面没有找到任何支持 Marvell 9215 芯片组的盒内模块。
在 Linux 内核源代码中,PCI_VENDOR_ID_MARVELL_EXT
Marvell 供应商 ID 的标识符是0x1b4b
。
https://elixir.bootlin.com/linux/v5.15.100/C/ident/PCI_VENDOR_ID_MARVELL_EXT是 Ubuntu 22.04 安装中使用的内核版本标识符的引用PCI_VENDOR_ID_MARVELL_EXT
。查看引用:
- 驱动程序/ata/ahci.c:没有该
0x9215
身份的条目,但有其他 Marvell 身份的条目。这是模块的源代码,ahci.ko
它是AHCI SATA 低级驱动程序。即缺少标识0x9215
意味着盒内ahci.ko
模块不支持 Marvell 9215 芯片组。 - 驱动程序/pci/quirks.c确实引用了
0x9215
身份:
正在修复 Marvell 9215 芯片组的一个问题/* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c135 */ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9215, quirk_dma_func1_alias);
- 驱动程序/scsi/mvsas/mv_init.c:没有输入身份
0x9215
信息 - 驱动程序/scsi/mvumi.c:没有输入身份
0x9215
信息
还启动了Ubuntu 18.04.1
实时 DVD,并且在旧版 Ubuntu 发行版中也没有找到任何支持 Marvell 9215 芯片组的内置内核模块。
也就是说,Ubuntu 18.04 和 22.04 之间似乎并没有删除对 Marvell 9215 芯片组的内置支持,因为这两者都没有提供该支持。
如何使用 GRUB 2 设置 all_generic_ide
从问题来看:
我尝试过使用此处的说明(https://www.sybausa.com/index.php?route=product/product/download&download_id=225),但它们似乎适用于旧版本的 grub。
上面链接的说明说要修改menu.lst
:
- 键入以下命令:
ls cd/boot/grub vim menu.lst
- 在列出 Linux 发行版版本信息的标题段落的内核行末尾键入以下命令。
ata_generic.all_generic_ide=1
Ubuntu 22.04 使用 GRUB 2.06,其中menu.lst
配置文件已被替换/etc/default/grub
。请参阅配置 GRUB 2有关如何配置 GRUB 2 的 Ubuntu 说明。
建议在 Ubuntu 22.04 中尝试以下操作以尝试使Iocrest si-pex40097
SATA 控制器工作:
- 编辑
/etc/default/grub
并添加ata_generic.all_generic_ide=1
到GRUB_CMDLINE_LINUX
。例如:GRUB_CMDLINE_LINUX="ata_generic.all_generic_ide=1"
- 进行更改并保存文件后,必须通过运行以下命令更新 GRUB 2 菜单以包含更改:
sudo update-grub
- 重启
使用 Ubuntu 22.04.04.LTS 检查ata_generic
模块确实包含该all_generic_ide
参数:
$ modinfo ata_generic
name: ata_generic
filename: (builtin)
version: 0.2.15
license: GPL
file: drivers/ata/ata_generic
description: low-level driver for generic ATA
author: Alan Cox
parm: all_generic_ide:int
笔记:我没有硬件来确认上述说明是否有效。