Skip to content

Instantly share code, notes, and snippets.

@nolta
Created November 23, 2023 15:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nolta/e1af855d2a9d2b842e0ad5545976d63a to your computer and use it in GitHub Desktop.
Save nolta/e1af855d2a9d2b842e0ad5545976d63a to your computer and use it in GitHub Desktop.
Installing/upgrading Rocky9 on an old desktop with missing driver
date
2023-11-23

Installing/upgrading Rocky9 on an old desktop with missing driver

I ran into a snag upgrading from Centos7 to Rocky9 on my decade-old desktop. Its SAS controller driver was no longer included by default:

$ lspci -nn | grep 'Serial Attached SCSI'
05:00.0 Serial Attached SCSI controller [0107]: Intel Corporation C602 chipset 4-Port SATA Storage Control Unit [8086:1d6b] (rev 05)

Installing 9.2

The installer couldn't see my hard drives because it didn't have the right driver. Eventually found this post, which led to ElRepo, the kmod-isci driver, and the inst.dd option to the anaconda installer:

ip=dhcp inst.dd=https://elrepo.org/linux/dud/el9/x86_64/dd-isci-1.2.0-3.el9_2.elrepo.iso

This enabled network access via DHCP, and then downloaded and installed the driver from a "driver update disk" (DUD or DD).

Upgrading to 9.3

After upgrading from 9.2 to 9.3 the OS failed to boot, dropping into the dracut emergency shell. Rebooting into the previous 9.2 kernel worked.

Oops, need the latest version of kmod-isci from ElRepo.

Unfortunately, installing the new driver uninstalls the old one, and you won't be able to boot the old 9.2 kernels if anything goes wrong. You can check if the driver (isci.ko) is missing with the following:

lsinitrd /boot/initramfs-5.14.0-284.30.1.el9_2.x86_64.img | grep isci

So how do we upgrade without losing the old driver? The following seems to work, but i'm not an expert, so this might be bad (or even worse, slightly suboptimal):

  • First, make a copy of the old isci.ko file, in this case:

    ( cd /usr/lib/modules/5.14.0-284.11.1.el9_2.x86_64/extra/isci && cp isci.ko isci.ko- )
    
  • Install the new rpm:

    rpm -Uvh kmod-isci-1.2.0-4.el9_3.elrepo.x86_64.rpm
    
  • Put the old isci.ko file back:

    ( cd /usr/lib/modules/5.14.0-284.11.1.el9_2.x86_64/extra/isci && mv isci.ko- isci.ko )
    
  • Regenerate the initramfs files:

    echo /usr/lib/modules/5.14.0-284.11.1.el9_2.x86_64/extra/isci/isci.ko | weak-modules --add-modules --verbose
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment