Rocky 8 PXE Installation fails to detect SSD or HDD devices on Intel S2600WP server board

Greetings ,

I can’t perform a PXE installationof Rocky Linux 8 in a group of 10 servers, all of them servers boards of model Intel S2600WP.
My PXE is a Rocky Linux 8.10 server that uses TFTP over FTP.

Problem summary:
No matter how I configure the Mass Storage Management option in their BIOs, it doesn’t detect any device regardless of type ( I’m using HDD and SSD disks with SATA connections ). However, when using a Live Test DVD of Centos 6 or 7 on those boards, all devices are detected normally.

This is the information i gathered when trying with the BIOS configured with these storage options:

  • AHCI SATA mode= AHCI
  • SAS/SATA mode = RSTe*

PCI BUS SCAN

lspci -nn | grep -i -P "ahci|sas|sata|ata|ide|isci|scsi"

00:1f.2 SATA controller [0106]: Intel Corporation C600/X79 series chipset 6-Port SATA AHCI Controller [8086:1d02] (rev 06)
04:00.0 Serial Attached SCSI controller [0107]: Intel Corporation C602 chipset 4-Port SATA Storage Control Unit [8086:1d6b] (rev 06)

MODULE PACKAGES SCAN

find /lib/modules -name "*sas.ko.xz" -or -name "ata*.ko.xz*" -or -name "*isci*.ko.xz" -or -name "*ata*.ko.xz"

/lib/modules/4.18.0-513.5.1.el8_9.x86_64/kernel/drivers/scsi/mpt3sas/mpt3sas.ko.xz
/lib/modules/4.18.0-513.5.1.el8_9.x86_64/kernel/drivers/scsi/libsas/libsas.ko.xz
/lib/modules/4.18.0-513.5.1.el8_9.x86_64/kernel/drivers/scsi/scsi_transport_sas.ko.xz
/lib/modules/4.18.0-513.5.1.el8_9.x86_64/kernel/drivers/scsi/megaraid/megaraid_sas.ko.xz
/lib/modules/4.18.0-513.5.1.el8_9.x86_64/kernel/drivers/usb/storage/ums-datafab.ko.xz
/lib/modules/4.18.0-513.5.1.el8_9.x86_64/kernel/drivers/ata/libata.ko.xz
/lib/modules/4.18.0-513.5.1.el8_9.x86_64/kernel/drivers/ata/ata_generic.ko.xz
/lib/modules/4.18.0-513.5.1.el8_9.x86_64/kernel/drivers/ata/ata_piix.ko.xz
/lib/modules/4.18.0-513.5.1.el8_9.x86_64/kernel/drivers/md/persistent-data/dm-persistent-data.ko.xz
/lib/modules/4.18.0-513.5.1.el8_9.x86_64/kernel/drivers/message/fusion/mptsas.ko.xz

KERNEL SCAN
dmesg | grep -i -P "sas|sata|ata|isci|scsi|ahci|nvme|ide|storage"

