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

Kleber Souza kleber.souza at canonical.com
Wed Aug 7 09:51:13 UTC 2019


On 30.07.19 17:29, Paolo Pisati wrote:
> 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(-)
> 

Acked-by: Kleber Sacilotto de Souza <kleber.souza at canonical.com>



More information about the kernel-team mailing list