[UPDATE] New Boot-Loader Menu -- version 1.1

Devin Teske dteske at vicor.com
Mon May 2 20:23:01 UTC 2011


NOTE: Apologies if this comes through multiple times. I'm having problems getting this e-mail to appear on the list.

Hi again, fellow hackers,

First, I'd like to thank all of you for the input and suggestions that you provided.

Things are moving fast and nimble here. With over 1,000 lines of code changed (in one single 24-hour period), I'd like to announce an update to my advanced boot-loader menu. This version (1.1) attempts to address all community requests.

You can grab the updated code here:
http://druidbsd.sourceforge.net/
	or
http://druidbsd.sourceforge.net/download/loader_menu-1.1.tgz

==============================

Below is an itemized list of things addressed in this latest release (complete with attribution to the person(s) whom made the request):

Mike Meyer: Individual menuitem hotkeys have been implemented. (ENTER = boot, a = ACPI, v = verbose, s = single-user, m = safe-mode, esc = escape to loader prompt).

Paul Schenkeveld, Damien Fleuriot, Zhihao Yuan, and Warner Losh: Both numbers and hotkeys are supported.

Freddie Cash: Customize beastie logo with loader.conf(5) variables (see below -- also documented in package description).

Alexander Leidinger: When loader_color is enabled (see loader.conf(5) variables below -- also documented in package description), the hotkeys/mnemonics are bolded (sorry, underline is currently not implemented correctly in loader(8)). When loader_color is disabled (the default), the hotkeys/mnemonics appear in [square-brackets] (e.g. [ENTER], [A], [V], [M], [S], and [Esc]). Also, when loader_color is enabled, the numerical prefixes are also made bold (when loader_color is disabled, the numerical prefixes are displayed normally -- without square-brackets).

Olivier SMEDTS: All loader.conf(5) variables that are supported by the current loader are now supported, including `loader_logo' and many many more (see loader.conf(5) variables below -- also documented in package description).

Warren Block and Doug Barton: With respect to ANSI underline being a more standard UI choice for hotkey/mnemonics... sorry, ANSI underline is currently not implemented correctly in loader(8) as of RELENG_8 that I've tried. Going with ANSI bold when loader_color is enabled and square-brackets by default.

Artem Belevich: The default layout should meet all VT100 requirements (that is to explain, that "out of the box" with no additional customizations in loader.conf(5), the menu should meet VT100 standards).

Dieter BSD: In the "out of box" configuration (assuming the user doesn't have any existing customizations in loader.conf(5)), all of your previously-mentioned decrees have been met (no graphics, no color, no assumptions, etc. etc.). The only requirements are that you have an 80x24 screen and a basic keyboard with either letters 1-7 or A-Z+ENTER (or both).

Jason Hellenthal (aka jhell): The ability to display the loader version at the bottom-right edge of the screen (right-justified) is enabled. However, currently the loader does not export the "loader_version" environment variable, and thus nothing will be displayed until then. Though, to test this feature, you can simply add a line to loader.conf(5) (see the loader.conf(5) variables below -- also documented in the package description).

All: The initial delay introduced before loading the menu can be disabled/customized (see loader.conf(5) variables below -- also documented in package description).

Mehmet Erol Sanliturk: You can customize the default 10-second menu timeout by adding `loader_menu_timeout' to loader.conf(5) (see the loader.conf(5) variables below -- also documented in the package description). You had stated a desire to increase the timeout to 255. Minor note: due to limited screen real-estate, the countdown timer will continue to display "9 seconds" until the internal timer gets to a number that is below 9 (however, this should still meet your needs of dramatically increasing the timeout delay).

==============================

