Bug#617538: update-grub (mk-grubconfig) does not support old "xenkopt"

Colin Watson cjwatson at ubuntu.com
Wed Mar 9 17:48:40 UTC 2011


On Wed, Mar 09, 2011 at 04:51:05PM +0000, Ian Jackson wrote:
> The grub 2 config generator does not appear to support an equivalent
> to the "xenkopt" option from old (grub 1) update-grub.
> 
> This is used to provide kernel command line arguments that apply only
> when booting the kernel under Xen.  For example, a pvops kernel which
> can boot dom0 vs. baremetal, and where a serial console is in use,
> would normally want
>    kopt="console=ttyS0,115200,8n1"
>    xenkopt="console=hvc0"
> since when booting under Xen the kernel needs to use the Xen console
> rather than direct access to the serial port.
> 
> I suggest adding two variables
>   GRUB_CMDLINE_LINUX_XEN
>   GRUB_CMDLINE_LINUX_XEN_DEFAULT
> which when specified /override/ the values of
>   GRUB_CMDLINE_LINUX
>   GRUB_CMDLINE_LINUX_DEFAULT

Seems reasonable, although I think the naming is confusing; it's not
necessarily obvious that GRUB_CMDLINE_LINUX_XEN overrides
GRUB_CMDLINE_LINUX while GRUB_CMDLINE_XEN appends to it.  How about
GRUB_CMDLINE_LINUX_XEN_REPLACE and
GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT?  They're a bit long, but ...

(CCing patch to grub-devel.)

2011-03-09  Colin Watson  <cjwatson at ubuntu.com>

	* util/grub.d/20_linux_xen.in: Honour GRUB_CMDLINE_LINUX_XEN_REPLACE
	and GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT, which replace
	GRUB_CMDLINE_LINUX and GRUB_CMDLINE_LINUX_DEFAULT (complementing the
	existing options which append).
	* docs/grub.texi (Simple configuration): Document new options.

=== modified file 'docs/grub.texi'
--- docs/grub.texi	2011-03-09 17:35:16 +0000
+++ docs/grub.texi	2011-03-09 17:46:20 +0000
@@ -1114,8 +1114,14 @@ NetBSD.
 
 @item GRUB_CMDLINE_XEN
 @itemx GRUB_CMDLINE_XEN_DEFAULT
-As @samp{GRUB_CMDLINE_LINUX} and @samp{GRUB_CMDLINE_LINUX_DEFAULT}, but for
-Linux and Xen.
+The values of these options are appended to the values of
+ at samp{GRUB_CMDLINE_LINUX} and @samp{GRUB_CMDLINE_LINUX_DEFAULT} for Linux
+and Xen menu entries.
+
+ at item GRUB_CMDLINE_LINUX_XEN_REPLACE
+ at item GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT
+The values of these options replace the values of @samp{GRUB_CMDLINE_LINUX}
+and @samp{GRUB_CMDLINE_LINUX_DEFAULT} for Linux and Xen menu entries.
 
 @item GRUB_DISABLE_LINUX_UUID
 Normally, @command{grub-mkconfig} will generate menu entries that use

=== modified file 'util/grub.d/20_linux_xen.in'
--- util/grub.d/20_linux_xen.in	2011-02-11 13:00:54 +0000
+++ util/grub.d/20_linux_xen.in	2011-03-09 17:44:27 +0000
@@ -51,6 +51,14 @@ else
   LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID}
 fi
 
+# Allow overriding GRUB_CMDLINE_LINUX and GRUB_CMDLINE_LINUX_DEFAULT.
+if [ "${GRUB_CMDLINE_LINUX_XEN_REPLACE}" ]; then
+  GRUB_CMDLINE_LINUX="${GRUB_CMDLINE_LINUX_XEN_REPLACE}"
+fi
+if [ "${GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT}" ]; then
+  GRUB_CMDLINE_LINUX_DEFAULT="${GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT}"
+fi
+
 linux_entry ()
 {
   os="$1"

-- 
Colin Watson                                       [cjwatson at ubuntu.com]





More information about the Pkg-grub-devel mailing list