Hey Wolfy,

I examined the %postinstall section of the package and ran it (just copied
it into a script and ran it with `bash -x`):

[anaconda root@unknown001a6443e48f tmp]# bash -x ./post_install.sh
+ echo 'Working. This may take some time ...'
Working. This may take some time ...
+ '[' -e /boot/System.map-3.10.0-1160.el7.x86_64 ']'
+ modules=($(find /lib/modules/3.10.0-1160.el7.x86_64/extra/sata_via | grep
'\.ko\.xz$'))
++ grep '\.ko\.xz$'
++ find /lib/modules/3.10.0-1160.el7.x86_64/extra/sata_via
+ '[' -x /sbin/weak-modules ']'
+ /sbin/weak-modules --add-modules
+ printf '%s\n'
weak-modules: this tool requires a dracut-enabled kernel
+ echo Done.
Done.

Is that normal for it not to be able to find `dracut`?


Hi Phil,

I followed your instructions for creating the DUD and they worked great,
thank you! Unfortunately it didn't change any of my results, but at least I
now know how to do it and I can cross that off the list of possible issues!

So I went through the manual process of distributing the kmod RPM files to
the installation media. Here is what was logged in the kernel ring buffer
as soon as I loaded the module (note the "ELRepo.org Secure Boot Key"
message Phil had mentioned):

[  500.993314] Request for unknown module key 'The ELRepo Project (
http://elrepo.org): ELRepo.org Secure Boot Key:
f365ad3481a7b20e3427b61b2a26635b83fe427b' err -11
[  500.993335] sata_via: loading out-of-tree module taints kernel.
[  500.993598] sata_via: module verification failed: signature and/or
required key missing - tainting kernel
[  500.998404] sata_via 0000:00:0f.0: version 2.6
[  500.998647] sata_via 0000:00:0f.0: routed to hard irq line 10
[  501.011067] scsi host6: sata_via
[  501.015070] scsi host7: sata_via
[  501.015217] ata5: SATA max UDMA/133 cmd 0xfc00 ctl 0xf800 bmdma 0xec00
irq 21
[  501.015224] ata6: SATA max UDMA/133 cmd 0xf400 ctl 0xf000 bmdma 0xec08
irq 21
[  501.383973] irq 21: nobody cared (try booting with the "irqpoll" option)
[  501.383986] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G           OE
 ------------   3.10.0-1160.el7.x86_64 #1
