Re: LUA loader: bhyve now doesn't?

From: Larry Rosenman <ler_at_lerctr.org>
Date: Sun, 19 Aug 2018 12:04:28 -0500
On Sun, Aug 19, 2018 at 05:58:43PM +0100, John Baldwin wrote:
> On 8/19/18 5:28 PM, Kyle Evans wrote:
> > On Sun, Aug 19, 2018 at 10:42 AM, Warner Losh <imp_at_bsdimp.com> wrote:
> >> On Sun, Aug 19, 2018 at 9:35 AM, Larry Rosenman <ler_at_freebsd.org> wrote:
> >>
> >>> On Sun, Aug 19, 2018 at 09:33:18AM -0600, Warner Losh wrote:
> >>>> On Sun, Aug 19, 2018 at 9:22 AM, Larry Rosenman <ler_at_freebsd.org> wrote:
> >>>>
> >>>>> With today's change to LUA as the loader, I seem to have an issue with
> >>>>> bhyhve:
> >>>>>
> >>>>> Consoles: userboot
> >>>>>
> >>>>> FreeBSD/amd64 User boot, Revision 1.1
> >>>>> (Thu Nov 16 15:04:02 CST 2017 root_at_borg.lerctr.org)
> >>>>> Startup error in /boot/lua/loader.lua:
> >>>>> LUA ERROR: cannot open /boot/lua/loader.lua: no such file or directory.
> >>>>>
> >>>>> /boot/kernel/kernel text=0x1063d88 data=0x12e930+0x283970
> >>>>> syms=[0x8+0x14cf28+0x8+0x163e57]
> >>>>> Hit [Enter] to boot immediately, or any other key for command prompt.
> >>>>> Booting [/boot/kernel/kernel]...
> >>>>>
> >>>>> These VM's have been running for MONTHS.
> >>>>>
> >>>>> Ideas?
> >>>>>
> >>>>
> >>>> There's no boot/lua/loader.lua.
> >>>>
> >>>> You can either fix that, or you can recompile with
> >>>> LOADER_DEFAULT_INTERP=4th for the moment.
> >>> actually on the host there is:
> >>> borg.lerctr.org /home/ler $ ls -l /boot/lua/
> >>> total 131
> >>> -r--r--r--  1 root  wheel   3895 Aug 19 09:46 cli.lua
> >>> -r--r--r--  1 root  wheel   3204 Aug 19 09:46 color.lua
> >>> -r--r--r--  1 root  wheel  14024 Aug 19 09:46 config.lua
> >>> -r--r--r--  1 root  wheel  10302 Aug 19 09:46 core.lua
> >>> -r--r--r--  1 root  wheel   9986 Aug 19 09:46 drawer.lua
> >>> -r--r--r--  1 root  wheel   3324 Aug 19 09:46 hook.lua
> >>> -r--r--r--  1 root  wheel   2543 Aug 19 09:46 loader.lua
> >>> -r--r--r--  1 root  wheel   2431 Aug 19 09:46 logo-beastie.lua
> >>> -r--r--r--  1 root  wheel   2203 Aug 19 09:46 logo-beastiebw.lua
> >>> -r--r--r--  1 root  wheel   1958 Aug 19 09:46 logo-fbsdbw.lua
> >>> -r--r--r--  1 root  wheel   2399 Aug 19 09:46 logo-orb.lua
> >>> -r--r--r--  1 root  wheel   2119 Aug 19 09:46 logo-orbbw.lua
> >>> -r--r--r--  1 root  wheel  12010 Aug 19 09:46 menu.lua
> >>> -r--r--r--  1 root  wheel   3941 Aug 19 09:46 password.lua
> >>> -r--r--r--  1 root  wheel   2381 Aug 19 09:46 screen.lua
> >>> borg.lerctr.org /home/ler $
> >>>
> >>> This is when booting the vm, and it's not on the vm's disk.
> >>>
> >>> So the bhyveload behavior *CHANGED*.
> >>>
> >>> POLA?
> >>>
> >>
> >> Unlikely, but a couple of questions. Have you always used the LUA loader,
> >> or is this a change with the recent default switch?
> >>
> >> And to be clear, you expect the host's file to be used for this, not the VM
> >> filesystem?
> >>
> > 
> > (CC'ing jhb_at_ and tychon_at_, who might have better insight)
> > 
> > If we can swing it, I think the best model here should have always
> > been that userboot uses the host's scripts but the guest's
> > loader.conf. The current model doesn't tolerate any mismatch between
> > host and guest and looks unsustainable.
> 
> Err, normally guests read things out of the a guest disk image (think most
> VMs like VirtualBox, etc.).  userboot.so is looking in the guest's disk image.
> Now, userboot isn't memory limited like the BIOS boot, so if it's
> possible to have userboot just include both lua and forth perhaps with
> some auto-detection based on what is in /boot/loader.rc to determine
> which interpreter to use, that is really the best path forward.

That won't help (looking at /boot/loader.rc) as my lua updated system
still has:

borg.lerctr.org /home/ler $ more /boot/loader.rc
\ Loader.rc
\ $FreeBSD: head/stand/i386/loader/loader.rc 331326 2018-03-21 22:01:51Z kevans $
\
\ Includes additional commands
include /boot/loader.4th
include /boot/efi.4th
try-include /boot/loader.rc.local

\ Reads and processes loader.conf variables
initialize

maybe-efi-resizecons

\ Tests for password -- executes autoboot first if a password was defined
check-password

\ Load in the boot menu
include /boot/beastie.4th

\ Start the boot menu
beastie-start
borg.lerctr.org /home/ler $<Paste>

so it still looks forth'ish, but it's using lua.


> 
> -- 
> John Baldwin
> _______________________________________________
> 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"

-- 
Larry Rosenman                     http://www.lerctr.org/~ler
Phone: +1 214-642-9640                 E-Mail: ler_at_lerctr.org
US Mail: 5708 Sabbia Drive, Round Rock, TX 78665-2106

Received on Sun Aug 19 2018 - 15:04:30 UTC

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