Kernel snap initrd is missing several fb related kmods

Bug #1838429 reported by Paolo Pisati
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Incomplete
Undecided
Unassigned
linux-raspi2 (Ubuntu)
New
Undecided
Unassigned

Bug Description

Impact:

Around pi-kernel #23 (and pc-kernel #196), kernel snap's initrd went missing all fb kmods - that was workarounded for pi-kernel last week by manually adding the modules back in:

commit edd1f8914fded36d4739fd24cdbdd05c5cf37611
Author: Paolo Pisati <email address hidden>
Date: Tue Jul 23 11:30:49 2019 +0200

    Initrd modules: fbdev/hdmi out support for psplash

    BugLink: https://launchpad.net/bugs/1837209

After more debugging, it turned out that the regression was in fact the effect of fixing LP#1561643: initrmafs-tools kept installing fb modules even when framebuffer support was not enabled, and kernel snap never explicitly enabled framebuffer initramfs-tools script, but still came bundled with such kmods.

Fix:

In Ubuntu Classic, to bundle fb kmods in initrd, we normally install cryptsetup:

$ cat /usr/share/initramfs-tools/conf-hooks.d/cryptsetup
...
FRAMEBUFFER=y

But cryptsetup, among other things, adds several initramfs-tools hooks and scripts to initrd:

...
 scripts
 scripts/local
+scripts/local-block
+scripts/local-block/ORDER
+scripts/local-block/cryptroot
 scripts/ubuntu-core-rootfs
 scripts/functions
+scripts/init-premount
+scripts/init-premount/ORDER
+scripts/init-premount/plymouth
 scripts/ubuntu-core-functions
 scripts/local-premount
 scripts/local-premount/ORDER
@@ -247,6 +359,10 @@
 scripts/local-premount/fixrtc
 scripts/local-premount/dragonmac
 scripts/local-premount/resume
+scripts/local-top
+scripts/local-top/ORDER
+scripts/local-top/cryptroot
+scripts/local-top/cryptopensc
 scripts/nfs
 scripts/panic
 scripts/panic/ORDER
@@ -258,10 +374,13 @@
 scripts/local-bottom
 scripts/local-bottom/ORDER
 scripts/local-bottom/fixrtc-mount
+scripts/local-bottom/cryptopensc
 scripts/init-top
...

so to avoid any possible regression in kernel snaps and keep the changes to a minimum, we avoid installing cryptsetup and just enable framebuffer in initramfs-tools/conf-hooks.d (see also the attached path):

--- a/Makefile
+++ b/Makefile
@@ -106,6 +106,9 @@ all:
        fi
        $(ENV) chroot chroot apt-get -y update;\
        $(ENV) chroot chroot apt-get -y install initramfs-tools-ubuntu-core linux-firmware xz-utils
+ # enable initramfs-tools framebuffer script (and includes the necessary
+ # kmods to initrd.img)
+ echo "FRAMEBUFFER=y" > chroot/usr/share/initramfs-tools/conf-hooks.d/ubuntu-core-fb
        $(ENV) chroot chroot apt-get -y install $(KERNELDEB) $(PKGS)
        umount chroot/sys
        umount chroot/proc

How to test:

A diff between the content of an 'empty initrd' and one that is generated after applying the above fix, shows that fb kmods are now back:

 lib/modules/4.15.0-1042-raspi2/modules.dep.bin
 lib/modules/4.15.0-1042-raspi2/modules.alias
 lib/modules/4.15.0-1042-raspi2/kernel
