CentOS 8 - RocketRAID 2720 非 raid bios,驱动程序安装问题

CentOS 8 - RocketRAID 2720 非 raid bios,驱动程序安装问题

我正在尝试安装 RocketRAID 2720 HBA 的 highpoint 驱动程序。我想将所连接的驱动器用作 Linux 中的单独块设备。

为此,我通过 freedos 刷新了“非 raid” bios:https://www.highpoint-tech.com/USA_new/series_rr272x_configuration.htm

该设备显示为“Marvell 88SE9480 控制器”:

# lspci | grep -i "Marvell"
03:00.0 RAID bus controller: Marvell Technology Group Ltd. 88SE9480 SAS/SATA 6Gb/s RAID controller (rev c2)

现在我正努力安装从 highpoint 网站获取的链接驱动程序。

我已按照 tgz 档案中的“自述”文件进行操作,并发出了“make”,但未能成功运行。

[root@server]# make
make ARCH=x86_64 CC=cc LD=ld CROSS_COMPILE= V= -C /lib/modules/4.18.0-240.15.1.el8_3.x86_64/build SUBDIRS=`pwd` modules
make[1]: Verzeichnis „/usr/src/kernels/4.18.0-240.15.1.el8_3.x86_64“ wird betreten
  CC [M]  /root/installation_non_raid_bios/partial/linux_main.o
In file included from /root/installation_non_raid_bios/partial/mv_os.h:9,
                 from /root/installation_non_raid_bios/partial/hba_header.h:4,
                 from /root/installation_non_raid_bios/partial/linux_main.h:4,
                 from /root/installation_non_raid_bios/partial/linux_main.c:8:
./include/linux/config.h:3:9: Fehler: #include erwartet "DATEINAME" oder <DATEINAME>
 #include
         ^
