diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e1e66dd --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/aacraid-5.14.0-1.el9.tar.xz diff --git a/.kmod-aacraid.metadata b/.kmod-aacraid.metadata new file mode 100644 index 0000000..72f2c53 --- /dev/null +++ b/.kmod-aacraid.metadata @@ -0,0 +1 @@ +94177dc9a4294b4d7ae63adad68e27585a33ee56 SOURCES/aacraid-5.14.0-1.el9.tar.xz diff --git a/SOURCES/0001-add-deprecated-ids.patch b/SOURCES/0001-add-deprecated-ids.patch new file mode 100644 index 0000000..0eb439a --- /dev/null +++ b/SOURCES/0001-add-deprecated-ids.patch @@ -0,0 +1,18 @@ +--- a/src/linit.c ++++ b/src/linit.c +@@ -78,7 +78,6 @@ + * Note: The last field is used to index into aac_drivers below. + */ + static const struct pci_device_id aac_pci_tbl[] = { +-#ifndef CONFIG_RHEL_DIFFERENCES + { 0x1028, 0x0001, 0x1028, 0x0001, 0, 0, 0 }, /* PERC 2/Si (Iguana/PERC2Si) */ + { 0x1028, 0x0002, 0x1028, 0x0002, 0, 0, 1 }, /* PERC 3/Di (Opal/PERC3Di) */ + { 0x1028, 0x0003, 0x1028, 0x0003, 0, 0, 2 }, /* PERC 3/Si (SlimFast/PERC3Si */ +@@ -146,7 +145,6 @@ + { 0x9005, 0x0285, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 59 }, /* Adaptec Catch All */ + { 0x9005, 0x0286, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 60 }, /* Adaptec Rocket Catch All */ + { 0x9005, 0x0288, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 61 }, /* Adaptec NEMER/ARK Catch All */ +-#endif + { 0x9005, 0x028b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 62 }, /* Adaptec PMC Series 6 (Tupelo) */ + { 0x9005, 0x028c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 63 }, /* Adaptec PMC Series 7 (Denali) */ + { 0x9005, 0x028d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 64 }, /* Adaptec PMC Series 8 */ diff --git a/SPECS/kmod-aacraid.spec b/SPECS/kmod-aacraid.spec new file mode 100644 index 0000000..84ac63e --- /dev/null +++ b/SPECS/kmod-aacraid.spec @@ -0,0 +1,224 @@ +%global pkg aacraid + +%global driver_version 5.14.0-1.el9 + +%global kernel_version 5.14.0-1.el9 + +%global _use_internal_dependency_generator 0 +%global __find_requires %{nil} +%global __find_provides /usr/lib/rpm/find-provides + +%global debug_package %{nil} + +%global __spec_install_post \ + %{?__debug_package:%{__debug_install_post}} \ + %{__arch_install_post} \ + %{__os_install_post} \ + %{__mod_compress_install_post} + +%global __mod_compress_install_post find %{buildroot}/lib/modules -type f -name \*.ko -exec xz \{\} \\; + + +Name: kmod-%{pkg} +Version: 5.14.0 +Release: 1%{?dist} +Summary: Dell PERC2, 2/Si, 3/Si, 3/Di, Adaptec Advanced Raid Products, HP NetRAID-4M, IBM ServeRAID & ICP SCSI (%{pkg}) driver + +License: GPLv2 +URL: https://www.kernel.org/ + +Source0: %{pkg}-%{driver_version}.tar.xz +Patch1: 0001-add-deprecated-ids.patch + +ExclusiveArch: x86_64 + +BuildRequires: elfutils-libelf-devel +BuildRequires: gcc +BuildRequires: kmod +BuildRequires: make +BuildRequires: redhat-rpm-config +BuildRequires: xz + +BuildRequires: kernel-devel = %{kernel_version} +BuildRequires: kernel-devel-uname-r = %{kernel_version}.%{_arch} + +Requires: kernel-core = %{kernel_version} +Requires: kernel-core-uname-r = %{kernel_version}.%{_arch} +Requires: kernel-modules = %{kernel_version} +Requires: kernel-modules-uname-r = %{kernel_version}.%{_arch} + +Provides: installonlypkg(kernel-module) +Provides: kernel-modules = %{kernel_version}.%{_arch} +Provides: %{name}-%{kernel_version}.%{_arch} = %{?epoch:%{epoch}:}%{version}-%{release} + +Requires(post): /usr/sbin/depmod +Requires(postun): /usr/sbin/depmod + +Requires(post): /usr/bin/dracut +Requires(postun): /usr/bin/dracut + + +%description +This package provides the Dell PERC2, 2/Si, 3/Si, 3/Di, Adaptec Advanced Raid +Products, HP NetRAID-4M, IBM ServeRAID & ICP SCSI driver (%{pkg}) driver. +Compared to the in-kernel driver this driver re-enables support for deprecated +adapters: + +- 0x1011:0x0046:0x103C:0x10C2: HP NetRAID-4M +- 0x1011:0x0046:0x9005:0x0364: Adaptec 5400S (Mustang) +- 0x1011:0x0046:0x9005:0x0365: Adaptec 5400S (Mustang) +- 0x1011:0x0046:0x9005:0x1364: Dell PERC 2/QC +- 0x1028:0x0001:0x1028:0x0001: DELL PERC 2/Si (Iguana) +- 0x1028:0x0002:0x1028:0x0002: DELL PERC 3/Di (Opal) +- 0x1028:0x0002:0x1028:0x00D1: DELL PERC 3/Di (Viper) +- 0x1028:0x0002:0x1028:0x00D9: DELL PERC 3/Di (Lexus) +- 0x1028:0x0003:0x1028:0x0003: DELL PERC 3/Si (SlimFast) +- 0x1028:0x0004:0x1028:0x00D0: DELL PERC 3/Di (Iguana FlipChip) +- 0x1028:0x000A:0x1028:0x0106: DELL PERC 3/Di (Jaguar) +- 0x1028:0x000A:0x1028:0x011B: DELL PERC 3/Di (Dagger) +- 0x1028:0x000A:0x1028:0x0121: DELL PERC 3/Di (Boxster) +- 0x9005:0x0200:0x9005:0x0200: Themisto Jupiter Platform +- 0x9005:0x0283:0x9005:0x0283: Catapult +- 0x9005:0x0284:0x9005:0x0284: Tomcat +- 0x9005:0x0285: Adaptec Catch All +- 0x9005:0x0285:0x1014:0x02F2: IBM 8i (AvonPark) +- 0x9005:0x0285:0x1014:0x0312: IBM 8i (AvonPark Lite) +- 0x9005:0x0285:0x1028: Dell Catchall +- 0x9005:0x0285:0x1028:0x0287: Perc 320/DC +- 0x9005:0x0285:0x1028:0x0291: CERC SATA RAID 2 PCI SATA 6ch (DellCorsair) +- 0x9005:0x0285:0x103C:0x3227: AAR-2610SA PCI SATA 6ch +- 0x9005:0x0285:0x17AA: Legend Catchall +- 0x9005:0x0285:0x17AA:0x0286: Legend S220 (Legend Crusader) +- 0x9005:0x0285:0x17AA:0x0287: Legend S230 (Legend Vulcan) +- 0x9005:0x0285:0x9005:0x0285: Adaptec 2200S (Vulcan) +- 0x9005:0x0285:0x9005:0x0286: Adaptec 2120S (Crusader) +- 0x9005:0x0285:0x9005:0x0287: Adaptec 2200S (Vulcan-2m) +- 0x9005:0x0285:0x9005:0x0288: Adaptec 3230S (Harrier) +- 0x9005:0x0285:0x9005:0x0289: Adaptec 3240S (Tornado) +- 0x9005:0x0285:0x9005:0x028A: ASR-2020ZCR SCSI PCI-X ZCR (Skyhawk) +- 0x9005:0x0285:0x9005:0x028B: ASR-2025ZCR SCSI SO-DIMM PCI-X ZCR (Terminator) +- 0x9005:0x0285:0x9005:0x028E: ASR-2020SA SATA PCI-X ZCR (Skyhawk) +- 0x9005:0x0285:0x9005:0x028F: ASR-2025SA SATA SO-DIMM PCI-X ZCR (Terminator) +- 0x9005:0x0285:0x9005:0x0290: AAR-2410SA PCI SATA 4ch (Jaguar II) +- 0x9005:0x0285:0x9005:0x0292: AAR-2810SA PCI SATA 8ch (Corsair-8) +- 0x9005:0x0285:0x9005:0x0293: AAR-21610SA PCI SATA 16ch (Corsair-16) +- 0x9005:0x0285:0x9005:0x0294: ESD SO-DIMM PCI-X SATA ZCR (Prowler) +- 0x9005:0x0285:0x9005:0x0296: ASR-2240S (SabreExpress) +- 0x9005:0x0285:0x9005:0x0297: ASR-4005 +- 0x9005:0x0285:0x9005:0x0298: ASR-4000 (BlackBird) +- 0x9005:0x0285:0x9005:0x0299: ASR-4800SAS (Marauder-X) +- 0x9005:0x0285:0x9005:0x029A: ASR-4805SAS (Marauder-E) +- 0x9005:0x0285:0x9005:0x02A4: ICP9085LI (Marauder-X) +- 0x9005:0x0285:0x9005:0x02A5: ICP5085BR (Marauder-E) +- 0x9005:0x0286: Adaptec Rocket Catch All +- 0x9005:0x0286:0x1014:0x9540: IBM 8k/8k-l4 (Aurora Lite) +- 0x9005:0x0286:0x1014:0x9580: IBM 8k/8k-l8 (Aurora) +- 0x9005:0x0286:0x9005:0x028C: ASR-2230S/ASR-2230SLP PCI-X (Lancer) +- 0x9005:0x0286:0x9005:0x028D: ASR-2130S (Lancer) +- 0x9005:0x0286:0x9005:0x029B: AAR-2820SA (Intruder) +- 0x9005:0x0286:0x9005:0x029C: AAR-2620SA (Intruder) +- 0x9005:0x0286:0x9005:0x029D: AAR-2420SA (Intruder) +- 0x9005:0x0286:0x9005:0x029E: ICP9024RO (Lancer) +- 0x9005:0x0286:0x9005:0x029F: ICP9014RO (Lancer) +- 0x9005:0x0286:0x9005:0x02A0: ICP9047MA (Lancer) +- 0x9005:0x0286:0x9005:0x02A1: ICP9087MA (Lancer) +- 0x9005:0x0286:0x9005:0x02A2: ASR-3800 (Hurricane44) +- 0x9005:0x0286:0x9005:0x02A3: ICP5445AU (Hurricane44) +- 0x9005:0x0286:0x9005:0x02A6: ICP9067MA (Intruder-6) +- 0x9005:0x0286:0x9005:0x0800: Callisto Jupiter Platform +- 0x9005:0x0287:0x9005:0x0800: Themisto Jupiter Platform +- 0x9005:0x0288: Adaptec NEMER/ARK Catch All + + +%prep +%autosetup -p1 -n %{pkg}-%{driver_version} + + +%build +pushd src +%{__make} -C /usr/src/kernels/%{kernel_version}.%{_arch} %{?_smp_mflags} M=$PWD modules +popd + + +%install +%{__install} -D -t %{buildroot}/lib/modules/%{kernel_version}.%{_arch}/extra/drivers/scsi/%{pkg} src/%{pkg}.ko + +# Make .ko objects temporarily executable for automatic stripping +find %{buildroot}/lib/modules -type f -name \*.ko -exec chmod u+x \{\} \+ + + +%clean +%{__rm} -rf %{buildroot} + + +%post +mkdir -p %{_localstatedir}/lib/rpm-state/sig-kmods +touch %{_localstatedir}/lib/rpm-state/sig-kmods/%{kernel_version}.%{_arch} + + +%preun +mkdir -p %{_localstatedir}/lib/rpm-state/sig-kmods +touch %{_localstatedir}/lib/rpm-state/sig-kmods/%{kernel_version}.%{_arch} + + +%postun +if [ -f %{_localstatedir}/lib/rpm-state/sig-kmods/%{kernel_version}.%{_arch} ] +then + if [ -f /lib/modules/%{kernel_version}.%{_arch}/System.map ] + then + /usr/sbin/depmod -aeF /lib/modules/%{kernel_version}.%{_arch}/System.map %{kernel_version}.%{_arch} + fi + + if [ -f /boot/initramfs-%{kernel_version}.%{_arch}.img ] + then + if /usr/bin/dracut -f --rebuild /boot/initramfs-%{kernel_version}.%{_arch}.img /boot/initramfs-%{kernel_version}.%{_arch}.img.rpmnew %{kernel_version}.%{_arch} + then + if ! cmp -s /boot/initramfs-%{kernel_version}.%{_arch}.img /boot/initramfs-%{kernel_version}.%{_arch}.img.rpmnew + then + mv /boot/initramfs-%{kernel_version}.%{_arch}.img.rpmnew /boot/initramfs-%{kernel_version}.%{_arch}.img + else + rm -f /boot/initramfs-%{kernel_version}.%{_arch}.img.rpmnew + fi + fi + fi + + rm -f %{_localstatedir}/lib/rpm-state/sig-kmods/%{kernel_version}.%{_arch} + rmdir --ignore-fail-on-non-empty %{_localstatedir}/lib/rpm-state/sig-kmods +fi + + +%posttrans +if [ -f %{_localstatedir}/lib/rpm-state/sig-kmods/%{kernel_version}.%{_arch} ] +then + if [ -f /lib/modules/%{kernel_version}.%{_arch}/System.map ] + then + /usr/sbin/depmod -aeF /lib/modules/%{kernel_version}.%{_arch}/System.map %{kernel_version}.%{_arch} + fi + + if [ -f /boot/initramfs-%{kernel_version}.%{_arch}.img ] + then + if /usr/bin/dracut -f --rebuild /boot/initramfs-%{kernel_version}.%{_arch}.img /boot/initramfs-%{kernel_version}.%{_arch}.img.rpmnew %{kernel_version}.%{_arch} + then + if ! cmp -s /boot/initramfs-%{kernel_version}.%{_arch}.img /boot/initramfs-%{kernel_version}.%{_arch}.img.rpmnew + then + mv /boot/initramfs-%{kernel_version}.%{_arch}.img.rpmnew /boot/initramfs-%{kernel_version}.%{_arch}.img + else + rm -f /boot/initramfs-%{kernel_version}.%{_arch}.img.rpmnew + fi + fi + fi + + rm -f %{_localstatedir}/lib/rpm-state/sig-kmods/%{kernel_version}.%{_arch} + rmdir --ignore-fail-on-non-empty %{_localstatedir}/lib/rpm-state/sig-kmods +fi + + +%files +%defattr(644,root,root,755) +/lib/modules/%{kernel_version}.%{_arch} +%license COPYING + + +%changelog +* Tue Aug 31 2021 Peter Georg - 5.14.0-1 +- Initial version