[  501.383989] Hardware name: IBM CORPORATION
4800743/P4M900/VT8251/DME1737, BIOS 85KT210 10/15/2008
[  501.383991] Call Trace:
[   61.599582] intel_powerclamp: No package C-state available
[  501.383996]  <IRQ>
[  501.384008]  [<ffffffff9ab81340>] dump_stack+0x19/0x1b
[  501.384014]  [<ffffffff9a552562>] __report_bad_irq+0x32/0xd0
[  501.384018]  [<ffffffff9a552982>] note_interrupt+0x132/0x1f0
[  501.384022]  [<ffffffff9a550025>] handle_irq_event_percpu+0x55/0x80
[  501.384026]  [<ffffffff9a55008c>] handle_irq_event+0x3c/0x60
[  501.384029]  [<ffffffff9a55372d>] handle_fasteoi_irq+0x5d/0x110
[  501.384034]  [<ffffffff9a42f5f4>] handle_irq+0xe4/0x1a0
[  501.384039]  [<ffffffff9a510e4c>] ? tick_check_idle+0x8c/0xd0
[  501.384044]  [<ffffffff9ab9892d>] do_IRQ+0x4d/0xf0
[  501.384048]  [<ffffffff9ab8a36a>] common_interrupt+0x16a/0x16a
[  501.384050]  <EOI>  [<ffffffff9ab89000>] ? __cpuidle_text_start+0x8/0x8
[  501.384056]  [<ffffffff9ab8924b>] ? native_safe_halt+0xb/0x20
[  501.384059]  [<ffffffff9ab8901e>] default_idle+0x1e/0xc0
[  501.384063]  [<ffffffff9a437ca0>] arch_cpu_idle+0x20/0xc0
[  501.384068]  [<ffffffff9a5011ea>] cpu_startup_entry+0x14a/0x1e0
[  501.384072]  [<ffffffff9ab6f9c7>] rest_init+0x77/0x80
[  501.384077]  [<ffffffff9b18b1cf>] start_kernel+0x44b/0x46c
[  501.384081]  [<ffffffff9b18ab84>] ? repair_env_string+0x5c/0x5c
[  501.384084]  [<ffffffff9b18a120>] ? early_idt_handler_array+0x120/0x120
[  501.384087]  [<ffffffff9b18a738>] x86_64_start_reservations+0x24/0x26
[  501.384089]  [<ffffffff9b18a88e>] x86_64_start_kernel+0x154/0x177
[  501.384093]  [<ffffffff9a4000d5>] start_cpu+0x5/0x14
[  501.384095] handlers:
[  501.384101] [<ffffffff9a90ee30>] usb_hcd_irq
[  501.384133] [<ffffffffc05e12c0>] ata_bmdma_interrupt [libata]
[  501.384136] Disabling IRQ #21
[  503.678067] ata5.00: SATA link up 3.0 Gbps (SStatus 23 SControl 300)
[  503.678084] ata5.01: SATA link down (SStatus 11 SControl 300)
[  503.788052] ata5.00: ATA-8: WD1602ABYS-23B7A0    39M4507 42C0462IBM,
02.03B04, max UDMA/133
[  503.788058] ata5.00: 312581808 sectors, multi 16: LBA48 NCQ (depth 0/32)
[  503.888053] ata5.00: configured for UDMA/133
[  503.888240] scsi 6:0:0:0: Direct-Access     ATA      WD1602ABYS-23B7A
3B04 PQ: 0 ANSI: 5
[  503.891445] sd 6:0:0:0: [sdc] 312581808 512-byte logical blocks: (160
GB/149 GiB)
[  503.891529] sd 6:0:0:0: [sdc] Write Protect is off
[  503.891534] sd 6:0:0:0: [sdc] Mode Sense: 00 3a 00 00
[  503.891574] sd 6:0:0:0: [sdc] Write cache: enabled, read cache: enabled,
doesn't support DPO or FUA
[  503.892606] sd 6:0:0:0: Attached scsi generic sg2 type 0
[  503.988118]  sdc: sdc1 sdc2
[  503.988726] sd 6:0:0:0: [sdc] Attached SCSI disk
[  508.230795] type=1400 audit(1626900565.870:36): avc:  denied  { write }
for  pid=1587 comm="in:imjournal" name="/" dev="dm-0" ino=2
scontext=system_u:system_r:syslogd_t:s0
tcontext=system_u:object_r:root_t:s0 tclass=dir permissive=1
[  508.230812] type=1400 audit(1626900565.870:37): avc:  denied  { add_name
} for  pid=1587 comm="in:imjournal" name="imjournal.state.tmp"
scontext=system_u:system_r:syslogd_t:s0
tcontext=system_u:object_r:root_t:s0 tclass=dir permissive=1
[  508.230991] type=1400 audit(1626900565.870:38): avc:  denied  {
remove_name } for  pid=1587 comm="in:imjournal" name="imjournal.state.tmp"
dev="dm-0" ino=658 scontext=system_u:system_r:syslogd_t:s0
tcontext=system_u:object_r:root_t:s0 tclass=dir permissive=1
[  508.321816] ata6.00: SATA link down (SStatus 11 SControl 300)
[  508.321833] ata6.01: SATA link down (SStatus 11 SControl 300)
[  527.203507] type=1400 audit(1626900584.843:39): avc:  denied  { create }
for  pid=1587 comm="in:imjournal" name="imjournal.state.tmp"
scontext=system_u:system_r:syslogd_t:s0
tcontext=system_u:object_r:root_t:s0 tclass=file permissive=1
[  527.203709] type=1400 audit(1626900584.843:40): avc:  denied  { write
open } for  pid=1587 comm="in:imjournal" path="/imjournal.state.tmp"
dev="dm-0" ino=659 scontext=system_u:system_r:syslogd_t:s0
tcontext=system_u:object_r:root_t:s0 tclass=file permissive=1
[  527.203745] type=1400 audit(1626900584.843:41): avc:  denied  { getattr
} for  pid=1587 comm="in:imjournal" path="/imjournal.state.tmp" dev="dm-0"
ino=659 scontext=system_u:system_r:syslogd_t:s0
tcontext=system_u:object_r:root_t:s0 tclass=file permissive=1
[  527.203812] type=1400 audit(1626900584.843:42): avc:  denied  { rename }
for  pid=1587 comm="in:imjournal" name="imjournal.state.tmp" dev="dm-0"
ino=659 scontext=system_u:system_r:syslogd_t:s0
tcontext=system_u:object_r:root_t:s0 tclass=file permissive=1
[  527.203823] type=1400 audit(1626900584.843:43): avc:  denied  { unlink }
for  pid=1587 comm="in:imjournal" name="imjournal.state" dev="dm-0" ino=658
scontext=system_u:system_r:syslogd_t:s0
tcontext=system_u:object_r:root_t:s0 tclass=file permissive=1