./include/linux/config.h:4:1: Fehler: expected identifier or »(« before »<« token
 <linux/autoconf.h>
 ^
In file included from ./include/uapi/asm-generic/types.h:7,
                 from ./arch/x86/include/uapi/asm/types.h:5,
                 from ./include/uapi/linux/types.h:5,
                 from ./include/linux/types.h:6,
                 from ./include/linux/list.h:5,
                 from /root/installation_non_raid_bios/partial/mv_os.h:12,
                 from /root/installation_non_raid_bios/partial/hba_header.h:4,
                 from /root/installation_non_raid_bios/partial/linux_main.h:4,
                 from /root/installation_non_raid_bios/partial/linux_main.c:8:
./include/asm-generic/int-ll64.h:16:9: Fehler: unbekannter Typname: »__s8«
 typedef __s8  s8;
         ^~~~
In file included from ./include/linux/quota.h:42,
                 from ./include/linux/fs.h:236,
                 from ./include/drm-backport/linux/fs.h:14,
                 from ./include/linux/proc_fs.h:9,
                 from /root/installation_non_raid_bios/partial/mv_os.h:24,
                 from /root/installation_non_raid_bios/partial/hba_header.h:4,
                 from /root/installation_non_raid_bios/partial/linux_main.h:4,
                 from /root/installation_non_raid_bios/partial/linux_main.c:8:
./include/uapi/linux/dqblk_xfs.h:54:2: Fehler: unbekannter Typname: »__s8«
  __s8  d_version; /* version of this structure */
  ^~~~
./include/uapi/linux/dqblk_xfs.h:55:2: Fehler: unbekannter Typname: »__s8«
  __s8  d_flags; /* FS_{USER,PROJ,GROUP}_QUOTA */
  ^~~~
./include/uapi/linux/dqblk_xfs.h:156:2: Fehler: unbekannter Typname: »__s8«
  __s8  qs_version; /* version number for future changes */
  ^~~~
./include/uapi/linux/dqblk_xfs.h:158:2: Fehler: unbekannter Typname: »__s8«
  __s8  qs_pad;  /* unused */
  ^~~~
./include/uapi/linux/dqblk_xfs.h:200:2: Fehler: unbekannter Typname: »__s8«
  __s8   qs_version; /* version for future changes */
  ^~~~
/root/installation_non_raid_bios/partial/linux_main.c: In Funktion »mv_probe«:
/root/installation_non_raid_bios/partial/linux_main.c:112:30: Fehler: »DMA_64BIT_MASK« nicht deklariert (erstmalige Verwendung in dieser Funktion); meinten Sie »DMA_BIT_MASK«?
  if ( !pci_set_dma_mask(dev, DMA_64BIT_MASK) ) {
                              ^~~~~~~~~~~~~~
                              DMA_BIT_MASK
/root/installation_non_raid_bios/partial/linux_main.c:112:30: Anmerkung: jeder nicht deklarierte Bezeichner wird nur einmal für jede Funktion, in der er vorkommt, gemeldet
/root/installation_non_raid_bios/partial/linux_main.c:117:10: Fehler: »DMA_32BIT_MASK« nicht deklariert (erstmalige Verwendung in dieser Funktion); meinten Sie »DMA_BIT_MASK«?
          DMA_32BIT_MASK);
          ^~~~~~~~~~~~~~
          DMA_BIT_MASK
/root/installation_non_raid_bios/partial/linux_main.c: Auf höchster Ebene:
/root/installation_non_raid_bios/partial/linux_main.c:180:23: Fehler: expected »=«, »,«, »;«, »asm« or »__attribute__« before »mv_remove«
 static void __devexit mv_remove(struct pci_dev *dev)
                       ^~~~~~~~~
/root/installation_non_raid_bios/partial/linux_main.c:347:14: Fehler: Implizite Deklaration der Funktion »__devexit_p« [-Werror=implicit-function-declaration]
  .remove   = __devexit_p(mv_remove),
              ^~~~~~~~~~~
/root/installation_non_raid_bios/partial/linux_main.c:347:26: Fehler: »mv_remove« ist hier (außerhalb einer Funktion) nicht deklariert; meinten Sie »mv_resume«?
  .remove   = __devexit_p(mv_remove),
                          ^~~~~~~~~
                          mv_resume
/root/installation_non_raid_bios/partial/linux_main.c: In Funktion »scsi_cmd_to_req_conv«:
/root/installation_non_raid_bios/partial/linux_main.c:909:24: Warnung: Typkonvertierung von Zeiger auf Ganzzahl anderer Breite [-Wpointer-to-int-cast]
  pReq->Device_Id     = (u32)scmd->device->hostdata;
                        ^
/root/installation_non_raid_bios/partial/linux_main.c: In Funktion »hba_ioctl_req_callback«:
/root/installation_non_raid_bios/partial/linux_main.c:936:15: Fehler: »struct request« hat kein Element namens »sense«
  scmd->request->sense = pReq->Sense_Info_Buffer;
               ^~
/root/installation_non_raid_bios/partial/linux_main.c:937:15: Fehler: »struct request« hat kein Element namens »sense_len«
  scmd->request->sense_len = pReq->Sense_Info_Buffer_Length;
               ^~
/root/installation_non_raid_bios/partial/linux_main.c: In Funktion »scsi_ioctl_cmd_adjust«:
/root/installation_non_raid_bios/partial/linux_main.c:959:38: Fehler: »struct request« hat kein Element namens »errors«
  memcpy(pReq->Cdb,mvcdb[scmd->request->errors - 1],16);
                                      ^~
/root/installation_non_raid_bios/partial/linux_main.c:971:46: Fehler: »struct request« hat kein Element namens »errors«
  pReq->Data_Buffer = kbuf_array[scmd->request->errors - 1];
                                              ^~
/root/installation_non_raid_bios/partial/linux_main.c:975:15: Fehler: »struct request« hat kein Element namens »errors«
  scmd->request->errors = 0;
               ^~
/root/installation_non_raid_bios/partial/linux_main.c:976:41: Fehler: »struct request« hat kein Element namens »sense«
  pReq->Sense_Info_Buffer = scmd->request->sense;
                                         ^~
/root/installation_non_raid_bios/partial/linux_main.c:977:48: Fehler: »struct request« hat kein Element namens »sense_len«
  pReq->Sense_Info_Buffer_Length = scmd->request->sense_len;
                                                ^~
/root/installation_non_raid_bios/partial/linux_main.c: In Funktion »mv_linux_timed_out«:
/root/installation_non_raid_bios/partial/linux_main.c:1215:34: Fehler: »BLK_EH_NOT_HANDLED« nicht deklariert (erstmalige Verwendung in dieser Funktion); meinten Sie »BLK_EH_DONE«?
  return (ret)?BLK_EH_RESET_TIMER:BLK_EH_NOT_HANDLED;
                                  ^~~~~~~~~~~~~~~~~~
                                  BLK_EH_DONE
/root/installation_non_raid_bios/partial/linux_main.c: In Funktion »mv_linux_queue_command_lck«:
/root/installation_non_raid_bios/partial/linux_main.c:1292:18: Fehler: »struct request« hat kein Element namens »errors«
  if(scmd->request->errors)
                  ^~
/root/installation_non_raid_bios/partial/linux_main.c: In Funktion »mv_scsi_slave_alloc«:
/root/installation_non_raid_bios/partial/linux_main.c:1573:19: Warnung: Typkonvertierung in Zeiger von Ganzzahl anderer Breite [-Wint-to-pointer-cast]
  sdev->hostdata = (void *)base_id;
                   ^
/root/installation_non_raid_bios/partial/linux_main.c: In Funktion »mv_scsi_slave_configure«:
/root/installation_non_raid_bios/partial/linux_main.c:1718:3: Fehler: Implizite Deklaration der Funktion »scsi_adjust_queue_depth«; meinten Sie »scsi_change_queue_depth«? [-Werror=implicit-function-declaration]
   scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev),
   ^~~~~~~~~~~~~~~~~~~~~~~
   scsi_change_queue_depth