Here's the package description (+DESC: attainable via either `tar zxfO loader_menu-X.Y.tgz +DESC | less' or `pkg_info -dx loader_menu | less'):

loader_menu is a modern boot loader for the FreeBSD Operating System.

The following options can be added to loader.conf(5) to customize the behavior
and/or appearance of the boot menu/process:

loader_color="YES"

	Enables the use of color in the boot menu. Not all devices support the
	display of ANSI color codes, and so the default is to not use them.

loader_logo="..."

	Selects which FreeBSD logo to display. Valid values are "beastie",
	"beastiebw", "fbsdbw", "orb", or "orbbw". An invalid value (such as
	"none") will disable the display of any logo. The logo is displayed to
	the right of the dynamic menu.

loader_logo_x="N"
loader_logo_y="N"

	Column (x) and row (y) placement of FreeBSD" mascot placed to the right
	of the dynamic menu. Defaults are 46 (x) and 4 (y).

loader_brand="..."

	Selects the BSD brand to display. Valid values are "fbsd" (displays
	"FreeBSD") and "dbsd" (displays "DruidBSD"). An invalid value (such as
	"none") will disable the display of any brand. The brand is displayed
	above the dynamic menu. The default is "fbsd".

loader_brand_x="N"
loader_brand_y="N"

	Column (x) and row (y) placement of the brand text ("FreeBSD") placed
	above the dynamic menu. Defaults are 2 (x) and 1 (y).

loader_menu_timeout="N"

	Timeout in seconds (N) until the menu aborts, causing the system to
	autoboot with the displayed options. Default is 10 seconds. Pressing
	any key during the duration will cancel the timeout.

	You can use values as high as you like, however due to limited screen
	real-estate (at a mere 24 rows x 80 columns for compatibility reasons)
	the counter will simply display "9 seconds" while counting down
	internally. Once the final countdown is upon you, the numbers will
	finally start to move. A future version could overcome this limitation.

loader_menu_timeout_x="N"
loader_menu_timeout_y="N"

	Column (x) and row (y) placement of the menu timeout count-down text.
	Defaults are 4 (x) and 23 (y).

loader_password="..."

	Sets a password (up to 16 characters long) that is required to be
	entered before the system is allowed to boot. Default is to not ask
	for a password if unset or NULL.

loader_version="..."

	Overrides the display of the loader's built-in version. Displays the
	text at the bottom-right edge of the screen (underneath beastie). The
	version text is right-justified when displayed.

	The current default is to not display any text. However, as-of
	RELENG_9, there may be plans to modify loader(8) to export this
	variable for display during the boot process, displaying the version
	of boot-loader for trouble-shooting purposes.

loader_version_x="N"
loader_version_y="N"

	Column (x) and row (y) placement of the loader's built-in version at
	the bottom-right edge of the screen. Defaults are 80 (x) and 24 (y).
	The version text is right-justified with the text ending at (x,y).

dc_seconds="N"

	By default, loader_menu introduces a 2-second delay before launching
	the menu for improved debugging abilities. This option customizes the
	duration (setting it to zero disables the delay). However, it is worth
	noting that pressing ENTER anytime during the delay will preempt the
	duration, launching the menu immediately upon keypress.



WWW: http://druidbsd.sourceforge.net/

==============================

Once again, you can grab the updated code here:
http://druidbsd.sourceforge.net/
	or
http://druidbsd.sourceforge.net/download/loader_menu-1.1.tgz

-- 
Cheers,
Devin Teske


-> LEGAL DISCLAIMER <-
This message  contains confidential  and proprietary  information
of the sender,  and is intended only for the person(s) to whom it
is addressed. Any use, distribution, copying or disclosure by any
other person  is strictly prohibited.  If you have  received this
message in error,  please notify  the e-mail sender  immediately,
and delete the original message without making a copy.

-> FUN STUFF <-
-----BEGIN GEEK CODE BLOCK-----
Version 3.12
GAT/CS/B/CC/E/IT/MC/M/MU/P/S/TW d+(++) s: a- C+++@$ UB++++$ P++++@$ L++++$ E-
W+++ N? o? K? w@ O M++$ V- PS+>++ PE@ Y+ PGP-> t(+) 5? X(+) R(-) tv+ b+>++ DI+
D+(++) G++ e>++++ h r+++ z+++
------END GEEK CODE BLOCK------
http://www.geekcode.com/

-> END TRANSMISSION <-

_____________

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-hackers mailing list