BE Loader Menu (was Re: rcs)

Teske, Devin Devin.Teske at fisglobal.com
Mon Oct 21 19:04:40 UTC 2013


On Oct 21, 2013, at 6:32 AM, Kris Moore wrote:

> On 10/20/2013 20:58, Julian Elischer wrote:
>> Kris.  exactly what features need to be added to the boot process to
>> allow
>> what you want to do, but without using grub?
>> 
> 
> Here's a list of the features we are using from grub:
> 
> For install medium:
> 
> * Hybrid DVD ISO/USB image in same file

I've been using ISOLINUX for that functionality since 2006.
My DRUID installer is shipped as a hybrid ISO using ISOLINUX.


> * BIOS / UEFI loaders on same image

Haven't played with UEFI yet.


> * Graphics support

ISOLINUX has that. Can we compare screens?

I really like the way ISOLINUX's vesamenu.c32 module allows
you to even go so far as to customize the scrollbar coloring (e.g.,
in the below image, notice how I've given the scrollbar a blue
color so it completes the theme).

http://twitpic.com/17z5yi

Compare that to the same menu, but previously themed in blue:
http://twitpic.com/17xas6

I wonder if grub lets you do that (scrollbar color, hilite color, and
color of header/footer text as well).


> For installed system:
> 
> * Script-able ZFS BE menus

This can be achieved in loader(8) with some basic work, building
upon what we already have. Around this time last year, I actually
added code to allow scripting of the loader(8) menu, but said
functionality is still unused (waiting for some userland tool or some
C code integrated directly into loader(8) to actually start scripting
the menu-system.

Until that happens... it's just my little secret that the Forth menus
are actually scriptable from a higher language. (been trying for
years it seems to find someone whom cares to sit down and show
them how it works -- maybe at vBSDcon).


> * Options for setting default timeouts / default BEs to load, etc

I don't see why this too couldn't be done with loader(8). We already
have a timeout system for booting with defaults... and I gather that
whatever scripting there is to change the loaded defaults would take
place prior to reboot (some tool munges loader.conf and then
reboots; current defaults are displayed and after the configured
timeout, it boots with the displayed configuration).



> * Script-able menu to boot other OS's, such as Windows / Linux

Well, I use SYSLINUX for that. SYSLINUX is the same product as the
aforementioned ISOLINUX, except that it's focused on system versus
install media.

Of course... in your case, grub loads FreeBSD directly. When I use
syslinux as a bootloader, I get the FreeBSD Forth beastie menu after
selecting FreeBSD from the syslinux vesamenu.


> * Loads before kernel

Yeah, I got patches for our menu to follow suit.
http://druidbsd.cvs.sf.net/viewvc/druidbsd/forth_zfs/

(thinking abut committing it already)




> * Graphics support (I.E. countdown indicator, wallpapers, arrow-key
> support, etc)
> 

Well, I don't think the countdown indicator is going to get anyone all
too excited (I believe we've had that for years).

The wallpapers of course... can't do those as a default, but I think there's
a graphical loader project -- but of course that won't service serial boot.

I've thought about using arrow keys to navigate before...

It involves implementing a whole new layer on top of the menu. One that
would use some static character (e.g., ">") to show you which item you
are "over" (or in the case of color... we could *maybe* use ANSI reverse).
Definitely not easy. New state machine would be required. New rendering
code would be required as well. The good news though is that it would get
rid of the number prefixes).



> If the native loader is able to handle the ZFS BE stuff, then I don't
> see a reason why I can't make it an option in the installer, even
> without graphics and the other niceties that grub brings. Is this
> working in the stable/10 branch now?
> 

No... just the patchset I pointed to...

http://druidbsd.cvs.sf.net/viewvc/druidbsd/forth_zfs/

Which produces the following:

http://twitpic.com/dhv2b6

Which achieves:

a. Don't load kernel before menu
b. Scripting of selections can be done via $kernels in loader.conf

What we are lacking at the moment is...

Root Device selection menu.
-- 
Devin

_____________
The information contained in this message is proprietary and/or confidential. If you are not the intended recipient, please: (i) delete the message and all copies; (ii) do not disclose, distribute or use the message in any manner; and (iii) notify the sender immediately. In addition, please be aware that any message addressed to our domain is subject to archiving and review by persons other than the intended recipient. Thank you.


More information about the freebsd-current mailing list