[devel-distro] grub и devicetree

Sergey Bolshakov sbolshakov at altlinux.ru
Wed Dec 18 23:28:58 MSK 2019


>>>>> "Антон" == Антон Мидюков <midyukov-anton �� ya.ru> writes:

 > 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 лучше?

Собственно, что за проблема таким образом решается ?
Напомню, что для варианта с загрузкой через u-boot,
по крайней мере mainline, имя файла с dtb уже наперёд известно
для каждого бинарника u-boot, так что достаточно указать путь
к директории со всеми известными dtb, что и делается симлинком
/boot/dtb для ядра по умолчанию либо полным версионированным
путём для каждого установленного ядра.

Использование же grub предполагает наличие UEFI, и вся эта
машинерия просто не нужна -- как правило, devicetree там
опционален, поскольку используется ACPI; но даже в том случае,
когда используется devicetree, он уже есть в памяти, и незачем
его подгружать откуда-то извне.

-- 


More information about the devel-distro mailing list