ALT Linux Distributions development
 help / color / mirror / Atom feed
* [devel-distro] Политика упаковки devicetree в ядрах
@ 2021-10-04  6:42 Антон Мидюков
    0 siblings, 1 reply; 2+ messages in thread
From: Антон Мидюков @ 2021-10-04  6:42 UTC (permalink / raw)
  To: Distributions development; +Cc: Sergey Bolshakov

Здравствуйте, коллеги

Хотел бы обсудить два вопроса упаковки devicetree в наших ядрах

1. devicetree у нас располагаются в одном каталоге /lib/devicetree/<ядро>/
без распределения по подкаталогам на каждого вендора. В других дистрибутивах
(например, Armbian) devicetree распределены по вендорам (allwinner/ nvidia/ rockchip/
и т.д.).
Хотелось бы иметь совместимость со сторонними u-boot, так как это позволит,
не записывать u-boot, а использовать уже имеющийся в eMMC или SPI flash.
Причина такого желания состоит в том, что пользователи могут желать сохранить
в eMMC Armbian или другой дистрибутив.
Замена штатного u-boot на u-boot Альта в свою очередь приведёт к тому, что не загрузятся
другие дистрибутивы, использующие распределение dtb по вендорам.

Для достижения совместимости с другими дистрибутивами достаточно создать
симлинки с именами вендоров на текущий каталог в каталоге /lib/devicetree/<ядро>/
ln -s . <имя_вендора>

Подойдёт ли такая реализация? Если да, то как бы её лучше реализовать?

2. Другая проблема - невозможность использования зашифрованного корня при выделенном
незашифрованном разделе /boot. Для того, чтобы это было возможно, необходимо
наличие devicetree в /boot.
Предлагаю начать паковать devicetree в /boot/devicetree/<ядро>/, и создавать для
обратной совместимости симлинк:
ln -s /boot/devicetree/<ядро> /lib/devicetree/<ядро>

devicetree не сильно много места занимают, так что /boot не разбухнет слишком сильно:
du -h lib/devicetree/5.10.70-std-def-alt1
8,7M	lib/devicetree/5.10.70-std-def-alt1

du -h lib/devicetree/5.14.9-un-def-alt1/
14M	lib/devicetree/5.14.9-un-def-alt1/

Но тенденция к разрастанию, конечно, заметная.

-- 
С уважением, Антон Мидюков <antohami@altlinux.org>


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [devel-distro] Политика упаковки devicetree в ядрах
  @ 2021-10-04 13:22   ` Антон Мидюков
  0 siblings, 0 replies; 2+ messages in thread
From: Антон Мидюков @ 2021-10-04 13:22 UTC (permalink / raw)
  To: Sergey Bolshakov; +Cc: Distributions development

04.10.2021 16:26, Sergey Bolshakov пишет:
>>>>>> "Антон" == Антон Мидюков <midyukov-anton@ya.ru> writes:
> 
>  > Здравствуйте, коллеги
>  > Хотел бы обсудить два вопроса упаковки devicetree в наших ядрах
> 
>  > 1. devicetree у нас располагаются в одном каталоге /lib/devicetree/<ядро>/
>  > без распределения по подкаталогам на каждого вендора. В других дистрибутивах
>  > (например, Armbian) devicetree распределены по вендорам (allwinner/ nvidia/ rockchip/
>  > и т.д.).
> 
> Это верно только для arm64, в arm всё на одном уровне.
> У нас так, как есть, по историческим причинам -- цель dtbs_install
> в ядре, на которую можно было бы рассчитывать в качестве стандартной,
> появилась сравнительно недавно.
> 
>  > Хотелось бы иметь совместимость со сторонними u-boot, так как это позволит,
>  > не записывать u-boot, а использовать уже имеющийся в eMMC или SPI flash.
>  > Причина такого желания состоит в том, что пользователи могут желать сохранить
>  > в eMMC Armbian или другой дистрибутив.
>  > Замена штатного u-boot на u-boot Альта в свою очередь приведёт к тому, что не загрузятся
>  > другие дистрибутивы, использующие распределение dtb по вендорам.
> 
>  > Для достижения совместимости с другими дистрибутивами достаточно создать
>  > симлинки с именами вендоров на текущий каталог в каталоге /lib/devicetree/<ядро>/
>  > ln -s . <имя_вендора>
> 
>  > Подойдёт ли такая реализация? Если да, то как бы её лучше реализовать?
> 
> Я не вижжу проблем в такой реализации, как впрочем и не вижу в ней нужды --
> разве что с целью через год-два, когда смысла беспокоиться о старых ядрах
> поубавится, выровнять поведение наших u-boot с майнлайном.

Нужду я описал. На плате u-boot желает вендор/имя.dtb, а заменить по каким-то причинам нельзя,
сложно или не охота. Если это несложно реализовать, то давайте сделаем. Это востребовано
пользователями.

> 
>  > 2. Другая проблема - невозможность использования зашифрованного корня при выделенном
>  > незашифрованном разделе /boot. Для того, чтобы это было возможно, необходимо
>  > наличие devicetree в /boot.
>  > Предлагаю начать паковать devicetree в /boot/devicetree/<ядро>/, и создавать для
>  > обратной совместимости симлинк:
>  > ln -s /boot/devicetree/<ядро> /lib/devicetree/<ядро>
> 
>  > devicetree не сильно много места занимают, так что /boot не разбухнет слишком сильно:
>  > du -h lib/devicetree/5.10.70-std-def-alt1
>  > 8,7M	lib/devicetree/5.10.70-std-def-alt1
> 
>  > du -h lib/devicetree/5.14.9-un-def-alt1/
>  > 14M	lib/devicetree/5.14.9-un-def-alt1/
> 
>  > Но тенденция к разрастанию, конечно, заметная.
> 
> Я думаю, что энтузиасту шифрования всего на свете сорок вёрст не крюк,
> предоставим ему возможность самому сделать отдельный /boot,
> положить туда нужный dtb и отстрелить себе^W^W радоваться творению
> рук своих.
> 

Проблема то шире, чем я подумал сначала. У нас сейчас вообще не поддерживается загрузка с отдельного раздела /boot
при загрузке при помощи extlinux.conf.
Мало перетащить devicetree в /boot, нужно ещё исправить генерацию extlinux.conf в installkernel, заменить
абсолютные пути на относительные:
-	kernel /boot/vmlinuz-%s
-	initrd /boot/initrd-%s.img
-	fdtdir /lib/devicetree/%s
+	kernel ../vmlinuz-%s
+	initrd ../initrd-%s.img
+	fdtdir ../devicetree/%s

А отдельный раздел /boot нужен также и для расположения корня на lvm.

-- 
С уважением, Антон Мидюков <antohami@altlinux.org>


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-10-04 13:22 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-04  6:42 [devel-distro] Политика упаковки devicetree в ядрах Антон Мидюков
2021-10-04 13:22   ` Антон Мидюков

ALT Linux Distributions development

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel-distro/0 devel-distro/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel-distro devel-distro/ http://lore.altlinux.org/devel-distro \
		devel-distro@lists.altlinux.org devel-distro@lists.altlinux.ru devel-distro@lists.altlinux.com
	public-inbox-index devel-distro

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel-distro


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git