Adding deferred fbcon console takeover to the Fedora kernels
by Hans de Goede
Hi All,
Good news on the patch to make the loglevel for quiet configurable,
this has been accepted into -next now. I plan to add this to the
Fedora kernels soonish and set the quiet loglevel to 3 as
discussed earlier.
Today another related patch-set got merged, see the last 3
commits here:
https://github.com/bzolnier/linux/commits/ib-fbdev-drm-v4.19-deferred-con...
I would also like to add these 3 patches to the Fedora 4.18
kernel (for F29+).
The end goal here is a boot where the firmware shows its boot graphics
and these stay in place for a couple of seconds until the GUI loads and
the GUI then smoothly takes over the framebuffer without any disruptions.
See here for an example of what this looks like on my main workstation:
https://fedorapeople.org/~jwrdegoede/flickerfree-videos/workstation-norma...
Shim has already been modified to leave the framebuffer as setup by
the firmware intact and patches for grub have been merged, but not
yet build for F29+.
Combined with the hidden grub menu feature for F29:
https://fedoraproject.org/wiki/Changes/HiddenGrubMenu
This means that the framebuffer is still showing the boot graphics
(e.g. vendor logo) when the kernel loads.
Without the "deferred fbcon console takeover" patches the fbcon
will takeover from dummycon as the console driver as soon as
the efifb registers itself as a fbdev, clearing the screen to
black. breaking the desired boot experience.
The deferred console takeover patches make the fbcon code delay
taking over as the console until the first character is output
on the console.
I've tested this code with the following scenarios:
1) Remove quiet from the kernel commandline -> fbcon binds right away
because messages are logged to the dummycon before efifb loads
2) Mess up the root= kernel argument -> As soon as dracut prints
its timeout message for finding the rootfs, fbcon binds and shows
the timeout message
3) Detailed view in plymouth mode (press ESC to show boot msg) ->
plymouth retains drm master rights on /dev/dri/card? while it
tries to show the details. The blocks fbcon accessing the fbdev
device registered by the kms driver, so nothing will be shown
until plymouth exits (and releases the drm-master rights).
This really is a plymouth bug, I've submitted plymouth patches
fixing this here:
https://bugs.freedesktop.org/show_bug.cgi?id=107047
4) touch /.autorelabel -> autorelabel correctly switches back
to text mode and shows the autorelabel status
###
TL;DR: I'm working on making the boot look pretty (prettier)
for F29 and to complete this we need the 3 patches from here:
https://github.com/bzolnier/linux/commits/ib-fbdev-drm-v4.19-deferred-con...
Added as downstream patches to the Fedora kernel for F29+
(and just for 4.18, they are going upstream for 4.19).
Are you (the Fedora kernel team) ok with me adding these
patches and enabling the new FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER
Kconfig option?
Regards,
Hans
4 years, 10 months
src.rpm for latest kernel in koji fails to build with weird errors
about config mismatches
by stan
Hi,
I build the kernel every few weeks from the koji rawhide src.rpm for
the latest kernel version. This has been working fine for the 4.18
kernels until the latest version. Since I'm only building locally for
x86_64, I change the nobuildarches to
%define nobuildarches i386 ppc64 s390x %{arm} %{power64} aarch64 ppc64le
That has worked previously, but no longer seems to be effective. I
can't see any reason it shouldn't work. There's been the major change
of no longer creating header files in the kernel package, but that
doesn't seem to impact this. Anyway, I see
Processing /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-aarch64.config ...
done
Processing /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-armv7hl-lpae.config ...
done
Processing /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-armv7hl.config ...
done
Processing /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-i686-PAE.config ...
done
Processing /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-i686.config ...
done
Processing /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-ppc64.config ...
done
Processing /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-ppc64le.config ...
done
Processing /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-ppc64p7.config ...
Found unset config items, please set them to an appropriate value
and then this
+ ./process_configs.sh -n -c kernel 4.18.0
/home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-aarch64.config:5810:warning:
override: SPARSEMEM_MANUAL changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-aarch64.config:6835:warning:
override: VIRT_CPU_ACCOUNTING_NATIVE changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-aarch64.config:5810:warning:
override: SPARSEMEM_MANUAL changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-aarch64.config:6835:warning:
override: VIRT_CPU_ACCOUNTING_NATIVE changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-armv7hl-lpae.config:5846:warning:
override: SPARSEMEM_MANUAL changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-armv7hl-lpae.config:6894:warning:
override: VIRT_CPU_ACCOUNTING_NATIVE changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-armv7hl-lpae.config:5846:warning:
override: SPARSEMEM_MANUAL changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-armv7hl-lpae.config:6894:warning:
override: VIRT_CPU_ACCOUNTING_NATIVE changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-armv7hl.config:6231:warning:
override: SPARSEMEM_MANUAL changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-armv7hl.config:7346:warning:
override: VIRT_CPU_ACCOUNTING_NATIVE changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-armv7hl.config:6231:warning:
override: SPARSEMEM_MANUAL changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-armv7hl.config:7346:warning:
override: VIRT_CPU_ACCOUNTING_NATIVE changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-i686-PAE.config:5911:warning:
override: UNWINDER_ORC changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-i686-PAE.config:6383:warning:
override: VIRT_CPU_ACCOUNTING_NATIVE changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-i686-PAE.config:5911:warning:
override: UNWINDER_ORC changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-i686-PAE.config:6383:warning:
override: VIRT_CPU_ACCOUNTING_NATIVE changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-i686.config:5911:warning:
override: UNWINDER_ORC changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-i686.config:6383:warning:
override: VIRT_CPU_ACCOUNTING_NATIVE changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-i686.config:5911:warning:
override: UNWINDER_ORC changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-i686.config:6383:warning:
override: VIRT_CPU_ACCOUNTING_NATIVE changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-ppc64.config:5249:warning:
override: SPARSEMEM_MANUAL changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-ppc64.config:5249:warning:
override: SPARSEMEM_MANUAL changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-ppc64le.config:5176:warning:
override: SPARSEMEM_MANUAL changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-ppc64le.config:5176:warning:
override: SPARSEMEM_MANUAL changes choice
state /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-ppc64p7.config:1686:warning:
symbol value 'm' invalid for
HOTPLUG_PCI_SHPC /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-ppc64p7.config:1722:warning:
symbol value 'm' invalid for
HW_RANDOM_TPM /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-ppc64p7.config:1725:warning:
symbol value 'm' invalid for
HWSPINLOCK /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-ppc64p7.config:2473:warning:
symbol value 'm' invalid for
LIRC /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-ppc64p7.config:3347:warning:
symbol value 'm' invalid for
NF_TABLES_ARP /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-ppc64p7.config:3348:warning:
symbol value 'm' invalid for
NF_TABLES_BRIDGE /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-ppc64p7.config:3349:warning:
symbol value 'm' invalid for
NF_TABLES_INET /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-ppc64p7.config:3350:warning:
symbol value 'm' invalid for
NF_TABLES_IPV4 /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-ppc64p7.config:3351:warning:
symbol value 'm' invalid for
NF_TABLES_IPV6 /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-ppc64p7.config:3353:warning:
symbol value 'm' invalid for
NF_TABLES_NETDEV /home/stan/rpmbuild/BUILD/kernel-4.17.fc28/linux-4.18.0-0.rc6.git3.1.20180729.fc28.x86_64/configs/kernel-4.18.0-ppc64p7.config:3475:warning:
symbol value 'm' invalid for NVMEM error: Bad exit status
from /var/tmp/rpm-tmp.LvChTe (%prep)
The logic in the spec file says it should ignore config files for any
nobuild architectures, but it isn't. I found a workaround by setting
%define listnewconfig_fail 0
%define configmismatch_fail 0
even if there were patches, which of course there always are. But I
didn't have to do this before, so something isn't right somewhere. I
don't see how this could have built successfully in koji with the logic
in the spec file in place.
4 years, 10 months
PATCH: Enable-Apollo-Lake-Whiskey-Cove-PMIC-support.patch
by Hans de Goede
Hi,
If there are no objections I plan to push the attached patch to the
rawhide kernel in the next couple of days.
Note that we had e.g. the PMIC opregions for this already enabled
in the past, see: configs/fedora/generic/x86/CONFIG_BXT_WC_PMIC_OPREGION
which this patch does not change, but newer kernels have added more
fine grained Kconfig options for the PMC_IPC bus between the
Apollo Lake SoC and the PMIC, we ended up picking 'N' for the
CONFIG_INTEL_PMC_IPC option, effectively disabling the PMIC support.
Regards,
Hans
4 years, 10 months
Any way to get the source of old fedora kernels?
by stan
I've been having an issue with Fedora virtual consoles coming up with
the wrong color scheme for a while. Instead of coming up with white on
black, they come up as grey on white. When I startx, X resets the
parameters and they revert to white on black. The settings programs
don't work to change this from within the virtual consoles themselves.
I think I've traced this to a problem with radeonfb not initializing
the virtual console parameters properly, so that when systemd
instantiates them, they don't get proper settings. The problem is not
there on an old 4.13.9 kernel on an old version of Fedora, while it is
there on that old version with newer kernels. When I went to get the
source in koji for that kernel, I see that it has been deleted, as have
all other 4.13 kernels. Is there a way to get the src.rpm for those
older kernels, or are they gone to the great bin bucket in the sky? Is
there someplace else I could look for the source for an older kernel
like that? I just want to compare the radeonfb code to see if it
changed. It might be a race condition, since occasionally, the virtual
consoles come up with the proper coloration. In that case there will be
no change in radeonfb, and it is something about the boot process
non-determinism causing the issue. Is there a way to tell the kernel
to boot deterministically? Some configuration option that says, don't
do multithreading during boot? That would allow radeonfb the time to
fill the parameter struct before systemd uses it.
Thanks.
4 years, 10 months
parallel debuginfo for kernel (plus hardening flags)
by Laura Abbott
Hi,
The kbuild kernel maintainer has accepted the last changes needed for
unique build ids upstream so I went ahead and applied the series to
rawhide. This means that parallel debuginfo should actually
work for future kernel builds. As part of this change, I also enabled
the hardening flags for the few userspace binaries that get shipped
with kernel-devel. I don't expect either of these changes to break
anything but as always if you find any issues, please file a bug.
Thanks,
Laura
4 years, 10 months
Re: [X86] Looking for x86-related fires
by Jeff Backus
Hi Adam,
Thanks for your response.
On Wed, Jul 4, 2018 at 4:33 PM, Adam Williamson <adamwill(a)fedoraproject.org>
wrote:
> On Thu, 2018-06-28 at 13:22 -0400, Jeff Backus wrote:
> > Hi folks,
> >
> > I'm going to take a whack at triaging x86-related bugs. I see a few
> listed
> > on the x86 tracker bug and the x86 exclude arch bug, which I'll take a
> > closer look at.
> >
> > Before I start searching for anything i686-related, are there any issues
> > you'd like us to take a look at first?
>
> Rawhide's been completely broken on x86 since...about 20180611.n.0,
> definitely 20180627.n.0. Installer images don't seem to make it out of
> dracut. I haven't had time to look into the problem in any detail, but
> all the openQA tests are failing, all the time.
>
Yeah, based on my cursory study of the logs, looks like the 6/10 image
started failing for some form of core dump during initial boot that
affected at least the Workstation image, and by 6/27 all i686 images were
affected. I'm going to see if I can narrow it down.
jeff
--
Jeff Backus
jeff.backus(a)gmail.com
http://github.com/jsbackus
4 years, 10 months