Re: UEFI boot hangs after loader

From: Warner Losh <imp_at_bsdimp.com>
Date: Wed, 24 Oct 2018 12:35:09 -0600
On Wed, Oct 24, 2018 at 11:47 AM Jung-uk Kim <jkim_at_freebsd.org> wrote:

> On 18. 10. 24., Warner Losh wrote:
> > 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.
>
> It looks familiar.
>
> http://docs.freebsd.org/cgi/mid.cgi?eadf5d63-a65a-338e-a3e0-f91b410052fa
>
> Jung-uk Kim
>

His loader variable works for me (sigh). Your loader variable doesn't. I
totally forgot you'd sent that as well. Thanks for the pointer. It's quite
helpful.

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
>
>
Received on Wed Oct 24 2018 - 16:35:22 UTC

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