[devel-distro] grub и devicetree

Sergey Bolshakov sbolshakov at altlinux.ru
Thu Dec 19 11:41:45 MSK 2019


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

 > 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 при загрузке.

Я высказывался offlist, повторю и сюда:
такое железо (EFI без ACPI и без вшитого devicetree) просто, в силу
принятых стандартов в этой области, не должно существовать, и я надеюсь,
что у сопровождающих grub достанет здравого смысла не принимать такие
изменения.

 > Иначе, прописав в 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

-- 


More information about the devel-distro mailing list