Re: [poky] [PATCH v2] genericarm64 core-image-initramfs-boot: remove some kernel drivers
Jose Quaresma <[email protected]> Fri, 10 Apr 2026 11:47:40 +0100
| Newsgroups | org.yoctoproject.lists.poky |
|---|---|
| Message-ID | <CANPvuRnoWUeahiofU6Hy63i3tbg-BuXeBhvLBZSN-whuT5NmKw@mail.gmail.com> |
--00000000000071c59d064f18dd7c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Mikko, This is a good improvement to reduce the initramfs. Mikko Rapeli via lists.yoctoproject.org <mikko.rapeli=3D [email protected]> escreveu (sexta, 10/04/2026 =C3=A0(s) 10= :23): > genericarm64 supports a lot of HW and thus large collection of kernel > drivers are enabled and installed to images by default. > Subset of the kernel drivers are needed in initramfs to mount rootfs > from local mass storage devices. This increases initramfs size a lot > and with new kernel config updates even more. Thus remove kernel > drivers from initramfs image which are not needed for mounting > rootfs from local mass storage devices. GPU, Bluetooth, NFC, > sound, networking etc support is not needed in the initramfs. > > According to buildhistory core-image-initramfs-boot size is reduced > from 118 to 83 Mb. > > Signed-off-by: Mikko Rapeli <[email protected]> > --- > .../images/core-image-initramfs-boot.bbappend | 22 +++++++++++++++++++ > 1 file changed, 22 insertions(+) > create mode 100644 > meta-yocto-bsp/recipes-core/images/core-image-initramfs-boot.bbappend > > diff --git > a/meta-yocto-bsp/recipes-core/images/core-image-initramfs-boot.bbappend > b/meta-yocto-bsp/recipes-core/images/core-image-initramfs-boot.bbappend > new file mode 100644 > index 000000000000..58d17047fc4c > --- /dev/null > +++ b/meta-yocto-bsp/recipes-core/images/core-image-initramfs-boot.bbappe= nd > @@ -0,0 +1,22 @@ > +POSTFUNCS =3D "" > +POSTFUNCS:genericarm64 =3D "reduce_initrd_size" > + > +do_rootfs[postfuncs] +=3D "${POSTFUNCS}" > +reduce_initrd_size () { > + # these kernel modules are not needed for rootfs mount from local > mass storage > + # and can be loaded from main rootfs by udev > + rm -rf \ > + ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/drivers/bluetooth \ > + ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/drivers/gpu \ > + ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/drivers/media \ > + ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/drivers/net \ > + ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/drivers/nfc \ > + ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/drivers/usb/gadget = \ > + ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/fs/fuse \ > + ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/net/bluetooth \ > + ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/net/bridge \ > + ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/net/netfilter \ > + ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/net/nfc \ > + ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/sound > I think it would be better if this were defined in a variable so it could be easily customized if needed. KERNEL_MODULES_PATHS_TO_REMOVE =3D "" KERNEL_MODULES_PATHS_TO_REMOVE:genericarm64 =3D " \ drivers/bluetooth \ drivers/gpu \ ... \ " With something like that it can be looped in the reduce_initrd_size function. Jose +} > + > -- > 2.34.1 > > > -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- > Links: You receive all messages sent to this group. > View/Reply Online (#13894): > https://lists.yoctoproject.org/g/poky/message/13894 > Mute This Topic: https://lists.yoctoproject.org/mt/118756784/5052612 > Group Owner: [email protected] > Unsubscribe: https://lists.yoctoproject.org/g/poky/unsub [ > [email protected]] > -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- > > --=20 Best regards, Jos=C3=A9 Quaresma --00000000000071c59d064f18dd7c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr">Hi Mikko,</div><div><br></div>This is a g= ood=C2=A0improvement=C2=A0to reduce the initramfs.<div><br><div class=3D"gm= ail_quote gmail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">Mikk= o Rapeli via <a href=3D"http://lists.yoctoproject.org">lists.yoctoproject.o= rg</a> <mikko.rapeli=3D<a href=3D"mailto:[email protected]= rg">[email protected]</a>> escreveu (sexta, 10/04/2026 = =C3=A0(s) 10:23):<br></div><blockquote class=3D"gmail_quote" style=3D"margi= n:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex= ">genericarm64 supports a lot of HW and thus large collection of kernel<br> drivers are enabled and installed to images by default.<br> Subset of the kernel drivers are needed in initramfs to mount rootfs<br> from local mass storage devices. This increases initramfs size a lot<br> and with new kernel config updates even more. Thus remove kernel<br> drivers from initramfs image which are not needed for mounting<br> rootfs from local mass storage devices. GPU, Bluetooth, NFC,<br> sound, networking etc support is not needed in the initramfs.<br> <br> According to buildhistory core-image-initramfs-boot size is reduced<br> from 118 to 83 Mb.<br> <br> Signed-off-by: Mikko Rapeli <<a href=3D"mailto:[email protected]" = target=3D"_blank">[email protected]</a>><br> ---<br> =C2=A0.../images/core-image-initramfs-boot.bbappend | 22 ++++++++++++++++++= +<br> =C2=A01 file changed, 22 insertions(+)<br> =C2=A0create mode 100644 meta-yocto-bsp/recipes-core/images/core-image-init= ramfs-boot.bbappend<br> <br> diff --git a/meta-yocto-bsp/recipes-core/images/core-image-initramfs-boot.b= bappend b/meta-yocto-bsp/recipes-core/images/core-image-initramfs-boot.bbap= pend<br> new file mode 100644<br> index 000000000000..58d17047fc4c<br> --- /dev/null<br> +++ b/meta-yocto-bsp/recipes-core/images/core-image-initramfs-boot.bbappend= <br> @@ -0,0 +1,22 @@<br> +POSTFUNCS =3D ""<br> +POSTFUNCS:genericarm64 =3D "reduce_initrd_size"<br> +<br> +do_rootfs[postfuncs] +=3D "${POSTFUNCS}"<br> +reduce_initrd_size () {<br> +=C2=A0 =C2=A0 # these kernel modules are not needed for rootfs mount from = local mass storage<br> +=C2=A0 =C2=A0 # and can be loaded from main rootfs by udev<br> +=C2=A0 =C2=A0 rm -rf \<br> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/d= rivers/bluetooth \<br> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/d= rivers/gpu \<br> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/d= rivers/media \<br> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/d= rivers/net \<br> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/d= rivers/nfc \<br> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/d= rivers/usb/gadget \<br> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/f= s/fuse \<br> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/n= et/bluetooth \<br> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/n= et/bridge \<br> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/n= et/netfilter \<br> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/n= et/nfc \<br> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 ${WORKDIR}/rootfs/${libdir}/modules/*/kernel/s= ound<br></blockquote><div><br></div><div>I think it would be better if this= were defined in a variable so it could be easily customized if needed.</di= v><div><br>KERNEL_MODULES_PATHS_TO_REMOVE =3D ""</div><div>KERNEL= _MODULES_PATHS_TO_REMOVE:genericarm64 =3D " \</div><div>=C2=A0 drivers= /bluetooth \</div><div>=C2=A0 drivers/gpu \</div><div>=C2=A0 ... \</div><di= v>"</div><div><br></div><div>With something=C2=A0like that it can be l= ooped in the reduce_initrd_size function.<br><br></div><div>Jose<br><br></d= iv><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bord= er-left:1px solid rgb(204,204,204);padding-left:1ex"> +}<br> +<br> -- <br> 2.34.1<br> <br> <br> -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-<br> Links: You receive all messages sent to this group.<br> View/Reply Online (#13894): <a href=3D"https://lists.yoctoproject.org/g/pok= y/message/13894" rel=3D"noreferrer" target=3D"_blank">https://lists.yoctopr= oject.org/g/poky/message/13894</a><br> Mute This Topic: <a href=3D"https://lists.yoctoproject.org/mt/118756784/505= 2612" rel=3D"noreferrer" target=3D"_blank">https://lists.yoctoproject.org/m= t/118756784/5052612</a><br> Group Owner: <a href=3D"mailto:poky%[email protected]" target= =3D"_blank">[email protected]</a><br> Unsubscribe: <a href=3D"https://lists.yoctoproject.org/g/poky/unsub" rel=3D= "noreferrer" target=3D"_blank">https://lists.yoctoproject.org/g/poky/unsub<= /a> [<a href=3D"mailto:[email protected]" target=3D"_blank">quaresma.= [email protected]</a>]<br> -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-<br> <br> </blockquote></div><div><br clear=3D"all"></div><div><br></div><span class= =3D"gmail_signature_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_s= ignature"><div dir=3D"ltr">Best regards,<div><br>Jos=C3=A9 Quaresma</div></= div></div></div></div> --00000000000071c59d064f18dd7c--