/root/installation_non_raid_bios/partial/linux_main.c:1718:33: Fehler: Implizite Deklaration der Funktion »scsi_get_tag_type«; meinten Sie »scsi_get_prot_type«? [-Werror=implicit-function-declaration]
   scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev),
                                 ^~~~~~~~~~~~~~~~~
                                 scsi_get_prot_type
/root/installation_non_raid_bios/partial/linux_main.c: In Funktion »mv_change_queue_type«:
/root/installation_non_raid_bios/partial/linux_main.c:1766:2: Fehler: Implizite Deklaration der Funktion »scsi_deactivate_tcq«; meinten Sie »scsi_device_tpgs«? [-Werror=implicit-function-declaration]
  scsi_deactivate_tcq(scsi_dev, 1);
  ^~~~~~~~~~~~~~~~~~~
  scsi_device_tpgs
/root/installation_non_raid_bios/partial/linux_main.c:1768:2: Fehler: Implizite Deklaration der Funktion »scsi_set_tag_type«; meinten Sie »scsi_set_prot_type«? [-Werror=implicit-function-declaration]
  scsi_set_tag_type(scsi_dev, qt);
  ^~~~~~~~~~~~~~~~~
  scsi_set_prot_type
/root/installation_non_raid_bios/partial/linux_main.c:1769:2: Fehler: Implizite Deklaration der Funktion »scsi_activate_tcq«; meinten Sie »scsi_execute_req«? [-Werror=implicit-function-declaration]
  scsi_activate_tcq(scsi_dev, scsi_dev->queue_depth);
  ^~~~~~~~~~~~~~~~~
  scsi_execute_req
/root/installation_non_raid_bios/partial/linux_main.c: Auf höchster Ebene:
/root/installation_non_raid_bios/partial/linux_main.c:1791:3: Fehler: »struct scsi_host_template« hat kein Element namens »proc_info«; meinten Sie »show_info«?
  .proc_info                   =  mv_linux_proc_info,
   ^~~~~~~~~
   show_info
/root/installation_non_raid_bios/partial/linux_main.c:1791:34: Fehler: Initialisierung von »struct proc_dir_entry *« von inkompatiblem Zeigertyp »int (*)(struct Scsi_Host *, char *, char **, off_t,  int,  int)« {alias »int (*)(struct Scsi_Host *, char *, char **, long int,  int,  int)«} [-Werror=incompatible-pointer-types]
  .proc_info                   =  mv_linux_proc_info,
                                  ^~~~~~~~~~~~~~~~~~
/root/installation_non_raid_bios/partial/linux_main.c:1791:34: Anmerkung: (nahe der Initialisierung für »mv_driver_template.proc_dir«)
/root/installation_non_raid_bios/partial/linux_main.c:1806:3: Fehler: »struct scsi_host_template« hat kein Element namens »change_queue_type«; meinten Sie »change_queue_depth«?
  .change_queue_type  = mv_change_queue_type,
   ^~~~~~~~~~~~~~~~~
   change_queue_depth