+lib/modules/4.15.0-1042-raspi2/kernel/sound
+lib/modules/4.15.0-1042-raspi2/kernel/sound/soc
+lib/modules/4.15.0-1042-raspi2/kernel/sound/soc/snd-soc-core.ko
+lib/modules/4.15.0-1042-raspi2/kernel/sound/ac97_bus.ko
+lib/modules/4.15.0-1042-raspi2/kernel/sound/core
+lib/modules/4.15.0-1042-raspi2/kernel/sound/core/snd-timer.ko
+lib/modules/4.15.0-1042-raspi2/kernel/sound/core/snd-pcm-dmaengine.ko
+lib/modules/4.15.0-1042-raspi2/kernel/sound/core/snd.ko
+lib/modules/4.15.0-1042-raspi2/kernel/sound/core/snd-pcm.ko
+lib/modules/4.15.0-1042-raspi2/kernel/sound/core/snd-compress.ko
 lib/modules/4.15.0-1042-raspi2/kernel/drivers
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/media
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/media/rc
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/media/rc/rc-core.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/media/cec
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/media/cec/cec.ko
 lib/modules/4.15.0-1042-raspi2/kernel/drivers/i2c
 lib/modules/4.15.0-1042-raspi2/kernel/drivers/i2c/busses
 lib/modules/4.15.0-1042-raspi2/kernel/drivers/i2c/busses/i2c-bcm2708.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/vc4
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/vc4/vc4.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/bridge
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/bridge/sii902x.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/bridge/tc358767.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/bridge/sil-sii8620.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/bridge/sii9234.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/bridge/dumb-vga-dac.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/bridge/parade-ps8622.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/bridge/adv7511
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/bridge/adv7511/adv7511_drm.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/bridge/lvds-encoder.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/bridge/analogix-anx78xx.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/bridge/synopsys
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/bridge/synopsys/dw-hdmi.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/bridge/nxp-ptn3460.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/bridge/ti-tfp410.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/pl111
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/pl111/pl111_drm.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/arm
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/arm/mali-dp.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/arm/hdlcd.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/udl
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/udl/udl.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/arc
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/arc/arcpgu.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/drm.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/tinydrm
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/tinydrm/repaper.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/tinydrm/core
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/tinydrm/core/tinydrm.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/tinydrm/st7586.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/tinydrm/mi0283qt.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/tinydrm/mipi-dbi.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/tve200
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/tve200/tve200_drm.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/i2c
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/i2c/ch7006.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/i2c/tda998x.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/i2c/sil164.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/mxsfb
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/mxsfb/mxsfb.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/exynos
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/exynos/exynosdrm.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/ttm
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/ttm/ttm.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/virtio
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/virtio/virtio-gpu.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/tilcdc
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/tilcdc/tilcdc.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/vgem
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/vgem/vgem.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/panel
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/panel/panel-simple.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/panel/panel-lvds.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/panel/panel-samsung-ld9040.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/panel/panel-seiko-43wvf1g.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/panel/panel-innolux-p079zca.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/panel/panel-lg-lg4573.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/panel/panel-sitronix-st7789v.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/panel/panel-orisetech-otm8009a.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/panel/panel-jdi-lt070me05000.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/drm/drm_kms_helper.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/ipu-v3
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/gpu/ipu-v3/imx-ipu-v3.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/video
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/video/fbdev
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/video/fbdev/core
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/video/fbdev/core/fb_sys_fops.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/video/fbdev/core/syscopyarea.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/video/fbdev/core/sysimgblt.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/video/fbdev/core/sysfillrect.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/virtio
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/virtio/virtio.ko
+lib/modules/4.15.0-1042-raspi2/kernel/drivers/virtio/virtio_ring.ko
 lib/modules/4.15.0-1042-raspi2/modules.devname
 lib/modules/4.15.0-1042-raspi2/modules.symbols.bin
 lib/modules/4.15.0-1042-raspi2/modules.builtin
@@ -260,8 +363,10 @@
 scripts/local-bottom/fixrtc-mount
 scripts/init-top
 scripts/init-top/ORDER
+scripts/init-top/keymap
 scripts/init-top/blacklist
 scripts/init-top/all_generic_ide
+scripts/init-top/framebuffer
 scripts/init-top/udev
 sbin
 sbin/hwclock

Furthermore, after reverting commit edd1f8914fded36d4739fd24cdbdd05c5cf37611 and building an ubuntu core image with a fixed kernel snap, shows the fb is working regularly.

Tags: patch
Revision history for this message
Paolo Pisati (p-pisati) wrote :
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote : Missing required logs.

This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:

apport-collect 1838429

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
tags: added: patch
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.