[PATCH] [deb to snap] core18: fix missing kmods from generated kernel snaps

Paolo Pisati paolo.pisati at canonical.com
Tue Jul 30 15:29:26 UTC 2019


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

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 <paolo.pisati at canonical.com>
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 to keep the changes to a
minimum, we avoid installing cryptsetup and just enable framebuffer in
initramfs-tools/conf-hooks.d (see the attached path).

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.

Proposing for linux-snap/+git/bionic, master branch.

Paolo Pisati (2):
  Revert "Initrd modules: fbdev/hdmi out support for psplash"
  Enable initramfs-tools framebuffer script

 Makefile | 27 +++------------------------
 1 file changed, 3 insertions(+), 24 deletions(-)

-- 
2.7.4




More information about the kernel-team mailing list