Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 1081547

Summary: initramfs needs to be rebuilt each time GPU vendor is changed for graphical splash to work
Product: Red Hat Enterprise Linux 7 Reporter: Michal Domonkos <mdomonko>
Component: dracutAssignee: dracut-maint
Status: CLOSED NOTABUG QA Contact: Release Test Team <release-test-team-automation>
Severity: high Docs Contact:
Priority: unspecified    
Version: 7.0CC: dracut-maint-list, harald, mdomonko
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-03-28 15:25:50 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
debug.tar.gz none

Description Michal Domonkos 2014-03-27 14:39:04 UTC
Description of problem:
Each time I swap my graphics card with another one plymouth stops working in graphical mode, unless I rebuild initramfs with "dracut -f".  Subsequently, if I swap the card with another (even the previous) one again it stops working unless I rebuild initramfs again and so on.

This issue has been introduced by kernel-3.10.0-114.el7.x86_64 (-113 doesn't exhibit the issue).

Version-Release number of selected component (if applicable):
plymouth-0.8.9-0.10.20140113.el7.x86_64
kernel-3.10.0-114.el7.x86_64

Comment 1 Ray Strode [halfline] 2014-03-27 15:14:53 UTC
that seems really unlikely.  It seems more likely that it's just randomly failing. Can you post a debug log when it fails?

Comment 2 Michal Domonkos 2014-03-27 16:41:14 UTC
BTW, I'm sorry but was a little bit inaccurate -- plymouth always works; I was only referring to the graphical mode.

I've done some more testing and found out that the issue only occurs when swapping cards that use different DRM drivers, e.g. nouveau -> radeon or vice versa.

As for the reproducibility, it's definitely not random but it follows the described pattern.  Here's a precise reproducer:

1. Replace your current graphics card with one of a different vendor, e.g. an NVIDIA with an AMD
2. Boot a few times - graphical splash doesn't come up a single time
4. Run dracut -f
5. Boot a few times - graphical splash comes up every time
6. Replace card with one of a different vendor, e.g. an AMD with an NVIDIA
7. Boot a few times - graphical splash doesn't come up a single time
8. Run dracut -f
9. Boot a few times - graphical splash comes up every time
10. Replace card with another one
...

Also, the issue doesn't happen when you go back to a card with which the initramfs image was built last time, i.e.:
AMD (pass) -> NVIDIA (fail) -> AMD (pass)

I tried 3 different workstations and 4 GPUs (2 NVIDIA Quadro and 2 AMD FirePro) just to be sure and all did exhibit the issue.  I'm using the latest nightly build now.

When shutting down the system the graphical splash shows up like it should.  It's just the boot phase that is affected.

Comment 3 Ray Strode [halfline] 2014-03-27 16:50:22 UTC
if you change /etc/dracut.conf to have:

hostonly="no"

and then rebuild the initrd, does that initrd work across the board?

Comment 4 Michal Domonkos 2014-03-27 17:09:26 UTC
Doesn't help.  Changed hostonly to "no", rebuilt on nvidia, rebooted -- splash worked.  Swapped with amd and splash was gone again.

Comment 5 Ray Strode [halfline] 2014-03-27 18:23:06 UTC
I may not have the configuration option right or something.  if you run

# zcat initramfs-$(uname -r).img | cpio -t | grep drm | grep ko

I assume you only see kms drivers for the old card?

I think this, leaving out of non-applicable drivers, is in fact, "by design", for dracut, but I'm not sure.  I'm going to reassign to dracut, but it may get the NOTABUG treatment.

Comment 6 Michal Domonkos 2014-03-28 08:36:11 UTC
When I run the above command I get this:

gzip: /boot/initramfs-3.10.0-115.el7.x86_64.img: not in gzip format
cpio: premature end of archive

Comment 7 Harald Hoyer 2014-03-28 13:03:51 UTC
(In reply to Michal Domonkos from comment #6)
> When I run the above command I get this:
> 
> gzip: /boot/initramfs-3.10.0-115.el7.x86_64.img: not in gzip format
> cpio: premature end of archive

use "lsinitrd" to see the contents of the initramfs.

Comment 8 Harald Hoyer 2014-03-28 13:06:24 UTC
(In reply to Michal Domonkos from comment #0)
> Description of problem:
> Each time I swap my graphics card with another one plymouth stops working in
> graphical mode, unless I rebuild initramfs with "dracut -f".  Subsequently,
> if I swap the card with another (even the previous) one again it stops
> working unless I rebuild initramfs again and so on.
> 
> This issue has been introduced by kernel-3.10.0-114.el7.x86_64 (-113 doesn't
> exhibit the issue).
> 
> Version-Release number of selected component (if applicable):
> plymouth-0.8.9-0.10.20140113.el7.x86_64
> kernel-3.10.0-114.el7.x86_64

That's the limitation by design.

Install dracut-config-generic, if you want to be HW independent, which should add hostonly="no".

Comment 9 Harald Hoyer 2014-03-28 13:07:22 UTC
(In reply to Michal Domonkos from comment #4)
> Doesn't help.  Changed hostonly to "no", rebuilt on nvidia, rebooted --
> splash worked.  Swapped with amd and splash was gone again.

Huh?

Can you show me the output of

# dracut -f --debug

for hostonly="no"?

Comment 10 Michal Domonkos 2014-03-28 14:52:59 UTC
OK, I obviously didn't know that this is expected behavior.  Now I do :)  I was confused because, for some reason, I thought it used to work on older kernels (<= -113) but I've just found out by further testing that the -113 one actually behaves the same way in this regard so it really wasn't a kernel issue at all.

Installing dracut-config-generic solves the problem.  With that plymouth always works as expected regardless of the card.  I don't have to touch /etc/dracut.conf at all (i.e. by default there's hostonly="yes" commented out).

However, with explicit hostonly="no" and no dracut-config-generic installed it exhibits this issue, so I guess that option simply has no effect on this.

I'm attaching the requested dracut -f --debug output, just for completeness.

Close now?

Comment 11 Michal Domonkos 2014-03-28 14:55:30 UTC
Created attachment 879887 [details]
debug.tar.gz

Output from dracut -f --debug on kernel -113 with no dracut-config-generic installed and hostonly="no" in /etc/dracut.conf

Comment 12 Michal Domonkos 2014-03-28 14:59:11 UTC
Just a quick glance on the log that I've just attached tells me that the "hostonly" option in /etc/dracut.conf gets overriden by /usr/lib/dracut/dracut.conf.d/01-dist.conf.  Is it right?