diff --git a/src/boot/grub2/ostree-grub-generator b/src/boot/grub2/ostree-grub-generator index 2208c1bf..10645c74 100644 --- a/src/boot/grub2/ostree-grub-generator +++ b/src/boot/grub2/ostree-grub-generator @@ -33,6 +33,7 @@ read_config() initrd="" options="" linux="" + devicetree="" while read -r line do @@ -48,6 +49,9 @@ read_config() "linux") linux=${value} ;; + "devicetree") + devicetree=${value} + ;; "options") options=${value} ;; @@ -74,6 +78,9 @@ populate_menu() if [ -n "${initrd}" ] ; then menu="${menu}\t initrd ${boot_prefix}${initrd}\n" fi + if [ -n "${devicetree}" ] ; then + menu="${menu}\t devicetree ${boot_prefix}${devicetree}\n" + fi menu="${menu}}\n\n" done # The printf command seems to be more reliable across shells for special character (\n, \t) evaluation diff --git a/src/libostree/ostree-bootloader-grub2.c b/src/libostree/ostree-bootloader-grub2.c index 6831382c..57673c7d 100644 --- a/src/libostree/ostree-bootloader-grub2.c +++ b/src/libostree/ostree-bootloader-grub2.c @@ -191,6 +191,7 @@ _ostree_bootloader_grub2_generate_config (OstreeSysroot *sysroot const char *options; const char *kernel; const char *initrd; + const char *devicetree; char *quoted_title = NULL; char *uuid = NULL; char *quoted_uuid = NULL; @@ -246,6 +247,15 @@ _ostree_bootloader_grub2_generate_config (OstreeSysroot *sysroot g_string_append_c (output, '\n'); } + devicetree = ostree_bootconfig_parser_get (config, "devicetree"); + if (devicetree) + { + g_string_append (output, "devicetree"); + g_string_append_c (output, ' '); + g_string_append (output, devicetree); + g_string_append_c (output, '\n'); + } + g_string_append (output, "}\n"); }