View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000956 | channel: elrepo/el8 | --elrepo--request-for-enhancement-- | public | 2019-10-13 23:54 | 2019-10-17 00:25 |
Reporter | odicha | Assigned To | pperry | ||
Priority | normal | Severity | feature | Reproducibility | N/A |
Status | resolved | Resolution | fixed | ||
Summary | 0000956: Add DUD for aacraid support | ||||
Description | As other modules, some HW IDs have been removed from kernel | ||||
Additional Information | Attached patch, source and SPEC file. Also available SRPM RPM and ISO on request | ||||
Tags | No tags attached. | ||||
Attached Files | aacraid-kmod.spec (6,003 bytes)
# Define the kmod package name here. %define kmod_name aacraid # If kmod_kernel_version isn't defined on the rpmbuild line, define it here. %{!?kmod_kernel_version: %define kmod_kernel_version 4.18.0-80.el8} %{!?dist: %define dist .el8} Name: kmod-%{kmod_name} Version: 07.707.50.00 Release: 1%{?dist} Summary: %{kmod_name} kernel module(s) Group: System Environment/Kernel License: GPLv2 URL: http://www.kernel.org/ # Sources Source0: %{kmod_name}-%{version}.tar.gz Source5: GPL-v2.0.txt # Source code patches Patch0: 0000-aacraid-remove-device-support-removed.patch %define findpat %( echo "%""P" ) %define __find_requires /usr/lib/rpm/redhat/find-requires.ksyms %define __find_provides /usr/lib/rpm/redhat/find-provides.ksyms %{kmod_name} %{?epoch:%{epoch}:}%{version}-%{release} %define dup_state_dir %{_localstatedir}/lib/rpm-state/kmod-dups %define kver_state_dir %{dup_state_dir}/kver %define kver_state_file %{kver_state_dir}/%{kmod_kernel_version}.%{_arch} %define dup_module_list %{dup_state_dir}/rpm-kmod-%{kmod_name}-modules %define debug_package %{nil} %global _use_internal_dependency_generator 0 %global kernel_source() %{_usrsrc}/kernels/%{kmod_kernel_version}.%{_arch} BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) ExclusiveArch: x86_64 BuildRequires: elfutils-libelf-devel BuildRequires: kernel-devel = %{kmod_kernel_version} BuildRequires: kernel-abi-whitelists BuildRequires: kernel-rpm-macros BuildRequires: redhat-rpm-config Provides: kernel-modules >= %{kmod_kernel_version}.%{_arch} Provides: kmod-%{kmod_name} = %{?epoch:%{epoch}:}%{version}-%{release} Requires(post): %{_sbindir}/weak-modules Requires(postun): %{_sbindir}/weak-modules Requires: kernel >= %{kmod_kernel_version} %description This package provides the %{kmod_name} kernel module(s). It is built to depend upon the specific ABI provided by a range of releases of the same variant of the Linux kernel and not on any one specific build. %prep %setup -q -n %{kmod_name}-%{version} %patch0 -p1 echo "override %{kmod_name} * weak-updates/%{kmod_name}" > kmod-%{kmod_name}.conf # Apply patch(es) # % patch0 -p1 %build %{__make} -C %{kernel_source} %{?_smp_mflags} modules M=$PWD whitelist="/lib/modules/kabi-current/kabi_whitelist_%{_target_cpu}" for modules in $( find . -name "*.ko" -type f -printf "%{findpat}\n" | sed 's|\.ko$||' | sort -u ) ; do # update greylist nm -u ./$modules.ko | sed 's/.*U //' | sed 's/^\.//' | sort -u | while read -r symbol; do grep -q "^\s*$symbol\$" $whitelist || echo "$symbol" >> ./greylist done done sort -u greylist | uniq > greylist.txt %install %{__install} -d %{buildroot}/lib/modules/%{kmod_kernel_version}.%{_arch}/extra/%{kmod_name}/ %{__install} %{kmod_name}.ko %{buildroot}/lib/modules/%{kmod_kernel_version}.%{_arch}/extra/%{kmod_name}/ %{__install} -d %{buildroot}%{_sysconfdir}/depmod.d/ %{__install} -m 0644 kmod-%{kmod_name}.conf %{buildroot}%{_sysconfdir}/depmod.d/ %{__install} -d %{buildroot}%{_defaultdocdir}/kmod-%{kmod_name}-%{version}/ %{__install} -m 0644 %{SOURCE5} %{buildroot}%{_defaultdocdir}/kmod-%{kmod_name}-%{version}/ %{__install} -m 0644 greylist.txt %{buildroot}%{_defaultdocdir}/kmod-%{kmod_name}-%{version}/ # strip the modules(s) find %{buildroot} -type f -name \*.ko -exec %{__strip} --strip-debug \{\} \; # Sign the modules(s) %if %{?_with_modsign:1}%{!?_with_modsign:0} # If the module signing keys are not defined, define them here. %{!?privkey: %define privkey %{_sysconfdir}/pki/SECURE-BOOT-KEY.priv} %{!?pubkey: %define pubkey %{_sysconfdir}/pki/SECURE-BOOT-KEY.der} for module in $(find %{buildroot} -type f -name \*.ko); do %{_usrsrc}/kernels/%{kmod_kernel_version}.%{_arch}/scripts/sign-file \ sha256 %{privkey} %{pubkey} $module; done %endif %clean %{__rm} -rf %{buildroot} %post modules=( $(find /lib/modules/%{kmod_kernel_version}.x86_64/extra/%{kmod_name} | grep '\.ko$') ) printf '%s\n' "${modules[@]}" | %{_sbindir}/weak-modules --add-modules --no-initramfs mkdir -p "%{kver_state_dir}" touch "%{kver_state_file}" exit 0 %posttrans # We have to re-implement part of weak-modules here because it doesn't allow # calling initramfs regeneration separately if [ -f "%{kver_state_file}" ]; then kver_base="%{kmod_kernel_version}" kvers=$(ls -d "/lib/modules/${kver_base%%.*}"*) for k_dir in $kvers; do k="${k_dir#/lib/modules/}" tmp_initramfs="/boot/initramfs-$k.tmp" dst_initramfs="/boot/initramfs-$k.img" # The same check as in weak-modules: we assume that the kernel present # if the symvers file exists. if [ -e "/boot/symvers-$k.gz" ]; then /usr/bin/dracut -f "$tmp_initramfs" "$k" || exit 1 cmp -s "$tmp_initramfs" "$dst_initramfs" if [ "$?" = 1 ]; then mv "$tmp_initramfs" "$dst_initramfs" else rm -f "$tmp_initramfs" fi fi done rm -f "%{kver_state_file}" rmdir "%{kver_state_dir}" 2> /dev/null fi rmdir "%{dup_state_dir}" 2> /dev/null exit 0 %preun if rpm -q --filetriggers kmod 2> /dev/null| grep -q "Trigger for weak-modules call on kmod removal"; then mkdir -p "%{kver_state_dir}" touch "%{kver_state_file}" fi mkdir -p "%{dup_state_dir}" rpm -ql kmod-%{kmod_name}-%{version}-%{release}.%{_arch} | grep '\.ko$' > "%{dup_module_list}" %postun if rpm -q --filetriggers kmod 2> /dev/null| grep -q "Trigger for weak-modules call on kmod removal"; then initramfs_opt="--no-initramfs" else initramfs_opt="" fi modules=( $(cat "%{dup_module_list}") ) rm -f "%{dup_module_list}" printf '%s\n' "${modules[@]}" | %{_sbindir}/weak-modules --remove-modules $initramfs_opt rmdir "%{dup_state_dir}" 2> /dev/null exit 0 %files %defattr(644,root,root,755) /lib/modules/%{kmod_kernel_version}.%{_arch}/ %config /etc/depmod.d/kmod-%{kmod_name}.conf %doc /usr/share/doc/kmod-%{kmod_name}-%{version}/ %changelog * Sun Oct 13 2019 Jose Deniz <odi@odicha.net> 07.707.50.00-1 - Initial el8 build of the kmod package. - Source code taken from RHEL kernel-4.18.0-80.el8.x86_64 - Revert RH patch to remove device IDs 0000-aacraid-remove-device-support-removed.patch (5,700 bytes)
--- a/linit.c 2019-06-24 11:14:47.000000000 +0100 +++ b/linit.c 2019-10-10 20:04:17.270588704 +0100 @@ -165,77 +165,6 @@ }; MODULE_DEVICE_TABLE(pci, aac_pci_tbl); -static const struct pci_device_id aac_pci_ids_removed[] = { - { 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 */ - { 0,} -}; - /* * dmb - For now we add the number of channels to this structure. * In the future we should add a fib that reports the number of channels @@ -1678,10 +1607,6 @@ int mask_bits = 0; extern int aac_sync_mode; - if (pci_device_support_removed(aac_pci_tbl, - aac_pci_ids_removed, pdev)) - return -ENODEV; - /* * Only series 7 needs freset. */ | ||||
|
Uploaded iso file. Able to be tested to support aacraid ids disabled in 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#removed-adapters_hardware-enablement) |
|
@odicha I see that your patch removes the section for the removed devices. We only tweak the "-ENODEV" line. I think it is useful to leave the list of removed adapters intact in the code. |
|
@toracat Modified to follow "-ENODEV" tweak. Uploaded dd-aacraid-1.2.1_src.tar.gz It also fixes module version |
|
@odicha Thank you for your contribution. I've rebuilt and released the kmod-aacraid-1.2.1-1.el8_0.elrepo.x86_64 package to the elrepo repository: https://elrepo.org/linux/elrepo/el8/x86_64/RPMS/ I've also created the ISO image and uploaded signed checksums to the dud directory: https://elrepo.org/linux/dud/el8/x86_64/ these should show up shortly once mirrors have synced. It would be great if you are able to confirm the released package works for you. Thanks again for your help |
|
@pperry Synced with my local elrepo mirror and tested with success (Adaptec 5805Z - Supermicro SAS enclosure - Seagate SAS disks). Some dmesg output down Thanks a lot to all the team. You do an awesome job! ......... [ 9.583697] Adaptec aacraid driver 1.2.1[50877]-custom [ 9.583900] Warning: aacraid 0000:81:00.0 [9005:0285] - Support for this device has been removed in this major release. Please check the removed functionality section of the release notes. ......... [ 23.670108] ISO 9660 Extensions: RRIP_1991A [ 25.745179] aacraid: loading out-of-tree module taints kernel. [ 25.745933] aacraid: module verification failed: signature and/or required key missing - tainting kernel [ 25.748866] Adaptec aacraid driver 1.2.1[50877]-custom [ 25.749742] Warning: aacraid 0000:81:00.0 [9005:0285] - Support for this device has been removed in this major release. Please check the removed functionality section of the release notes. [ 25.751206] aacraid: elrepo version supporting all pci ids [ 25.751725] aacraid: Comm Interface enabled [ 25.962441] AAC0: kernel 5.2-0[18950] Jun 25 2012 [ 25.963275] AAC0: monitor 5.2-0[18950] [ 25.964012] AAC0: bios 5.2-0[18950] [ 25.964723] AAC0: serial 2C2311xxxxx [ 25.965436] AAC0: Non-DASD support enabled. [ 25.966150] AAC0: 64bit support enabled. [ 25.966856] aacraid 0000:81:00.0: 64 Bit DAC enabled [ 25.976260] scsi host6: aacraid [ 26.036761] scsi 6:0:0:0: Direct-Access Adaptec system V1.0 PQ: 0 ANSI: 2 [ 26.087356] scsi 6:1:0:0: Direct-Access SEAGATE ST3300657SS ES62 PQ: 1 ANSI: 5 [ 26.089328] scsi 6:1:1:0: Direct-Access SEAGATE ST3300657SS ES64 PQ: 1 ANSI: 5 [ 26.091277] scsi 6:1:2:0: Direct-Access SEAGATE ST3300657SS ES64 PQ: 1 ANSI: 5 [ 26.093135] scsi 6:1:3:0: Direct-Access SEAGATE ST3300657SS ES64 PQ: 1 ANSI: 5 [ 26.256391] scsi 6:3:0:0: Enclosure ADAPTEC Virtual SGPIO 0 0001 PQ: 0 ANSI: 5 [ 26.608970] sd 6:0:0:0: [sda] 1170210816 512-byte logical blocks: (599 GB/558 GiB) ......... |
|
Brilliant. Thank you! Marking this resolved. Please feel free to open further bugs against kmod-aacraid as required. |
Date Modified | Username | Field | Change |
---|---|---|---|
2019-10-13 23:54 | odicha | New Issue | |
2019-10-13 23:54 | odicha | Status | new => assigned |
2019-10-13 23:54 | odicha | Assigned To | => toracat |
2019-10-13 23:54 | odicha | File Added: aacraid-kmod.spec | |
2019-10-13 23:55 | odicha | File Added: 0000-aacraid-remove-device-support-removed.patch | |
2019-10-13 23:55 | odicha | File Added: aacraid-07.707.50.00.tar.gz | |
2019-10-13 23:56 | odicha | File Added: kmod-aacraid-07.707.50.00-1.el8.src.rpm | |
2019-10-13 23:56 | odicha | File Added: kmod-aacraid-07.707.50.00-1.el8.x86_64.rpm | |
2019-10-13 23:57 | odicha | File Added: aacraid-07.707.50.00-1.el8_0.iso | |
2019-10-13 23:59 | odicha | Note Added: 0006602 | |
2019-10-14 08:33 | burakkucat | Reproducibility | always => N/A |
2019-10-14 09:39 | toracat | Note Added: 0006604 | |
2019-10-14 10:39 | odicha | File Added: dd-aacraid-1.2.1_src.tar.gz | |
2019-10-14 10:41 | odicha | Note Added: 0006605 | |
2019-10-14 14:06 | pperry | Note Added: 0006606 | |
2019-10-14 14:10 | toracat | Assigned To | toracat => pperry |
2019-10-14 14:10 | toracat | Status | assigned => feedback |
2019-10-17 00:10 | odicha | Note Added: 0006607 | |
2019-10-17 00:25 | pperry | Note Added: 0006608 | |
2019-10-17 00:25 | pperry | Status | feedback => resolved |
2019-10-17 00:25 | pperry | Resolution | open => fixed |