So it seems to be loading it? Sadly however, my disk test results are the
same:

[anaconda root@unknown001a6443e48f 3.10.0-1160.el7.x86_64]# hdparm -Tt
/dev/sdc

/dev/sdc:
 Timing cached reads:   256 MB in  2.00 seconds = 127.89 MB/sec
 Timing buffered disk reads:   4 MB in  3.09 seconds =   1.30 MB/sec

I'm definitely scratching my head here.. I'm not sure what to even try at
this point.

Thanks again folks.

On Wed, Jul 21, 2021 at 4:06 PM Phil Perry <p...@elrepo.org> wrote:

> On 21/07/2021 18:53, Manuel Wolfshant wrote:
> > On 7/21/21 8:16 PM, Tristan Evans wrote:
> >> Thanks so much everyone for not only creating the kmod that fixes my
> >> issue, but also for the suggestions on handing it during installation.
> >>
> >> Phil, that makes a lot of sense regarding using `inst.dd` and the
> >> conflicting modules. I do wonder though.. These installations are to
> >> be automated using a kickstart script, so I wonder if in the "pre"
> >> section (before any storage settings are applied and installation
> >> begins) it can do some finagling to unload the intree module and
> >> replace it with the kmod.. Not sure if that is better/worse than just
> >> using a custom kernel image, but it got me thinking.
> >
> > There is also an inst.blacklist parameter for anaconda. I do not know
> > though if it would blacklist only the module provided by the stock
> > kernel or it would also affect the kmod.
> >
> > As of fiddling with the module.. this should not be needed. If the DUD
> > is correctly created, the kmod package is used during install time. The
> > PC I am typing from has an r8125 chip ( actually two but this does not
> > matter :) ) which is not supported out of the box so normally there
> > would be no network access during install.
> >
> > However I wanted to do a network based install ( in order to use the
> > updates repo at install time, as well as set NTP ) on it so I downloaded
> > the kmod from elrepo, created a DUD on which I also copied my kickstart
> > and everything worked exactly as intended: network was activated and
> > everything worked as advertised.
> >
> > The only doubt I have is that unlike for you, in my case there was no
> > default kernel module to replace but just a new one to add.
> >
> >
> >>
> >> To do some testing, I booted into the CentOS installer media and
> >> started trying some things:
> >>
> >> Extracted the RPM:
> >>
> >> rpm2cpio ./kmod-sata_via-2.6-1.el7_9.elrepo.x86_64.rpm | cpio -idmv
> >> ./etc/depmod.d/kmod-sata_via.conf
> >> ./lib/modules/3.10.0-1160.el7.x86_64
> >> ./lib/modules/3.10.0-1160.el7.x86_64/extra
> >> ./lib/modules/3.10.0-1160.el7.x86_64/extra/sata_via
> >> ./lib/modules/3.10.0-1160.el7.x86_64/extra/sata_via/sata_via.ko.xz
> >> ./usr/share/doc/kmod-sata_via-2.6
> >> ./usr/share/doc/kmod-sata_via-2.6/GPL-v2.0.txt
> >>
> >> I copied the files to their specific locations:
> >>
> >> cp ./etc/depmod.d/kmod-sata_via.conf /etc/depmod.d/
> >> cp ./lib/modules/3.10.0-1160.el7.x86_64/extra/sata_via/sata_via.ko.xz
> >> /lib/modules/3.10.0-1160.el7.x86_64/extra/sata_via/
> >>
> >> Note that I made a quick update to "kmod-sata_via.conf". It seems it
> >> was configured to look into "weak-updates/sata_via", but the RPM would
> >> install the module to "extra/sata_via".
> >
> > For the kmods it ships. ElRepo takes advantage of the stable ABI of the
> > kernels provided by RedHat. The modules are placed below /extra but via
> > the weak-update mechanism provided by RH ( basically invoked by the rpm
> > postinstall  scripts as "/sbin/weak-modules --add-modules"), symlinks
> > are created which ensure that the module is used by all the kernel
> packages.
> >
> >
> >>
> >> I then ran `depmod -a` and now it seems the OS recognizes the kmod
> >> sata_via driver:
> >>
> >> [anaconda root@unknown001a6443e48f sata_via]# modinfo sata_via
> >> filename:
> >> /lib/modules/3.10.0-1160.el7.x86_64/extra/sata_via/sata_via.ko.xz
> >> version:        2.6
> >> license:        GPL
> >> description:    SCSI low-level driver for VIA SATA controllers
> >> author:         Jeff Garzik
> >> retpoline:      Y
> >> rhelversion:    7.9
> >> srcversion:     D02B8C752BDC9941B11FCCB
> >> alias:          pci:v00001106d00009000sv*sd*bc*sc*i*
> >> alias:          pci:v00001106d00005287sv*sd*bc*sc*i*
> >> alias:          pci:v00001106d00007372sv*sd*bc*sc*i*
> >> alias:          pci:v00001106d00005372sv*sd*bc*sc*i*
> >> alias:          pci:v00001106d00003249sv*sd*bc*sc*i*
> >> alias:          pci:v00001106d00003149sv*sd*bc*sc*i*
> >> alias:          pci:v00001106d00000591sv*sd*bc*sc*i*
> >> alias:          pci:v00001106d00005337sv*sd*bc*sc*i*
> >> depends:        libata
> >> vermagic:       3.10.0-1160.el7.x86_64 SMP mod_unload modversions
> >> signer:         The ELRepo Project (http://elrepo.org
> >> <http://elrepo.org>): ELRepo.org Secure Boot Key
> >> sig_key:  F3:65:AD:34:81:A7:B2:0E:34:27:B6:1B:2A:26:63:5B:83:FE:42:7B
> >> sig_hashalgo:   sha256
> >> parm:           vt6420_hotplug:Enable hot-plug support for VT6420
> >> (0=Don't support, 1=support) (int)
> >
> > good...
> >
> >
> >
> >>
> >> So I then load the module (notice it does indeed appear to be finding
> >> the kmod module):
> >>
> >> [anaconda root@unknown001a6443e48f 3.10.0-1160.el7.x86_64]# modprobe
> >> -v sata_via
> >> insmod /lib/modules/3.10.0-1160.el7.x86_64/extra/sata_via/sata_via.ko.xz
> >>
> > ... seems fine...
> >
> >
> >> But to my surprise, the disk speed test is behaving like I'm still
> >> using the old module!
> >>
> >> [anaconda root@unknown001a6443e48f 3.10.0-1160.el7.x86_64]# hdparm -Tt
> >> /dev/sdc
> >>
> >> /dev/sdc:
> >>  Timing cached reads:     2 MB in  6.39 seconds = 320.27 kB/sec
> >>  Timing buffered disk reads:   4 MB in  3.09 seconds =   1.30 MB/sec
> >>
> > ouch !
> >
> >
> >> I'm so confused. I swear that it works great when installed by the RPM
> >> in the installed OS. Am I maybe overlooking something here?
> >
> > I have a strong feeling that the system is not not really using the
> > replacement driver. did you look in /var/log/messages for any info
> > related to this driver ?
> >
> > What I would attempt do is to read the %postinstall section of "rpm -q
> > --scripts kmod-sata_via"and run manually the depmod and weak-modules
> > commands.
> >
> >
> > wolfy
> >
>
> A very simple way to see if the elrepo driver is loaded in
> /var/log/messages is to look for the following message which the kernel
> produces when loading all elrepo drivers, assuming you are not using
> SecureBoot. All our drivers are signed with our SecureBoot key, and when
> the driver loads, and you've not imported our SB public key, you'll see
> the following warning message - perfectly normal, just the kernel
> telling you it couldn't verify the key.
>
> Jul 21 20:55:57 quad kernel: Request for unknown module key 'The ELRepo
> Project (http://elrepo.org): ELRepo.org Secure Boot Key:
> f365ad3481a7b20e3427b61b2a26635b83fe427b' err -11
>
> So when the driver is loaded, if it's the elrepo driver, expect to see
> the above in messages right next to where the driver loads.
>
> Phil
>
>
> _______________________________________________
> elrepo mailing list
> elrepo@lists.elrepo.org
> http://lists.elrepo.org/mailman/listinfo/elrepo
>
_______________________________________________
elrepo mailing list
elrepo@lists.elrepo.org
http://lists.elrepo.org/mailman/listinfo/elrepo

Reply via email to