From fccd3adb01c0ff4fa4593b2c93ff37fe5aa28ccd Mon Sep 17 00:00:00 2001 From: Peter Georg Date: Aug 11 2021 15:59:49 +0000 Subject: Initial version --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..537d125 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/aacraid-4.18.0-305.el8.tar.xz diff --git a/.kmod-aacraid.metadata b/.kmod-aacraid.metadata new file mode 100644 index 0000000..4f7269a --- /dev/null +++ b/.kmod-aacraid.metadata @@ -0,0 +1 @@ +78540943200076a2de9002b92d7151d44ad3c229 SOURCES/aacraid-4.18.0-305.el8.tar.xz diff --git a/SOURCES/0001-add-deprecated-ids.patch b/SOURCES/0001-add-deprecated-ids.patch new file mode 100644 index 0000000..9405ac3 --- /dev/null +++ b/SOURCES/0001-add-deprecated-ids.patch @@ -0,0 +1,76 @@ +--- a/src/linit.c ++++ b/src/linit.c +@@ -91,6 +91,73 @@ + * Note: The last field is used to index into aac_drivers below. + */ + static const struct pci_device_id aac_pci_tbl[] = { ++ { 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 */ ++ { 0x1028, 0x0004, 0x1028, 0x00d0, 0, 0, 3 }, /* PERC 3/Di (Iguana FlipChip/PERC3DiF */ ++ { 0x1028, 0x0002, 0x1028, 0x00d1, 0, 0, 4 }, /* PERC 3/Di (Viper/PERC3DiV) */ ++ { 0x1028, 0x0002, 0x1028, 0x00d9, 0, 0, 5 }, /* PERC 3/Di (Lexus/PERC3DiL) */ ++ { 0x1028, 0x000a, 0x1028, 0x0106, 0, 0, 6 }, /* PERC 3/Di (Jaguar/PERC3DiJ) */ ++ { 0x1028, 0x000a, 0x1028, 0x011b, 0, 0, 7 }, /* PERC 3/Di (Dagger/PERC3DiD) */ ++ { 0x1028, 0x000a, 0x1028, 0x0121, 0, 0, 8 }, /* PERC 3/Di (Boxster/PERC3DiB) */ ++ { 0x9005, 0x0283, 0x9005, 0x0283, 0, 0, 9 }, /* catapult */ ++ { 0x9005, 0x0284, 0x9005, 0x0284, 0, 0, 10 }, /* tomcat */ ++ { 0x9005, 0x0285, 0x9005, 0x0286, 0, 0, 11 }, /* Adaptec 2120S (Crusader) */ ++ { 0x9005, 0x0285, 0x9005, 0x0285, 0, 0, 12 }, /* Adaptec 2200S (Vulcan) */ ++ { 0x9005, 0x0285, 0x9005, 0x0287, 0, 0, 13 }, /* Adaptec 2200S (Vulcan-2m) */ ++ { 0x9005, 0x0285, 0x17aa, 0x0286, 0, 0, 14 }, /* Legend S220 (Legend Crusader) */ ++ { 0x9005, 0x0285, 0x17aa, 0x0287, 0, 0, 15 }, /* Legend S230 (Legend Vulcan) */ ++ ++ { 0x9005, 0x0285, 0x9005, 0x0288, 0, 0, 16 }, /* Adaptec 3230S (Harrier) */ ++ { 0x9005, 0x0285, 0x9005, 0x0289, 0, 0, 17 }, /* Adaptec 3240S (Tornado) */ ++ { 0x9005, 0x0285, 0x9005, 0x028a, 0, 0, 18 }, /* ASR-2020ZCR SCSI PCI-X ZCR (Skyhawk) */ ++ { 0x9005, 0x0285, 0x9005, 0x028b, 0, 0, 19 }, /* ASR-2025ZCR SCSI SO-DIMM PCI-X ZCR (Terminator) */ ++ { 0x9005, 0x0286, 0x9005, 0x028c, 0, 0, 20 }, /* ASR-2230S + ASR-2230SLP PCI-X (Lancer) */ ++ { 0x9005, 0x0286, 0x9005, 0x028d, 0, 0, 21 }, /* ASR-2130S (Lancer) */ ++ { 0x9005, 0x0286, 0x9005, 0x029b, 0, 0, 22 }, /* AAR-2820SA (Intruder) */ ++ { 0x9005, 0x0286, 0x9005, 0x029c, 0, 0, 23 }, /* AAR-2620SA (Intruder) */ ++ { 0x9005, 0x0286, 0x9005, 0x029d, 0, 0, 24 }, /* AAR-2420SA (Intruder) */ ++ { 0x9005, 0x0286, 0x9005, 0x029e, 0, 0, 25 }, /* ICP9024RO (Lancer) */ ++ { 0x9005, 0x0286, 0x9005, 0x029f, 0, 0, 26 }, /* ICP9014RO (Lancer) */ ++ { 0x9005, 0x0286, 0x9005, 0x02a0, 0, 0, 27 }, /* ICP9047MA (Lancer) */ ++ { 0x9005, 0x0286, 0x9005, 0x02a1, 0, 0, 28 }, /* ICP9087MA (Lancer) */ ++ { 0x9005, 0x0286, 0x9005, 0x02a3, 0, 0, 29 }, /* ICP5445AU (Hurricane44) */ ++ { 0x9005, 0x0285, 0x9005, 0x02a4, 0, 0, 30 }, /* ICP9085LI (Marauder-X) */ ++ { 0x9005, 0x0285, 0x9005, 0x02a5, 0, 0, 31 }, /* ICP5085BR (Marauder-E) */ ++ { 0x9005, 0x0286, 0x9005, 0x02a6, 0, 0, 32 }, /* ICP9067MA (Intruder-6) */ ++ { 0x9005, 0x0287, 0x9005, 0x0800, 0, 0, 33 }, /* Themisto Jupiter Platform */ ++ { 0x9005, 0x0200, 0x9005, 0x0200, 0, 0, 33 }, /* Themisto Jupiter Platform */ ++ { 0x9005, 0x0286, 0x9005, 0x0800, 0, 0, 34 }, /* Callisto Jupiter Platform */ ++ { 0x9005, 0x0285, 0x9005, 0x028e, 0, 0, 35 }, /* ASR-2020SA SATA PCI-X ZCR (Skyhawk) */ ++ { 0x9005, 0x0285, 0x9005, 0x028f, 0, 0, 36 }, /* ASR-2025SA SATA SO-DIMM PCI-X ZCR (Terminator) */ ++ { 0x9005, 0x0285, 0x9005, 0x0290, 0, 0, 37 }, /* AAR-2410SA PCI SATA 4ch (Jaguar II) */ ++ { 0x9005, 0x0285, 0x1028, 0x0291, 0, 0, 38 }, /* CERC SATA RAID 2 PCI SATA 6ch (DellCorsair) */ ++ { 0x9005, 0x0285, 0x9005, 0x0292, 0, 0, 39 }, /* AAR-2810SA PCI SATA 8ch (Corsair-8) */ ++ { 0x9005, 0x0285, 0x9005, 0x0293, 0, 0, 40 }, /* AAR-21610SA PCI SATA 16ch (Corsair-16) */ ++ { 0x9005, 0x0285, 0x9005, 0x0294, 0, 0, 41 }, /* ESD SO-DIMM PCI-X SATA ZCR (Prowler) */ ++ { 0x9005, 0x0285, 0x103C, 0x3227, 0, 0, 42 }, /* AAR-2610SA PCI SATA 6ch */ ++ { 0x9005, 0x0285, 0x9005, 0x0296, 0, 0, 43 }, /* ASR-2240S (SabreExpress) */ ++ { 0x9005, 0x0285, 0x9005, 0x0297, 0, 0, 44 }, /* ASR-4005 */ ++ { 0x9005, 0x0285, 0x1014, 0x02F2, 0, 0, 45 }, /* IBM 8i (AvonPark) */ ++ { 0x9005, 0x0285, 0x1014, 0x0312, 0, 0, 45 }, /* IBM 8i (AvonPark Lite) */ ++ { 0x9005, 0x0286, 0x1014, 0x9580, 0, 0, 46 }, /* IBM 8k/8k-l8 (Aurora) */ ++ { 0x9005, 0x0286, 0x1014, 0x9540, 0, 0, 47 }, /* IBM 8k/8k-l4 (Aurora Lite) */ ++ { 0x9005, 0x0285, 0x9005, 0x0298, 0, 0, 48 }, /* ASR-4000 (BlackBird) */ ++ { 0x9005, 0x0285, 0x9005, 0x0299, 0, 0, 49 }, /* ASR-4800SAS (Marauder-X) */ ++ { 0x9005, 0x0285, 0x9005, 0x029a, 0, 0, 50 }, /* ASR-4805SAS (Marauder-E) */ ++ { 0x9005, 0x0286, 0x9005, 0x02a2, 0, 0, 51 }, /* ASR-3800 (Hurricane44) */ ++ ++ { 0x9005, 0x0285, 0x1028, 0x0287, 0, 0, 52 }, /* Perc 320/DC*/ ++ { 0x1011, 0x0046, 0x9005, 0x0365, 0, 0, 53 }, /* Adaptec 5400S (Mustang)*/ ++ { 0x1011, 0x0046, 0x9005, 0x0364, 0, 0, 54 }, /* Adaptec 5400S (Mustang)*/ ++ { 0x1011, 0x0046, 0x9005, 0x1364, 0, 0, 55 }, /* Dell PERC2/QC */ ++ { 0x1011, 0x0046, 0x103c, 0x10c2, 0, 0, 56 }, /* HP NetRAID-4M */ ++ ++ { 0x9005, 0x0285, 0x1028, PCI_ANY_ID, 0, 0, 57 }, /* Dell Catchall */ ++ { 0x9005, 0x0285, 0x17aa, PCI_ANY_ID, 0, 0, 58 }, /* Legend Catchall */ ++ { 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 */ + { 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..d05e8c5 --- /dev/null +++ b/SPECS/kmod-aacraid.spec @@ -0,0 +1,237 @@ +%global pkg aacraid + +%global kernel_version_min 4.18.0-305.el8 + +# To pick a specific kernel use `--define "kernel_version 4.18.0-315.el8"` +# Otherwise the latest installed kernel-devel version later than +# %%{kernel_version_min} will be used. + +%global kernel_version_latest %({ echo %{kernel_version_min}; rpm --query kernel-devel --queryformat '%%{VERSION}-%%{RELEASE}\\\n' | grep -v "package kernel-devel is not installed"; } | sort -V | sed -e '0,/^%{kernel_version_min}$/d' | tail -n 1) + +%if "%{kernel_version_latest}" != "" +%{!?kernel_version:%{expand:%%global kernel_version %{kernel_version_latest}}} +%endif + +%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: 4.18.0 +Release: 305%{?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}-%{kernel_version_min}.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 + +%{!?kernel_version: +BuildRequires: kernel-devel >= %{kernel_version_min} +} + +%{?kernel_version: +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: %{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}-%{kernel_version_min} + + +%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 +* Wed Aug 11 2021 Peter Georg - 4.18.0-305 +- Initial version