[devel-distro] Политика упаковки devicetree в ядрах

Oleg balbes-150 at yandex.ru
Mon Oct 4 10:16:36 MSK 2021


04.10.2021 09:42, Антон Мидюков пишет:
> Здравствуйте, коллеги
>
> Хотел бы обсудить два вопроса упаковки 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/
>
> Но тенденция к разрастанию, конечно, заметная.
>
> В других дистрибутивах
уточню, не в дистрибутивах, а в апстрим u-boot предписана такое расположение,
и u-boot, при поиске нужного DTB использует эти префиксы (rockchip allwinner amlogic etc)
еще одна причина не желательности сваливания всех DTB в одну кучу -
в некоторых случаях , при слишком большом кол. файлов в одной директории
возникают сбои чтения\поиска нужного варианта и сбой запуска системы

>это позволит,
>не записывать u-boot
еще причина не трогать штатный u-boot, есть много моделей , на которых альтовский u-boot
просто не будет работать или его функционал будет сильно урезан и не будет поддержки всего
оборудования устройства

>невозможность использования зашифрованного корня при выделенном
>незашифрованном разделе /boot.
не только шифрование, еще куча вариантов, почему DTB обязаны быть строго вместе с ядром.
для запуска системы u-boot должен обязательно загрузить ввместе ядро и DTB,
можно обойтись без Initrd, но без DTB ни чего не будет работать.
DTB - это обязательная составляющая ядра, файлы DTB обязаны быть в одном месте с файлами ядра.
без этих файлов (точнее без правильного файла для конкреного оборудования) ядро не будет вообще работать.
сетевая загрузка, мобильные клиенты (удалённый рабочий стол и прочее).
размещение DTB в корневой пришло из древних времён, когда размер носителей был мизерный и приходилось
изощряться, что-бы размиестить ядро в мизерном разделе и всё остальное помещали в корневую систему.
давно пора избавится от этого анахронизма.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.altlinux.org/pipermail/devel-distro/attachments/20211004/59617681/attachment.html>


More information about the devel-distro mailing list