Ubuntu 22.04.2 上的旧 Sata/Sas 控制器

Ubuntu 22.04.2 上的旧 Sata/Sas 控制器

我最近买了一块新主板(华硕 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_EXTMarvell 供应商 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。查看引用:

  1. 驱动程序/ata/ahci.c:没有该0x9215身份的条目,但有其他 Marvell 身份的条目。这是模块的源代码,ahci.ko它是AHCI SATA 低级驱动程序。即缺少标识0x9215意味着盒内ahci.ko模块不支持 Marvell 9215 芯片组。
  2. 驱动程序/pci/quirks.c确实引用了0x9215身份:
     /* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c135 */
     DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9215,
                  quirk_dma_func1_alias);
    
    正在修复 Marvell 9215 芯片组的一个问题
  3. 驱动程序/scsi/mvsas/mv_init.c:没有输入身份0x9215信息
  4. 驱动程序/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

  1. 键入以下命令:
    ls
    cd/boot/grub
    vim menu.lst
    
  2. 在列出 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-pex40097SATA 控制器工作:

  1. 编辑/etc/default/grub并添加ata_generic.all_generic_ide=1GRUB_CMDLINE_LINUX。例如:
    GRUB_CMDLINE_LINUX="ata_generic.all_generic_ide=1"
    
  2. 进行更改并保存文件后,必须通过运行以下命令更新 GRUB 2 菜单以包含更改:
    sudo update-grub
    
  3. 重启

使用 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

笔记:我没有硬件来确认上述说明是否有效。

相关内容