* [devel-distro] grub и devicetree @ 2019-12-17 17:10 Антон Мидюков 2019-12-18 18:56 ` Антон Мидюков 0 siblings, 1 reply; 8+ messages in thread From: Антон Мидюков @ 2019-12-17 17:10 UTC (permalink / raw) To: devel-distro Доброго времени суток! Существует задача прописать конкретный путь до devicetree в конфигурации grub. Я так понимаю, что на данный момент devicetree задаётся автоматом в /etc/grub.d/10_linux: [...] fdt= for i in "dtb-${version}" "dtb-${alt_version}"; do if test -e "${dirname}/${i}/foundation-v8.dtb" ; then fdt="${i}/foundation-v8.dtb" break fi done [...] if test -n "${fdt}" ; then message="$(gettext_printf "Loading fdt ...")" sed "s/^/$submenu_indentation/" << EOF echo '$(echo "$message" | grub_quote)' devicetree ${rel_dirname}/${fdt} EOF fi У меня сразу же возник вопрос, а у какого из наших ядер есть foundation-v8.dtb? Вроде нет такого. Потому мне захотелось ввести переменную в /etc/sysconfig/grub2, например $GRUB_FDT, которая будет проверяться в /etc/grub.d/10_linux и подставляться в переменную fdt, т.е. в условие будет обёрнут лишь первый участок кода. Пока это просто идея. Может я вообще не в правильную сторону мыслю и есть простое решение? И насколько сложно у нас такой патч двинуть в Сизиф? -- С уважением, Антон Мидюков <antohami@altlinux.org> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [devel-distro] grub и devicetree 2019-12-17 17:10 [devel-distro] grub и devicetree Антон Мидюков @ 2019-12-18 18:56 ` Антон Мидюков 2019-12-18 20:28 ` Sergey Bolshakov 0 siblings, 1 reply; 8+ messages in thread From: Антон Мидюков @ 2019-12-18 18:56 UTC (permalink / raw) To: devel-distro 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 лучше? -- С уважением, Антон Мидюков <antohami@altlinux.org> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [devel-distro] grub и devicetree 2019-12-18 18:56 ` Антон Мидюков @ 2019-12-18 20:28 ` Sergey Bolshakov 2019-12-19 8:16 ` Антон Мидюков 0 siblings, 1 reply; 8+ messages in thread From: Sergey Bolshakov @ 2019-12-18 20:28 UTC (permalink / raw) To: Антон Мидюков Cc: devel-distro >>>>> "Антон" == Антон Мидюков <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, он уже есть в памяти, и незачем его подгружать откуда-то извне. -- ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [devel-distro] grub и devicetree 2019-12-18 20:28 ` Sergey Bolshakov @ 2019-12-19 8:16 ` Антон Мидюков 2019-12-19 8:26 ` Антон Мидюков 2019-12-19 8:41 ` Sergey Bolshakov 0 siblings, 2 replies; 8+ messages in thread From: Антон Мидюков @ 2019-12-19 8:16 UTC (permalink / raw) To: devel-distro 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> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [devel-distro] grub и devicetree 2019-12-19 8:16 ` Антон Мидюков @ 2019-12-19 8:26 ` Антон Мидюков 2019-12-19 8:41 ` Sergey Bolshakov 1 sibling, 0 replies; 8+ messages in thread From: Антон Мидюков @ 2019-12-19 8:26 UTC (permalink / raw) To: devel-distro 19.12.2019 15:16, Антон Мидюков пишет: > [...] > Ещё несколько слов. У нас поиск 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 > Вернее, если бы мы их делали, у нас была бы сломана загрузка на нормальных EFI с ядрами, у которых собраны devicetree (aarch64). Грузился бы только дефолтный пункт. -- С уважением, Антон Мидюков <antohami@altlinux.org> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [devel-distro] grub и devicetree 2019-12-19 8:16 ` Антон Мидюков 2019-12-19 8:26 ` Антон Мидюков @ 2019-12-19 8:41 ` Sergey Bolshakov 2019-12-19 8:51 ` Антон Мидюков 1 sibling, 1 reply; 8+ messages in thread From: Sergey Bolshakov @ 2019-12-19 8:41 UTC (permalink / raw) To: Антон Мидюков Cc: devel-distro >>>>> "Антон" == Антон Мидюков <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 -- ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [devel-distro] grub и devicetree 2019-12-19 8:41 ` Sergey Bolshakov @ 2019-12-19 8:51 ` Антон Мидюков 2019-12-19 9:10 ` Nikolai Kostrigin 0 siblings, 1 reply; 8+ messages in thread From: Антон Мидюков @ 2019-12-19 8:51 UTC (permalink / raw) To: Sergey Bolshakov; +Cc: devel-distro 19.12.2019 15:41, Sergey Bolshakov пишет: >>>>>> "Антон" == Антон Мидюков <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-2.02-sb-0005-Make-10_linux-work-with-our-changes-for-linux16-and-.patch Вернее его вторая половина про devicetree. Кабы не она, я бы не стал ничего делать. -- С уважением, Антон Мидюков <antohami@altlinux.org> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [devel-distro] grub и devicetree 2019-12-19 8:51 ` Антон Мидюков @ 2019-12-19 9:10 ` Nikolai Kostrigin 0 siblings, 0 replies; 8+ messages in thread From: Nikolai Kostrigin @ 2019-12-19 9:10 UTC (permalink / raw) To: devel-distro 19.12.2019 11:51, Антон Мидюков пишет: > > Хорошо. Тогда мне непонятно, зачем у нас накладывается патч: > > grub-2.02-sb-0005-Make-10_linux-work-with-our-changes-for-linux16-and-.patch > > > Вернее его вторая половина про devicetree. Кабы не она, я бы не стал > ничего делать. > Эта серия патчей из fedora для совместимости grub2.02 c shim15+. Прикладывалась оптом. Если какая-то часть мешает, давайте пересмотрим и "пропатчим патчи". -- Best regards, Nikolai Kostrigin ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2019-12-19 9:10 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-12-17 17:10 [devel-distro] grub и devicetree Антон Мидюков 2019-12-18 18:56 ` Антон Мидюков 2019-12-18 20:28 ` Sergey Bolshakov 2019-12-19 8:16 ` Антон Мидюков 2019-12-19 8:26 ` Антон Мидюков 2019-12-19 8:41 ` Sergey Bolshakov 2019-12-19 8:51 ` Антон Мидюков 2019-12-19 9:10 ` Nikolai Kostrigin
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