[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: [mem 0x00000000bddcd000-0x00000000bdea0fff] ACPI data
[ 0.000000] BIOS-e820: [mem 0x00000000bdf2f000-0x00000000bdfaafff] ACPI data
[ 0.000000] reserve setup_data: [mem 0x0000000000000000-0x000000000009ffff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000000a0000-0x00000000000fffff] reserved
[ 0.000000] reserve setup_data: [mem 0x0000000000100000-0x00000000b6ef6017] usable
[ 0.000000] reserve setup_data: [mem 0x00000000b6ef6018-0x00000000b6f07057] usable
[ 0.000000] reserve setup_data: [mem 0x00000000b6f07058-0x00000000b6f08017] usable
[ 0.000000] reserve setup_data: [mem 0x00000000b6f08018-0x00000000b6f19057] usable
[ 0.000000] reserve setup_data: [mem 0x00000000b6f19058-0x00000000b6f1a017] usable
[ 0.000000] reserve setup_data: [mem 0x00000000b6f1a018-0x00000000b6f34a57] usable
[ 0.000000] reserve setup_data: [mem 0x00000000b6f34a58-0x00000000b6f39017] usable
[ 0.000000] reserve setup_data: [mem 0x00000000b6f39018-0x00000000b6f41057] usable
[ 0.000000] reserve setup_data: [mem 0x00000000b6f41058-0x00000000bad2bfff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bad2c000-0x00000000baf7cfff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000baf7d000-0x00000000bafaefff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bafaf000-0x00000000bafc3fff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bafc4000-0x00000000bb3d3fff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000bb3d4000-0x00000000bdd2efff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000bdd2f000-0x00000000bddccfff] ACPI NVS
[ 0.000000] reserve setup_data: [mem 0x00000000bddcd000-0x00000000bdea0fff] ACPI data
[ 0.000000] reserve setup_data: [mem 0x00000000bdea1000-0x00000000bdf2efff] ACPI NVS
[ 0.000000] reserve setup_data: [mem 0x00000000bdf2f000-0x00000000bdfaafff] ACPI data
[ 0.000000] reserve setup_data: [mem 0x00000000bdfab000-0x00000000bdffffff] usable
[ 0.000000] reserve setup_data: [mem 0x00000000be000000-0x00000000cfffffff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000fed19000-0x00000000fed19fff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[ 0.000000] reserve setup_data: [mem 0x00000000ffa20000-0x00000000ffffffff] reserved
[ 0.000000] reserve setup_data: [mem 0x0000000100000000-0x000000083fffffff] usable
[ 0.000000] NODE_DATA(0) allocated [mem 0x43ffd5000-0x43fffffff]
[ 0.000000] NODE_DATA(1) allocated [mem 0x83ffd4000-0x83fffefff]
[ 0.000000] ACPI: IRQ0 used by override.
[ 0.000000] ACPI: IRQ9 used by override.
[ 0.000000] Specific versions of hardware are certified with Enterprise Linux 8. Please see the list of hardware certified with Enterprise Linux 8 at the Red Hat catalog: https://catalog.redhat.com.
[ 0.000000] Memory: 3090344K/33473928K available (14341K kernel code, 5952K rwdata, 8520K rodata, 2608K init, 26336K bss, 872660K reserved, 0K cma-reserved)
[ 0.041171] x86/cpu: VMX (outside TXT) disabled by BIOS
[ 0.041324] MMIO Stale Data: Unknown: No mitigations
[ 0.218328] ACPI: Added _OSI(Linux-Dell-Video)
[ 0.670330] SCSI subsystem initialized
[ 0.754239] IP idents hash table entries: 262144 (order: 9, 2097152 bytes, vmalloc)
[ 0.764255] pci 0000:07:00.0: Video device with shadowed ROM at [mem 0x000c0000-0x000dffff]
[ 10.377733] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[ 11.165032] Write protecting the kernel read-only data: 26624k
[ 11.226402] Freeing unused kernel image (text/rodata gap) memory: 2012K
[ 11.234960] Freeing unused kernel image (rodata/data gap) memory: 1720K
[ 12.186088] Loading iSCSI transport class v2.0-870.
[ 12.664432] iscsi: registered transport (tcp)
[ 12.697121] iscsi: registered transport (qla4xxx)
[ 12.704572] QLogic iSCSI HBA Driver
[ 12.719277] libcxgbi:libcxgbi_init_module: Chelsio iSCSI driver library libcxgbi v0.9.1-ko (Apr. 2015)
[ 12.777813] Chelsio T4-T6 iSCSI Driver cxgb4i v0.9.5-ko (Apr. 2015)
[ 12.785087] iscsi: registered transport (cxgb4i)
[ 12.812338] QLogic NetXtreme II iSCSI Driver bnx2i v2.7.10.1 (Jul 16, 2014)
[ 12.819438] iscsi: registered transport (bnx2i)
[ 12.839595] iscsi: registered transport (be2iscsi)
[ 12.846158] In beiscsi_module_init, tt=(ptrval)
[ 14.264407] libata version 3.00 loaded.
[ 14.301305] ahci 0000:00:1f.2: version 3.0
[ 14.302127] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 6 Gbps 0x3f impl SATA mode
[ 14.302133] ahci 0000:00:1f.2: flags: 64bit ncq sntf pm led clo pio slum part ems apst
[ 14.322670] scsi host0: ahci
[ 14.322903] scsi host1: ahci
[ 14.323607] scsi host2: ahci
[ 14.323767] scsi host3: ahci
[ 14.323921] scsi host4: ahci
[ 14.324707] scsi host5: ahci
[ 14.324791] ata1: SATA max UDMA/133 abar m2048@0xd1300000 port 0xd1300100 irq 43
[ 14.324803] ata2: SATA max UDMA/133 abar m2048@0xd1300000 port 0xd1300180 irq 43
[ 14.324813] ata3: SATA max UDMA/133 abar m2048@0xd1300000 port 0xd1300200 irq 43
[ 14.324823] ata4: SATA max UDMA/133 abar m2048@0xd1300000 port 0xd1300280 irq 43
[ 14.324833] ata5: SATA max UDMA/133 abar m2048@0xd1300000 port 0xd1300300 irq 43
[ 14.324844] ata6: SATA max UDMA/133 abar m2048@0xd1300000 port 0xd1300380 irq 43
[ 14.629178] ata5: SATA link down (SStatus 0 SControl 300)
[ 14.629559] ata4: SATA link down (SStatus 0 SControl 300)
[ 14.629824] ata2: SATA link down (SStatus 0 SControl 300)
[ 14.630253] ata6: SATA link down (SStatus 0 SControl 300)
[ 14.630580] ata3: SATA link down (SStatus 0 SControl 300)
[ 14.638308] ata1: SATA link down (SStatus 0 SControl 300)
[ 14.640904] TECH PREVIEW: NVMe/TCP may not be fully supported.
Please review provided documentation for limitations.
[ 91.122593] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null)
[ 94.588477] ioatdma: Intel(R) QuickData Technology Driver 5.00

LOADED MODULES SCAN
lsmod | grep -i -P "sas|sata|ahci|ata|nvme|ide|storage|isci|scsi|sci"

scsi_transport_fc 81920 1 libfc
nvme_tcp 36864 0
nvme_fabrics 24576 1 nvme_tcp
nvme 45056 0
nvme_core 139264 3 nvme_tcp,nvme,nvme_fabrics
t10_pi 16384 1 nvme_core
ahci 40960 0
libahci 40960 1 ahci
libata 266240 2 libahci,ahci
iscsi_ibft 16384 0
be2iscsi 131072 0
iscsi_boot_sysfs 16384 3 be2iscsi,iscsi_ibft,qla4xxx
iscsi_tcp 24576 0
libiscsi_tcp 32768 3 libcxgbi,iscsi_tcp,cxgb4i
libiscsi 65536 7 be2iscsi,libiscsi_tcp,bnx2i,libcxgbi,iscsi_tcp,qla4xxx,cxgb4i
scsi_transport_iscsi 131072 7 be2iscsi,libiscsi_tcp,bnx2i,libcxgbi,iscsi_tcp,qla4xxx,libiscsi

DISK SCAN

lsblk -l

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 830.5M 1 loop
loop1 7:1 0 4G 1 loop
loop2 7:2 0 32G 0 loop
live-rw 253:0 0 4G 0 dm /
live-rw 253:0 0 4G 0 dm /
live-base 253:1 0 4G 1 dm

First I considered that the main reason was what’s reported in the following sessions of the last Monthly Report of the Intel S26XXX Family Boards:

However, if I insert a HDD disk with a legacy version of Centos (6 or 7) , it starts normally. And if I later insert a SDD drive in one of the extra bays, it is normally detected and assigned (sdb) using the isci kernel module using the Serial Attached SCSI controller (8086:1d6b). In turn, the isci module seems to use scsi_transport_sas instead of scsi_transport_iscsi as reported in Rocky Linux 8 installation lsmod.

After researching , I have read that one possible approach would be to use the kmod-isci kernel driver. But I have absolutely no idea about how and where I must install it in order to make it available as a kernel module exclusively for the network boot .

I include a zip file with addition

Any help will be extremely appreciated!

Many Thanks for the hard work !! :smiley: :smiley: :smiley:

The ELRepo’s device ID list deviceids [ELRepo Wiki]
does indeed list 8086:1d6b under kmod-isci

ELRepo’s DUD Index of /linux/dud/el8/x86_64 has https://elrepo.org/linux/dud/el8/x86_64/dd-isci-1.2.0-14.el8_10.elrepo.iso

You could append

inst.dd=https://elrepo.org/linux/dud/el8/x86_64/dd-isci-1.2.0-14.el8_10.elrepo.iso

to the PXE kernel cmdline. The installer does then download the “driver update disk”, load (all) kernel module(s) from it, and add the kmod-isci to the packages it will install.

You just have to dnf install elrepo-release after successful install.

2 Likes

Yes, that worked !! Since the target machine is in a closed network without internet, I just downloaded the file to a separate public FTP folder /var/ftp/pub/pxe/ExtraDrivers/Rocky8/.
This is the final line added to the boot menu entry:

menuentry "Install Rocky Linux 8 (Older Computers)" --id computeBasicOld --class fedora --class gnu-linux --class gnu --class os {

    linuxefi /networkboot/Rocky8/vmlinuz ip=dhcp inst.repo=ftp://<ip>/pub/pxe/Rocky8 inst.ks=ftp://<ip>/pub/pxe/rocky8-ks.cfg ipv6.disable=1 \
     inst.dd=ftp://<ip>/pub/pxe/DriverRepos/Rocky8/dd-isci-1.2.0-14.el8_10.elrepo.iso
    initrdefi /networkboot/Rocky8/initrd.img
}

The only thing I saw strange at the initial boot log message was that the kmod-isci loads after the SAS/SATA port initial scan and also some “Unknown symbol” warnings appear (directed to sas related components of isci , I think) when kmod-isci is finally loaded.

Many thanks @jlehtone , you’re a lifesaver :smiley: :smiley: :tada: :tada: :tada: :tada: :tada:!!!

Best Regards,
UBFMC