conf/137671: [patch][request] enhance beastie.4th: possibility to display message, possibility to coose serial console

Michael Leun michael.leun at arcor.net
Tue Aug 11 14:10:03 UTC 2009


>Number:         137671
>Category:       conf
>Synopsis:       [patch][request] enhance beastie.4th: possibility to display message, possibility to coose serial console
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Aug 11 14:10:02 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Michael Leun
>Release:        7.2
>Organization:
Vodafone AG & Co. KG
>Environment:
FreeBSD build72-64.tnd.arcor.net 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May  1 07:18:07 UTC 2009     root at driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:
I created an custom install disk which installs without any interaction. You do NOT want to boot this by error on a wrong machine.
So I wanted to
- turn off the 10 secs countdown to autoboot (easily done with autoboot_delay=NO)
- display a big fat warning message stating that this disk may shoot into your foot

Additionaly I wanted a simple possibility to boot with console=comconsole.

So I added:

- you may specify  beastie_message="something" e.g. in loader.conf
If this environment variable is defined, the text "Welcome to FreeBSD!" is displayed 2 lines up then the usual place leading to 2 lines room for an message.

The text in the environment variable is displayed between the greeting and the menue.

e.g. beastie_message="ESC[1;7mATTENTION! This CD will format disks andESC[7;4Hinstall without further interaction!ESC[1;0m" 

- you may specify beastie_offerserial=YES
If you do so, you get an additional menue entry which sets console=comconsole and boots.
>How-To-Repeat:
not applicable
>Fix:
patch attached

Patch attached with submission follows:

--- sys/boot/forth/beastie.4th.orig	2009-08-11 15:49:15.000000000 +0200
+++ sys/boot/forth/beastie.4th	2009-08-11 15:49:18.000000000 +0200
@@ -45,6 +45,7 @@
 variable bootsinglekey
 variable escapekey
 variable rebootkey
+variable bootserialkey
 
 46 constant dot
 
@@ -178,7 +179,16 @@
 	clear
 	46 4 print-logo
 	42 20 2 2 box
-	13 6 at-xy ." Welcome to FreeBSD!"
+	s" beastie_message" getenv
+	dup -1 = if
+		drop
+		13 6 at-xy ." Welcome to FreeBSD!"
+	else
+		13 4 at-xy ." Welcome to FreeBSD!"
+		4 6 at-xy ." "
+        	s" beastie_message" getenv 
+        	type
+	then
 	printmenuitem ."  Boot FreeBSD [default]" bootkey !
 	s" arch-i386" environment? if
 		drop
@@ -194,6 +204,14 @@
 	printmenuitem ."  Boot FreeBSD in Safe Mode" bootsafekey !
 	printmenuitem ."  Boot FreeBSD in single user mode" bootsinglekey !
 	printmenuitem ."  Boot FreeBSD with verbose logging" bootverbosekey !
+	s" beastie_offerserial" getenv
+	dup -1 <> if
+		s" YES" compare-insensitive 0= if
+			printmenuitem ."  Boot FreeBSD with serial console" bootserialkey !
+		then
+	else
+		drop
+	then
 	printmenuitem ."  Escape to loader prompt" escapekey !
 	printmenuitem ."  Reboot" rebootkey !
 	menuX @ 20 at-xy
@@ -288,7 +306,13 @@
 			s" NO" s" autoboot_delay" setenv
 			exit
 		then
-		rebootkey @ = if 0 reboot then
+		dup rebootkey @ = if
+			0 reboot
+		then
+		bootserialkey @ = if
+			s" comconsole" s" console" setenv
+			0 boot
+		then
 	again
 ;
 


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list