Re: UEFI boot hangs after loader

From: Warner Losh <imp_at_bsdimp.com>
Date: Wed, 24 Oct 2018 11:25:51 -0600
On Wed, Oct 24, 2018 at 10:33 AM Harry Newton <hn_at_yewbarrow.net> wrote:

> gryphon# efivar -N --hex $(efivar | grep Boot0002)
> 0000: 01 00 00 00 98 00 55 00 45 00 46 00 49 00 3a 00
> 0010: 20 00 4b 00 69 00 6e 00 67 00 73 00 74 00 6f 00
> 0020: 6e 00 44 00 61 00 74 00 61 00 54 00 72 00 61 00
> 0030: 76 00 65 00 6c 00 65 00 72 00 20 00 32 00 2e 00
> 0040: 30 00 31 00 2e 00 30 00 30 00 00 00 02 01 0c 00
> 0050: d0 41 03 0a 00 00 00 00 01 01 06 00 00 14 03 05
> 0060: 06 00 03 00 04 01 2a 00 01 00 00 00 01 00 00 00
> 0070: 00 00 00 00 40 06 00 00 00 00 00 00 90 90 90 90
> 0080: 00 00 00 00 00 00 00 00 00 00 00 00 01 01 7f ff
> 0090: 04 00 01 04 4e 00 ef 47 64 2d c9 3b a0 41 ac 19
> 00a0: 4d 51 d0 1b 4c e6 4b 00 69 00 6e 00 67 00 73 00
> 00b0: 74 00 6f 00 6e 00 44 00 61 00 74 00 61 00 54 00
> 00c0: 72 00 61 00 76 00 65 00 6c 00 65 00 72 00 20 00
> 00d0: 32 00 2e 00 30 00 31 00 2e 00 30 00 30 00 00 00
> 00e0: 7f ff 04 00 00 00 42 4f
> gryphon#
>

Perfect. I'll decode this and see if I can figure out where we're going AFU.

Warner


