Привет! Я попробовал посмотреть на самые тяжёлые компоненты, которые попадают в initramfs. Я сделал initramfs для системы с корнем на разделе. Так что никаких дополнительных фичей не нужно для такой системы. $ find initramfs/ -type f -printf '%s\t%p\n' |sort -k1,1 -g |tail -20 237896 initramfs/lib64/ld-2.32.so 280896 initramfs/lib64/libpcre.so.3.15.12 308856 initramfs/lib64/libreadline.so.7.0 321792 initramfs/lib/firmware/i915/tgl_guc_49.0.1.bin 324160 initramfs/lib/firmware/i915/ehl_guc_49.0.1.bin 324160 initramfs/lib/firmware/i915/icl_guc_49.0.1.bin 324560 initramfs/lib64/libblkid.so.1.1.0 329596 initramfs/lib/modules/5.12.0/kernel/drivers/gpu/drm/drm.ko.xz 383088 initramfs/lib64/libmount.so.1.1.0 433276 initramfs/lib/modules/5.12.0/kernel/net/ipv6/ipv6.ko.xz 498880 initramfs/lib/firmware/i915/ehl_huc_9.0.0.bin 498880 initramfs/lib/firmware/i915/icl_huc_9.0.0.bin 542912 initramfs/bin/busybox 580736 initramfs/lib/firmware/i915/tgl_huc_7.5.0.bin 644952 initramfs/bin/sh4 766656 initramfs/bin/bash4 1061928 initramfs/sbin/udevadm 1780956 initramfs/lib/modules/5.12.0/kernel/drivers/gpu/drm/i915/i915.ko.xz 1851568 initramfs/lib64/libc-2.32.so 2971824 initramfs/lib64/libcrypto.so.1.1 Тут видно сразу несколько проблем в контексте размера. * guess-drm положил i915 модуль, который является очень тяжёлым и тянет за собой много жирных firmware. * В образ попали sh4 и bash4. Это произошло из-за того, что на этой системе /bin/sh -> sh4. * В образ пролез openssl. $ for f in initramfs{,/usr}/{,s}bin/*; do ldd "$f" 2>/dev/null |grep -Fqs lib64/libcrypto.so && echo $f; done initramfs/bin/kmod initramfs/sbin/depmod initramfs/sbin/lsmod initramfs/sbin/modprobe initramfs/sbin/udevadm initramfs/sbin/udevd -- Rgrds, legion
Hi Alexey!
On 06/03/2021, at 06:17:17 PM you wrote:
> Привет!
>
> Я попробовал посмотреть на самые тяжёлые компоненты, которые попадают в
> initramfs. Я сделал initramfs для системы с корнем на разделе. Так что
> никаких дополнительных фичей не нужно для такой системы.
>
> $ find initramfs/ -type f -printf '%s\t%p\n' |sort -k1,1 -g |tail -20
> 237896 initramfs/lib64/ld-2.32.so
> 280896 initramfs/lib64/libpcre.so.3.15.12
> 308856 initramfs/lib64/libreadline.so.7.0
> 321792 initramfs/lib/firmware/i915/tgl_guc_49.0.1.bin
> 324160 initramfs/lib/firmware/i915/ehl_guc_49.0.1.bin
> 324160 initramfs/lib/firmware/i915/icl_guc_49.0.1.bin
> 324560 initramfs/lib64/libblkid.so.1.1.0
> 329596 initramfs/lib/modules/5.12.0/kernel/drivers/gpu/drm/drm.ko.xz
> 383088 initramfs/lib64/libmount.so.1.1.0
> 433276 initramfs/lib/modules/5.12.0/kernel/net/ipv6/ipv6.ko.xz
> 498880 initramfs/lib/firmware/i915/ehl_huc_9.0.0.bin
> 498880 initramfs/lib/firmware/i915/icl_huc_9.0.0.bin
> 542912 initramfs/bin/busybox
> 580736 initramfs/lib/firmware/i915/tgl_huc_7.5.0.bin
> 644952 initramfs/bin/sh4
> 766656 initramfs/bin/bash4
> 1061928 initramfs/sbin/udevadm
> 1780956 initramfs/lib/modules/5.12.0/kernel/drivers/gpu/drm/i915/i915.ko.xz
> 1851568 initramfs/lib64/libc-2.32.so
> 2971824 initramfs/lib64/libcrypto.so.1.1
>
> Тут видно сразу несколько проблем в контексте размера.
>
> * guess-drm положил i915 модуль, который является очень тяжёлым и тянет за
> собой много жирных firmware.
>
А нужен ли guess-drm на стадии initramfs? Если это для KMS то модули можно
загрузить и после монтирования rootfs.
--
WBR et al.
On Fri, Jun 04, 2021 at 09:46:12AM +0200, Konstantin Lepikhov wrote:
> Hi Alexey!
>
> On 06/03/2021, at 06:17:17 PM you wrote:
>
> > Привет!
> >
> > Я попробовал посмотреть на самые тяжёлые компоненты, которые попадают в
> > initramfs. Я сделал initramfs для системы с корнем на разделе. Так что
> > никаких дополнительных фичей не нужно для такой системы.
> >
> > $ find initramfs/ -type f -printf '%s\t%p\n' |sort -k1,1 -g |tail -20
> > 237896 initramfs/lib64/ld-2.32.so
> > 280896 initramfs/lib64/libpcre.so.3.15.12
> > 308856 initramfs/lib64/libreadline.so.7.0
> > 321792 initramfs/lib/firmware/i915/tgl_guc_49.0.1.bin
> > 324160 initramfs/lib/firmware/i915/ehl_guc_49.0.1.bin
> > 324160 initramfs/lib/firmware/i915/icl_guc_49.0.1.bin
> > 324560 initramfs/lib64/libblkid.so.1.1.0
> > 329596 initramfs/lib/modules/5.12.0/kernel/drivers/gpu/drm/drm.ko.xz
> > 383088 initramfs/lib64/libmount.so.1.1.0
> > 433276 initramfs/lib/modules/5.12.0/kernel/net/ipv6/ipv6.ko.xz
> > 498880 initramfs/lib/firmware/i915/ehl_huc_9.0.0.bin
> > 498880 initramfs/lib/firmware/i915/icl_huc_9.0.0.bin
> > 542912 initramfs/bin/busybox
> > 580736 initramfs/lib/firmware/i915/tgl_huc_7.5.0.bin
> > 644952 initramfs/bin/sh4
> > 766656 initramfs/bin/bash4
> > 1061928 initramfs/sbin/udevadm
> > 1780956 initramfs/lib/modules/5.12.0/kernel/drivers/gpu/drm/i915/i915.ko.xz
> > 1851568 initramfs/lib64/libc-2.32.so
> > 2971824 initramfs/lib64/libcrypto.so.1.1
> >
> > Тут видно сразу несколько проблем в контексте размера.
> >
> > * guess-drm положил i915 модуль, который является очень тяжёлым и тянет за
> > собой много жирных firmware.
> >
> А нужен ли guess-drm на стадии initramfs? Если это для KMS то модули можно
> загрузить и после монтирования rootfs.
Насколько я помню drm нужен для plymouth. Раньше в последнем было
добавление drivers/gpu/drm/, drm, drm_kms_helper, что было криво.
Похоже нужно переделать guess-drm в фичу и просить её только из тех мест,
где drm нужен.
--
Rgrds, legion
Hi Alexey!
On 06/04/2021, at 10:15:13 AM you wrote:
<skip>
> > > * guess-drm положил i915 модуль, который является очень тяжёлым и тянет за
> > > собой много жирных firmware.
> > >
> > А нужен ли guess-drm на стадии initramfs? Если это для KMS то модули можно
> > загрузить и после монтирования rootfs.
>
> Насколько я помню drm нужен для plymouth. Раньше в последнем было
> добавление drivers/gpu/drm/, drm, drm_kms_helper, что было криво.
>
> Похоже нужно переделать guess-drm в фичу и просить её только из тех мест,
> где drm нужен.
да, так будет правильно. В контексте i915 - *_guc и *_huc firmware нужны
для декодирования видео, т.е. их отсутствие не должно влиять на работу
KMS.
--
WBR et al.
On Fri, Jun 04, 2021 at 10:27:50AM +0200, Konstantin Lepikhov wrote:
> Hi Alexey!
>
> On 06/04/2021, at 10:15:13 AM you wrote:
>
> <skip>
> > > > * guess-drm положил i915 модуль, который является очень тяжёлым и тянет за
> > > > собой много жирных firmware.
> > > >
> > > А нужен ли guess-drm на стадии initramfs? Если это для KMS то модули можно
> > > загрузить и после монтирования rootfs.
> >
> > Насколько я помню drm нужен для plymouth. Раньше в последнем было
> > добавление drivers/gpu/drm/, drm, drm_kms_helper, что было криво.
> >
> > Похоже нужно переделать guess-drm в фичу и просить её только из тех мест,
> > где drm нужен.
> да, так будет правильно. В контексте i915 - *_guc и *_huc firmware нужны
> для декодирования видео, т.е. их отсутствие не должно влиять на работу
> KMS.
Я тоже думал, а нельзя ли понять какая именно firmware нужна. Но я ещё не
дошёл до такого уровня дзена ))
--
Rgrds, legion
Hi Alexey!
On 06/04/2021, at 10:44:52 AM you wrote:
> On Fri, Jun 04, 2021 at 10:27:50AM +0200, Konstantin Lepikhov wrote:
> > Hi Alexey!
> >
> > On 06/04/2021, at 10:15:13 AM you wrote:
> >
> > <skip>
> > > > > * guess-drm положил i915 модуль, который является очень тяжёлым и тянет за
> > > > > собой много жирных firmware.
> > > > >
> > > > А нужен ли guess-drm на стадии initramfs? Если это для KMS то модули можно
> > > > загрузить и после монтирования rootfs.
> > >
> > > Насколько я помню drm нужен для plymouth. Раньше в последнем было
> > > добавление drivers/gpu/drm/, drm, drm_kms_helper, что было криво.
> > >
> > > Похоже нужно переделать guess-drm в фичу и просить её только из тех мест,
> > > где drm нужен.
> > да, так будет правильно. В контексте i915 - *_guc и *_huc firmware нужны
> > для декодирования видео, т.е. их отсутствие не должно влиять на работу
> > KMS.
>
> Я тоже думал, а нельзя ли понять какая именно firmware нужна. Но я ещё не
> дошёл до такого уровня дзена ))
Еще одна потенциальная проблема запихивания drm/gpu модулей в initramfs -
в случае обновления kernel-modules (например, nvidia) эти модули не будут
обновлены в initramfs и при перезагрузке мы получим отсутствие 3d и вообще
невозможность использования графического режима. Так что я за отключение
этих guess drm по-умолчанию, или хотя бы сделать какой-нибудь blacklist
для них.
--
WBR et al.
On Fri, Jun 04, 2021 at 02:21:25PM +0200, Konstantin Lepikhov wrote:
> > > да, так будет правильно. В контексте i915 - *_guc и *_huc firmware нужны
> > > для декодирования видео, т.е. их отсутствие не должно влиять на работу
> > > KMS.
> >
> > Я тоже думал, а нельзя ли понять какая именно firmware нужна. Но я ещё не
> > дошёл до такого уровня дзена ))
> Еще одна потенциальная проблема запихивания drm/gpu модулей в initramfs -
> в случае обновления kernel-modules (например, nvidia) эти модули не будут
> обновлены в initramfs и при перезагрузке мы получим отсутствие 3d и вообще
> невозможность использования графического режима. Так что я за отключение
> этих guess drm по-умолчанию, или хотя бы сделать какой-нибудь blacklist
> для них.
Выключить можно и сейчас. А озвученная проблема актуальна не только для
gpu/drm. Поэтому дистрибутив должен своевременно перегенерировать образ
initramfs.
--
Rgrds, legion
On Fri, Jun 04, 2021 at 02:21:25PM +0200, Konstantin Lepikhov wrote:
> Hi Alexey!
>
> On 06/04/2021, at 10:44:52 AM you wrote:
>
> > On Fri, Jun 04, 2021 at 10:27:50AM +0200, Konstantin Lepikhov wrote:
> > > Hi Alexey!
> > >
> > > On 06/04/2021, at 10:15:13 AM you wrote:
> > >
> > > <skip>
> > > > > > * guess-drm положил i915 модуль, который является очень тяжёлым и тянет за
> > > > > > собой много жирных firmware.
> > > > > >
> > > > > А нужен ли guess-drm на стадии initramfs? Если это для KMS то модули можно
> > > > > загрузить и после монтирования rootfs.
> > > >
> > > > Насколько я помню drm нужен для plymouth. Раньше в последнем было
> > > > добавление drivers/gpu/drm/, drm, drm_kms_helper, что было криво.
> > > >
> > > > Похоже нужно переделать guess-drm в фичу и просить её только из тех мест,
> > > > где drm нужен.
> > > да, так будет правильно. В контексте i915 - *_guc и *_huc firmware нужны
> > > для декодирования видео, т.е. их отсутствие не должно влиять на работу
> > > KMS.
> >
> > Я тоже думал, а нельзя ли понять какая именно firmware нужна. Но я ещё не
> > дошёл до такого уровня дзена ))
> Еще одна потенциальная проблема запихивания drm/gpu модулей в initramfs -
> в случае обновления kernel-modules (например, nvidia) эти модули не будут
> обновлены в initramfs и при перезагрузке мы получим отсутствие 3d и вообще
> невозможность использования графического режима. Так что я за отключение
> этих guess drm по-умолчанию, или хотя бы сделать какой-нибудь blacklist
> для них.
Я, кстати, хотел заинтересованным напомнить про активную по умолчанию фичу
buildinfo. Она создаёт /var/lib/initrd/$(KERNEL).$(IMAGE_SUFFIX)/files, в
котором список того, что попадает в образ.
При обновлении чего-то из этого списка нужно перегенерировать образ.
--
Rgrds, legion
Hi Alexey!
On 06/04/2021, at 03:54:10 PM you wrote:
<skip>
> > Еще одна потенциальная проблема запихивания drm/gpu модулей в initramfs -
> > в случае обновления kernel-modules (например, nvidia) эти модули не будут
> > обновлены в initramfs и при перезагрузке мы получим отсутствие 3d и вообще
> > невозможность использования графического режима. Так что я за отключение
> > этих guess drm по-умолчанию, или хотя бы сделать какой-нибудь blacklist
> > для них.
>
> Я, кстати, хотел заинтересованным напомнить про активную по умолчанию фичу
> buildinfo. Она создаёт /var/lib/initrd/$(KERNEL).$(IMAGE_SUFFIX)/files, в
> котором список того, что попадает в образ.
>
> При обновлении чего-то из этого списка нужно перегенерировать образ.
т.е. ты имеешь ввиду что стоит сделать filetrigger для rpm?
--
WBR et al.
On Fri, Jun 04, 2021 at 05:21:18PM +0200, Konstantin Lepikhov wrote:
> Hi Alexey!
>
> On 06/04/2021, at 03:54:10 PM you wrote:
>
> <skip>
> > > Еще одна потенциальная проблема запихивания drm/gpu модулей в initramfs -
> > > в случае обновления kernel-modules (например, nvidia) эти модули не будут
> > > обновлены в initramfs и при перезагрузке мы получим отсутствие 3d и вообще
> > > невозможность использования графического режима. Так что я за отключение
> > > этих guess drm по-умолчанию, или хотя бы сделать какой-нибудь blacklist
> > > для них.
> >
> > Я, кстати, хотел заинтересованным напомнить про активную по умолчанию фичу
> > buildinfo. Она создаёт /var/lib/initrd/$(KERNEL).$(IMAGE_SUFFIX)/files, в
> > котором список того, что попадает в образ.
> >
> > При обновлении чего-то из этого списка нужно перегенерировать образ.
> т.е. ты имеешь ввиду что стоит сделать filetrigger для rpm?
Я его для этого и делал.
--
Rgrds, legion