[devel-distro] grub и devicetree

Антон Мидюков midyukov-anton at ya.ru
Thu Dec 19 11:16:47 MSK 2019


19.12.2019 3:28, Sergey Bolshakov пишет:
>   > 18.12.2019 0:10, Антон Мидюков пишет:
>   >> Доброго времени суток!
>   >>
>   >> Существует задача прописать конкретный путь до devicetree в
>   >> конфигурации grub. Я так понимаю, что на данный момент devicetree
>   >> задаётся автоматом в /etc/grub.d/10_linux:
>   >>
>   >> [...]
>
>   > Я сделал тестовое задание:
>
>   > [#243217] [test-only] EPERM (try 2) grub.git=2.02-alt21
>
>   > Изменения следующие:
>
>   > 1. Появилась возможность в /etc/sysconfig/grub2 записать в переменную
>   > GRUB_FDT_LINUX имя необходимого dtb вместо умолчального
>   > foundation-v8.dtb, который во всех наших ядрах для aarch64 есть (но
>   > есть ещё и не совсем наши ядра). Возможно, стоит отказаться от этой
>   > возможности. А может и не стоит, удобная фича.
>
>   > 2. Добавил в качестве пути поиска dtb для симлинков vmlinuz и kernel:
>   > /boot/dtb
>
>   > Таким образом, для того, чтобы можно было задать devicetree, должны
>   > быть в наличии симлинки:
>
>   > /boot/dtb -> /lib/devicetree/%version-%flavour-%release
>
>   > /boot/dtb-%version-%flavour-%release ->
>   > /lib/devicetree/%version-%flavour-%release
>
>   > И в наличии должен быть
>   > /boot/dtb-%version-%flavour-%release/${GRUB_FDT_LINUX} и
>   > /boot/dtb/${GRUB_FDT_LINUX}
>
>   > Вопрос: их, видимо, должен создавать installkernel при наличии
>   > /lib/devicetree/%version-%flavour-%release?
>
>   > Получается, нужно ещё доработать bootloaders-utils. Или добавить в
>   > пути поиска /lib/devicetree/%version-%flavour-%release лучше?
>
> Собственно, что за проблема таким образом решается ?

Решаем возможность нормального обновления grub на системе с EFI, которая 
не имеет  ACPI и не предоставляет devicetree при загрузке.

Иначе, прописав в grub.cfg devicetree, после обновления его там уже не 
будет.

Хорошенько подумав, я решил, что не стоит трогать installkernel, всё 
можно сделать и в grub.

Так как я добавил ранее поиск devicetree в /boot/dtb для vmlinuz, то 
пришлось отказаться от дефолтного значения, которое теперь стало ломать 
загрузку на нормальных EFI.

Собран новый вариант, который ничего ломать не должен:

[#243217] [test-only] EPERM (try 5) grub.git=2.02-alt21

Ещё несколько слов. У нас поиск devicetree добавлялся ранее патчем от 
2014 года 
grub-2.02-sb-0005-Make-10_linux-work-with-our-changes-for-linux16-and-.patch

Но использоваться фактически не мог, так как мы не делаем симлинки:

boot/dtb-%version-%flavour-%release  -> 
/lib/devicetree/%version-%flavour-%release

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



More information about the devel-distro mailing list