> On 24 October 2018 at 15:09, Warner Losh <imp_at_bsdimp.com> wrote:
>
>>
>>
>> On Wed, Oct 24, 2018 at 7:05 AM Harry Newton <hn_at_yewbarrow.net> wrote:
>>
>>> Booted with the installer image makes efibootmgr to work as you said:
>>>
>>> gryphon# efibootmgr -v
>>> BootCurrent: 0002
>>> Timeout : 2 seconds
>>> BootOrder : 0001, 0002
>>> Boot0001* UEFI OS
>>>
>>> HD(1,GPT,b19ccd5d-7c6a-11e7-ae3e-28b2bde107e4,0x28,0x640)/File(\EFI\BOOT\BOOTX64.EFI)
>>> ada0p1:/EFI/BOOT/BOOTX64.EFI (null)
>>>
>>> However it (efibootmgr) hangs and doesn't return to the shell, though it
>>> is
>>> interruptible with ^C.
>>>
>>> The partition listed against Boot0001 is my efi partition.
>>>
>>
>> Can you do something like:
>>
>> sudo efivar -N --hex `sudo efivar | grep Boot0002`
>>
>> so I can have an example of a naughty boot variable? That's almost
>> certainly causing the heart-burn.
>>
>> Warner
>>
>>
>>
>>> /H
>>>
>>> On 23 October 2018 at 22:51, Kyle Evans <kevans_at_freebsd.org> wrote:
>>>
>>> > Hi,
>>> >
>>> > I suspect 4th vs. lua has no impact here, given the output shown --
>>> > can you throw one of the installer images [0] on some removable media
>>> > and give that a shot for booting? If that works, we can explore UEFI
>>> > variables from there.
>>> >
>>> > efibootmgr will only work on a successful UEFI boot, unfortunately- if
>>> > we didn't make uefi loader -> kernel transition, then we don't have
>>> > access to runtime services.
>>> >
>>> > Thanks,
>>> >
>>> > Kyle Evans
>>> >
>>> > [0]
>>> https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/12.0/
>>> >
>>> > On Tue, Oct 23, 2018 at 4:23 PM Harry Newton <hn_at_yewbarrow.net> wrote:
>>> > >
>>> > > I set LOADER_DEFAULT_INTERP=4th and went in /usr/src/stand and
>>> re-made
>>> > the
>>> > > binaries in /boot but this doesn't solve the problem.  It did copy
>>> > > /boot/loader_4th.efi to /boot/loader.efi which is (according to
>>> uefi(8)
>>> > > which is what is called from /boot/boot1.efi and which contains the
>>> > strings
>>> > > I see on the console before the hang.  But it must then call / read
>>> > > something else and I don't think it can find it.  Not sure why it
>>> doesn't
>>> > > produce an error message.  I *think* it may be something to do with
>>> EFI
>>> > > variables, but as efibootmgr doesn't work I can't explore this,
>>> despite
>>> > > efirt being in the kernel.
>>> > >
>>> > > Suggestions received welcomed, and new suggestions / leads to follow
>>> also
>>> > > very much welcomed.
>>> > >
>>> > > /H
>>> > >
>>> > >
>>> > > On 23 October 2018 at 21:33, Harry Newton <hn_at_yewbarrow.net> wrote:
>>> > >
>>> > > > Right ... I've the binaries in /boot, freshly made.  This might be
>>> a
>>> > silly
>>> > > > question ... do I not need to copy them (or dd the boot1.efifat
>>> image)
>>> > to
>>> > > > the EFI partition ?
>>> > > >
>>> > > > /H
>>> > > >
>>> > > > On 23 October 2018 at 21:30, Toomas Soome <tsoome_at_me.com> wrote:
>>> > > >
>>> > > >> you should have the binaries in boot - just ln (or copy) one to
>>> > loader.efi
>>> > > >>
>>> > > >> rgds,
>>> > > >> toomas
>>> > > >>
>>> > > >>
>>> > > >> On 23 Oct 2018, at 23:22, Harry Newton <hn_at_yewbarrow.net> wrote:
>>> > > >>
>>> > > >> Yes ... so as everything is built, can I just alter
>>> > LOADER_DEFAULT_INTERP
>>> > > >> in /etc/make.conf and then reinstall just the loader and boot
>>> parts
>>> > onto
>>> > > >> the UEFI partition ?  If so, how ?
>>> > > >>
>>> > > >>
>>> > > >> On 23 October 2018 at 21:17, Toomas Soome <tsoome_at_me.com> wrote:
>>> > > >>
>>> > > >>> ok, in that case I’d suggest to test out if forth based one is
>>> still
>>> > > >>> working - at least you can get the bootable system. And then
>>> there
>>> > is a
>>> > > >>> chance to debug the lua version too (note it should be possible
>>> to
>>> > chain
>>> > > >>> /boot/loader_lua.efi).
>>> > > >>>
>>> > > >>> rgds,
>>> > > >>> toomas
>>> > > >>>
>>> > > >>> > On 23 Oct 2018, at 23:08, Harry Newton <hn_at_yewbarrow.net>
>>> wrote:
>>> > > >>> >
>>> > > >>> > So it's got FORTH in it, but my loader is lua based, and also
>>> > doesn't
>>> > > >>> > appear to read loader.rc.
>>> > > >>> >
>>> > > >>> > /H
>>> > > >>> >
>>> > > >>> > On 23 October 2018 at 21:03, Toomas Soome <tsoome_at_me.com>
>>> wrote:
>>> > > >>> >
>>> > > >>> >> hm. in that case, whats the content of /boot/loader.rc ?
>>> > > >>> >>
>>> > > >>> >> rgds,
>>> > > >>> >> toomas
>>> > > >>> >>
>>> > > >>> >>
>>> > > >>> >> On 23 Oct 2018, at 23:01, Harry Newton <hn_at_yewbarrow.net>
>>> wrote:
>>> > > >>> >>
>>> > > >>> >> If boot menu is the screen where you get the options for
>>> various
>>> > > >>> kernels
>>> > > >>> >> and the picture of the daemon head, no.  It stops at the
>>> point in
>>> > my
>>> > > >>> email
>>> > > >>> >> — though not as I said just before the kernel is loaded but in
>>> > point
>>> > > >>> of
>>> > > >>> >> fact before the menu.
>>> > > >>> >>
>>> > > >>> >> I've also rebuilt the kernel and still can't use efibootmgr
>>> which
>>> > is
>>> > > >>> >> puzzling me.
>>> > > >>> >>
>>> > > >>> >> /H
>>> > > >>> >>
>>> > > >>> >>
>>> > > >>> >> On 23 October 2018 at 20:56, Toomas Soome <tsoome_at_me.com>
>>> wrote:
>>> > > >>> >>
>>> > > >>> >>> Do you get boot menu? if so, press esc to get to ok prompt,
>>> then
>>> > type
>>> > > >>> >>> start - if its bootfort based loader, it will load the
>>> kernel and
>>> > > >>> modules.
>>> > > >>> >>> lsmod will then list the loaded files.
>>> > > >>> >>>
>>> > > >>> >>> If the loader prompt is still usable, then next command
>>> would be:
>>> > > >>> boot
>>> > > >>> >>>
>>> > > >>> >>> rgds,
>>> > > >>> >>> toomas
>>> > > >>> >>>
>>> > > >>> >>>> On 23 Oct 2018, at 20:45, Harry Newton <hn_at_yewbarrow.net>
>>> > wrote:
>>> > > >>> >>>>
>>> > > >>> >>>> Just upgraded my Asus UX303L (amd64) from 11-STABLE to
>>> > 12.0-BETA1
>>> > > >>> >>> r339529
>>> > > >>> >>>> by source.  Have a problem with booting which hangs after:
>>> > > >>> >>>>
>>> > > >>> >>>>>> FreeBSD EFI boot block
>>> > > >>> >>>> Loader path: /boot/loader.efi
>>> > > >>> >>>>
>>> > > >>> >>>> Initializing modules: ZFS UFS
>>> > > >>> >>>> Probing 5 block devices ... done
>>> > > >>> >>>> ZFS found the following pools: zroot
>>> > > >>> >>>> UFS found no partitions
>>> > > >>> >>>> Consoles: EFI console
>>> > > >>> >>>> FreeBSD/amd64 EFI loader, Revision 1.1
>>> > > >>> >>>>
>>> > > >>> >>>>   Command line arguments: loader.efi
>>> > > >>> >>>>   EFI version 2.31
>>> > > >>> >>>>   EFI Firmware: American Megatrends (rev 4.654)
>>> > > >>> >>>>   Console: efi(0)
>>> > > >>> >>>>   Load Path: HD(4, GPT [ ... ]
>>> > > >>> >>>>   Load Device: Pci Root [ ... ]
>>> > > >>> >>>>   Boot Current: 0001
>>> > > >>> >>>>   Boot Order: 0001 [x]
>>> > > >>> >>>>   Boot Info Path: HS(1, GPT,  [ ... ]
>>> /\EFI\BOOT\BOOTX64.EFI
>>> > > >>> >>>> -
>>> > > >>> >>>>
>>> > > >>> >>>> So it gets into loader.efi which runs but stops I think just
>>> > before
>>> > > >>> >>> loading
>>> > > >>> >>>> the kernel.  Partitions:
>>> > > >>> >>>>
>>> > > >>> >>>> =>       40  250069600  ada0  GPT  (119G)
>>> > > >>> >>>>        40       1600     1  efi  (800K)
>>> > > >>> >>>>      1640       1024     2  freebsd-boot  (512K)
>>> > > >>> >>>>      2664       1432        - free -  (716K)
>>> > > >>> >>>>      4096    4194304     3  freebsd-swap  (2.0G)
>>> > > >>> >>>>   4198400  245870592     4  freebsd-zfs  (117G)
>>> > > >>> >>>> 250068992        648        - free -  (324K)
>>> > > >>> >>>>
>>> > > >>> >>>> and the EFI partition is FAT 12.
>>> > > >>> >>>>
>>> > > >>> >>>> I can't provide (at the moment) any output from efibootmgr:
>>> > > >>> >>>>
>>> > > >>> >>>> root_at_gryphon:~ # efibootmgr -v
>>> > > >>> >>>> efibootmgr: efi variables not supported on this system.
>>> root?
>>> > > >>> kldload
>>> > > >>> >>> efirt?
>>> > > >>> >>>> root_at_gryphon:~ # kldload efirt
>>> > > >>> >>>> kldload: can't load efirt: module already loaded or in
>>> kernel
>>> > > >>> >>>>
>>> > > >>> >>>> which I don't understand.
>>> > > >>> >>>>
>>> > > >>> >>>> I'm going to rebuild the kernel (currently GENERIC) and see
>>> if
>>> > that
>>> > > >>> >>> allows
>>> > > >>> >>>> me to load efirt / use efibootmgr.
>>> > > >>> >>>>
>>> > > >>> >>>> In the meantime, I should be very grateful for any advice.
>>> > > >>> >>>>
>>> > > >>> >>>> ( Currently booting using a 11-RELEASE memstick image and
>>> > dropping
>>> > > >>> into
>>> > > >>> >>> its
>>> > > >>> >>>> loader to get to the installed 12-STABLE ).
>>> > > >>> >>>>
>>> > > >>> >>>> /Harry
>>> > > >>> >>>> _______________________________________________
>>> > > >>> >>>> freebsd-current_at_freebsd.org mailing list
>>> > > >>> >>>> https://lists.freebsd.org/mailman/listinfo/freebsd-current
>>> > > >>> >>>> To unsubscribe, send any mail to
>>> "freebsd-current-unsubscribe_at_f
>>> > > >>> >>> reebsd.org"
>>> > > >>> >>>
>>> > > >>> >>>
>>> > > >>> >>
>>> > > >>> >>
>>> > > >>> >> --
>>> > > >>> >> Harry Newton
>>> > > >>> >>
>>> > > >>> >>
>>> > > >>> >>
>>> > > >>> >
>>> > > >>> >
>>> > > >>> > --
>>> > > >>> > Harry Newton
>>> > > >>> > _______________________________________________
>>> > > >>> > freebsd-current_at_freebsd.org mailing list
>>> > > >>> > https://lists.freebsd.org/mailman/listinfo/freebsd-current
>>> > > >>> > To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_f
>>> > > >>> reebsd.org"
>>> > > >>>
>>> > > >>>
>>> > > >>
>>> > > >>
>>> > > >> --
>>> > > >> Harry Newton
>>> > > >>
>>> > > >>
>>> > > >>
>>> > > >
>>> > > >
>>> > > > --
>>> > > > Harry Newton
>>> > > >
>>> > >
>>> > >
>>> > >
>>> > > --
>>> > > Harry Newton
>>> > > _______________________________________________
>>> > > freebsd-current_at_freebsd.org mailing list
>>> > > https://lists.freebsd.org/mailman/listinfo/freebsd-current
>>> > > To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_
>>> > freebsd.org"
>>> >
>>>
>>>
>>>
>>> --
>>> Harry Newton
>>> _______________________________________________
>>> freebsd-current_at_freebsd.org mailing list
>>> https://lists.freebsd.org/mailman/listinfo/freebsd-current
>>> To unsubscribe, send any mail to "
>>> freebsd-current-unsubscribe_at_freebsd.org"
>>>
>>
>
>
> --
> Harry Newton
>
Received on Wed Oct 24 2018 - 15:26:05 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:19 UTC