grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bli module inclusion gives me just black screen on real hardware


From: Oliver Steffen
Subject: Re: bli module inclusion gives me just black screen on real hardware
Date: Sat, 12 Aug 2023 05:52:00 -0700
User-agent: alot/0.8.1

Quoting Daniel Kiper (2023-08-11 18:13:57)
> Hi,
>
> Sorry for late reply but I was on vacation...
>
> On Tue, Jul 18, 2023 at 02:34:08PM +0200, Tobias Powalowski via Grub-devel 
> wrote:
> > Hi,
> >
> > I tried to add the bli module to my standalone grub for my project. In qemu
> > testing all is fine, if trying to boot it on real hardware gives me just a
> > blank screen and game over.

Sorry to hear that.
I just tried it again on a Lenovo T14s (x86_64) and I can reach the menu
and the grub shell without problems.  What hardware are you using?

> >
> > Used grub version is 2.12rc1.
> >
> > Any ideas?

You could apply following patch.  It adds debug prints to the bli modue.
Then enable debug output in your grub.cfg by setting

   set debug=bli
   set pager=1

I recommend adding

  sleep 10 --verbose --interruptible

just after the line loading the bli module.  This is to keep the
messages visible for a moment before the menu clears the screen (should
it get to there).
This might give us a hint where it goes wrong.


>From cda95baaf0a3c0f277a5e37aff399574627b2263 Mon Sep 17 00:00:00 2001
From: Oliver Steffen <osteffen@redhat.com>
Date: Sat, 12 Aug 2023 14:23:31 +0200
Subject: [PATCH] bli dprint

---
 grub-core/commands/bli.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/grub-core/commands/bli.c b/grub-core/commands/bli.c
index e0d8a54f7..95caa4feb 100644
--- a/grub-core/commands/bli.c
+++ b/grub-core/commands/bli.c
@@ -89,23 +89,30 @@ set_loader_device_part_uuid (void)
   grub_err_t status = GRUB_ERR_NONE;
   char *part_uuid = NULL;

+  grub_dprintf ("bli", "getting loaded image\n");
   image = grub_efi_get_loaded_image (grub_efi_image_handle);
   if (image == NULL)
     return grub_error (GRUB_ERR_BAD_DEVICE, N_("unable to find boot device"));

+  grub_dprintf ("bli", "getting boot disk\n");
   device_name = grub_efidisk_get_device_name (image->device_handle);
   if (device_name == NULL)
     return grub_error (GRUB_ERR_BAD_DEVICE, N_("unable to find boot device"));

+  grub_dprintf ("bli", "getting uuid\n");
   status = get_part_uuid (device_name, &part_uuid);

   if (status == GRUB_ERR_NONE)
-    status = grub_efi_set_variable_to_string ("LoaderDevicePartUUID",
&bli_vendor_guid, part_uuid,
-                                             
GRUB_EFI_VARIABLE_BOOTSERVICE_ACCESS |
-                                             GRUB_EFI_VARIABLE_RUNTIME_ACCESS);
+    {
+      grub_dprintf ("bli", "setting var\n");
+      status = grub_efi_set_variable_to_string
("LoaderDevicePartUUID", &bli_vendor_guid, part_uuid,
+                                               
GRUB_EFI_VARIABLE_BOOTSERVICE_ACCESS |
+                                               
GRUB_EFI_VARIABLE_RUNTIME_ACCESS);
+    }
   else
     grub_error (status, N_("unable to determine partition UUID of
boot device"));

+  grub_dprintf ("bli", "cleanup\n");
   grub_free (part_uuid);
   grub_free (device_name);
   return status;
@@ -113,8 +120,10 @@ set_loader_device_part_uuid (void)

 GRUB_MOD_INIT (bli)
 {
+  grub_dprintf ("bli", "init start\n");
   grub_efi_set_variable_to_string ("LoaderInfo", &bli_vendor_guid,
PACKAGE_STRING,
                                   GRUB_EFI_VARIABLE_BOOTSERVICE_ACCESS |
                                   GRUB_EFI_VARIABLE_RUNTIME_ACCESS);
   set_loader_device_part_uuid ();
+  grub_dprintf ("bli", "init end\n");
 }
-- 
2.41.0



Thanks,
 Oliver
>
> Adding Oliver who is original author of this module. Please always CC
> original authors of the patches which make regressions.
>
> Oliver, could you help with that?
>
> Daniel
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]