/root/installation_non_raid_bios/partial/linux_main.c:1806:24: Fehler: Initialisierung von »int (*)(struct Scsi_Host *)« von inkompatiblem Zeigertyp »int (*)(struct scsi_device *, int)« [-Werror=incompatible-pointer-types]
  .change_queue_type  = mv_change_queue_type,
                        ^~~~~~~~~~~~~~~~~~~~
/root/installation_non_raid_bios/partial/linux_main.c:1806:24: Anmerkung: (nahe der Initialisierung für »mv_driver_template.map_queues«)
/root/installation_non_raid_bios/partial/linux_main.c:1833:3: Fehler: »struct scsi_transport_template« hat kein Element namens »eh_timed_out«
  .eh_timed_out   =  mv_linux_timed_out,
   ^~~~~~~~~~~~
/root/installation_non_raid_bios/partial/linux_main.c:1833:21: Fehler: Initialisierung von »struct list_head *« von inkompatiblem Zeigertyp »enum blk_eh_timer_return (*)(struct scsi_cmnd *)« [-Werror=incompatible-pointer-types]
  .eh_timed_out   =  mv_linux_timed_out,
                     ^~~~~~~~~~~~~~~~~~
/root/installation_non_raid_bios/partial/linux_main.c:1833:21: Anmerkung: (nahe der Initialisierung für »mv_transport_template.host_attrs.ac.node.next«)
/root/installation_non_raid_bios/partial/linux_main.c:1832:63: Warnung: geschweifte Klammern fehlen um Initialisierung [-Wmissing-braces]
 static struct scsi_transport_template mv_transport_template = {
                                                               ^
  .eh_timed_out   =  mv_linux_timed_out,
                     {{{
 };
 }}}
/root/installation_non_raid_bios/partial/linux_main.c: In Funktion »mv_linux_timed_out«:
/root/installation_non_raid_bios/partial/linux_main.c:1217:1: Warnung: Kontrollfluss erreicht Ende von Nicht-void-Funktion [-Wreturn-type]
 }
 ^
cc1: Einige Warnungen werden als Fehler behandelt
make[2]: *** [scripts/Makefile.build:316: /root/installation_non_raid_bios/partial/linux_main.o] Fehler 1
make[1]: *** [Makefile:1544: _module_/root/installation_non_raid_bios/partial] Fehler 2
make[1]: Verzeichnis „/usr/src/kernels/4.18.0-240.15.1.el8_3.x86_64“ wird verlassen
make: *** [Makefile:144: all] Fehler 2

我不知道哪里出了问题以及如何解决。

有人知道哪里出了问题或者我错过了什么吗?我该如何安装 Marvell 控制器的驱动程序?

谢谢您的建议!任何帮助都值得感激。


发现/结果

编辑:在 hightpoint 方面的 pdf“选择什么 bios”中,它说非 raid bios 的使用支持 linux“mvsas”驱动程序。

安装 Non-RAID BIOS 后,RocketRAID 272x/271x HBA 只能支持单磁盘配置。此模式允许 HBA 实质上用作非 RAID “Rocket”2700 型号,并可支持 Linux OS 的嵌入式 mvsas 驱动程序。

我如何使用/加载 mvsas 驱动程序?

编辑 2:发现 mvsas 驱动程序在 CentOS 8 中已被删除。 https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/considerations_in_adopting_rhel_8/hardware-enablement_considerations-in-adopting-rhel-8

在 CentOS 8 plus 内核中再次添加了驱动程序:https://bugs.centos.org/view.php?id=16762&https://bugs.centos.org/view.php?id=16817

与标准内核相比,使用加号内核有什么优势?

答案1

我找到了解决问题的方法。我使用从 CentOS 8 中删除的“mvsas”驱动程序。

埃尔雷波项目有可立即安装的软件包,可在此处找到:https://elrepo.org/linux/dud/el8/x86_64/(感谢您出色的工作!)

安装驱动程序 iso:

mount dd-mvsas-0.8.16-3.el8_3.elrepo.iso /media/
cd /media/rpms/x86_64

使用以下命令安装驱动程序包:

rpm -i kmod-mvsas-0.8.16-3.el8_3.elrepo.x86_64.rpm

重启系统。重启完成后,所有连接的磁盘都会显示出来。

附注:我将原始快速 BIOS 刷入控制器,即使有了它和 mvsas 驱动程序,我也可以单独使用所有磁盘。但是,我最终使用了非 raid BIOS。

确保卸载之前使用的所有其他驱动程序。

hptuninrr272x_1x

相关内容