Message ID | alpine.DEB.2.02.1411061034440.22875@kaball.uk.xensource.com |
---|---|
State | New |
Headers | show |
Stefano Stabellini, le Thu 06 Nov 2014 10:41:28 +0000, a écrit : > When using pvgrub in graphical mode with vnc, the grub timeout doesn't > work: the countdown doesn't even start. With a serial terminal the > problem doesn't occur and the countdown works as expected. > > It turns out that the problem is that when using a graphical terminal, > checkkey () returns 0 instead of -1 when there is no activity on the > mouse or keyboard. As a consequence grub thinks that the user typed > something and interrupts the count down. > > To fix the issue simply ignore keystrokes returning 0, that is the NUL > character anyway. Add a patch to grub.patches to do that. > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> > Tested-by: Steven Haigh <netwiz@crc.id.au> Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org> > > diff --git a/stubdom/grub.patches/11graphics-keyboard.diff b/stubdom/grub.patches/11graphics-keyboard.diff > new file mode 100644 > index 0000000..fe17b20 > --- /dev/null > +++ b/stubdom/grub.patches/11graphics-keyboard.diff > @@ -0,0 +1,13 @@ > +diff --git a/stage2/stage2.c b/stage2/stage2.c > +index 9d9fcc3..8353a3b 100644 > +--- a/stage2/stage2.c > ++++ b/stage2/stage2.c > +@@ -395,7 +395,7 @@ restart: > + pressed. > + This avoids polling (relevant in the grub-shell and later on > + in grub if interrupt driven I/O is done). */ > +- if (checkkey () >= 0 || grub_timeout < 0) > ++ if (checkkey () > 0 || grub_timeout < 0) > + { > + /* Key was pressed, show which entry is selected before GETKEY, > + since we're comming in here also on GRUB_TIMEOUT == -1 and >
On Thu, 6 Nov 2014, Samuel Thibault wrote: > Stefano Stabellini, le Thu 06 Nov 2014 10:41:28 +0000, a écrit : > > When using pvgrub in graphical mode with vnc, the grub timeout doesn't > > work: the countdown doesn't even start. With a serial terminal the > > problem doesn't occur and the countdown works as expected. > > > > It turns out that the problem is that when using a graphical terminal, > > checkkey () returns 0 instead of -1 when there is no activity on the > > mouse or keyboard. As a consequence grub thinks that the user typed > > something and interrupts the count down. > > > > To fix the issue simply ignore keystrokes returning 0, that is the NUL > > character anyway. Add a patch to grub.patches to do that. > > > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> > > Tested-by: Steven Haigh <netwiz@crc.id.au> > > Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org> This being a bug fix, I guess it doesn't actually need a release exception to go in? > > diff --git a/stubdom/grub.patches/11graphics-keyboard.diff b/stubdom/grub.patches/11graphics-keyboard.diff > > new file mode 100644 > > index 0000000..fe17b20 > > --- /dev/null > > +++ b/stubdom/grub.patches/11graphics-keyboard.diff > > @@ -0,0 +1,13 @@ > > +diff --git a/stage2/stage2.c b/stage2/stage2.c > > +index 9d9fcc3..8353a3b 100644 > > +--- a/stage2/stage2.c > > ++++ b/stage2/stage2.c > > +@@ -395,7 +395,7 @@ restart: > > + pressed. > > + This avoids polling (relevant in the grub-shell and later on > > + in grub if interrupt driven I/O is done). */ > > +- if (checkkey () >= 0 || grub_timeout < 0) > > ++ if (checkkey () > 0 || grub_timeout < 0) > > + { > > + /* Key was pressed, show which entry is selected before GETKEY, > > + since we're comming in here also on GRUB_TIMEOUT == -1 and > > > > -- > Samuel > "And the next time you consider complaining that running Lucid Emacs > 19.05 via NFS from a remote Linux machine in Paraguay doesn't seem to > get the background colors right, you'll know who to thank." > (By Matt Welsh) >
On Thu, Nov 06, 2014 at 03:43:42PM +0000, Stefano Stabellini wrote: > On Thu, 6 Nov 2014, Samuel Thibault wrote: > > Stefano Stabellini, le Thu 06 Nov 2014 10:41:28 +0000, a écrit : > > > When using pvgrub in graphical mode with vnc, the grub timeout doesn't > > > work: the countdown doesn't even start. With a serial terminal the > > > problem doesn't occur and the countdown works as expected. > > > > > > It turns out that the problem is that when using a graphical terminal, > > > checkkey () returns 0 instead of -1 when there is no activity on the > > > mouse or keyboard. As a consequence grub thinks that the user typed > > > something and interrupts the count down. > > > > > > To fix the issue simply ignore keystrokes returning 0, that is the NUL > > > character anyway. Add a patch to grub.patches to do that. > > > > > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> > > > Tested-by: Steven Haigh <netwiz@crc.id.au> > > > > Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org> > > This being a bug fix, I guess it doesn't actually need a release > exception to go in? It should - but it depends on the on how risk averse the maintainer of the particular subsystem is. Regardless I believe this should go in. But more importantly - can this also go upstream? > > > > > diff --git a/stubdom/grub.patches/11graphics-keyboard.diff b/stubdom/grub.patches/11graphics-keyboard.diff > > > new file mode 100644 > > > index 0000000..fe17b20 > > > --- /dev/null > > > +++ b/stubdom/grub.patches/11graphics-keyboard.diff > > > @@ -0,0 +1,13 @@ > > > +diff --git a/stage2/stage2.c b/stage2/stage2.c > > > +index 9d9fcc3..8353a3b 100644 > > > +--- a/stage2/stage2.c > > > ++++ b/stage2/stage2.c > > > +@@ -395,7 +395,7 @@ restart: > > > + pressed. > > > + This avoids polling (relevant in the grub-shell and later on > > > + in grub if interrupt driven I/O is done). */ > > > +- if (checkkey () >= 0 || grub_timeout < 0) > > > ++ if (checkkey () > 0 || grub_timeout < 0) > > > + { > > > + /* Key was pressed, show which entry is selected before GETKEY, > > > + since we're comming in here also on GRUB_TIMEOUT == -1 and > > > > > > > -- > > Samuel > > "And the next time you consider complaining that running Lucid Emacs > > 19.05 via NFS from a remote Linux machine in Paraguay doesn't seem to > > get the background colors right, you'll know who to thank." > > (By Matt Welsh) > >
Konrad Rzeszutek Wilk, le Thu 06 Nov 2014 14:36:11 -0500, a écrit : > Regardless I believe this should go in. But more importantly - can > this also go upstream? There is no upstream for grub1 any more. Samuel
On Thu, 2014-11-06 at 12:39 +0100, Samuel Thibault wrote: > Stefano Stabellini, le Thu 06 Nov 2014 10:41:28 +0000, a écrit : > > When using pvgrub in graphical mode with vnc, the grub timeout doesn't > > work: the countdown doesn't even start. With a serial terminal the > > problem doesn't occur and the countdown works as expected. > > > > It turns out that the problem is that when using a graphical terminal, > > checkkey () returns 0 instead of -1 when there is no activity on the > > mouse or keyboard. As a consequence grub thinks that the user typed > > something and interrupts the count down. > > > > To fix the issue simply ignore keystrokes returning 0, that is the NUL > > character anyway. Add a patch to grub.patches to do that. > > > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> > > Tested-by: Steven Haigh <netwiz@crc.id.au> > > Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org> I think the conclusion of the subthread was a release ack so applied, thanks.
On Thu, 2014-11-06 at 12:39 +0100, Samuel Thibault wrote: > Stefano Stabellini, le Thu 06 Nov 2014 10:41:28 +0000, a écrit : > > When using pvgrub in graphical mode with vnc, the grub timeout doesn't > > work: the countdown doesn't even start. With a serial terminal the > > problem doesn't occur and the countdown works as expected. > > > > It turns out that the problem is that when using a graphical terminal, > > checkkey () returns 0 instead of -1 when there is no activity on the > > mouse or keyboard. As a consequence grub thinks that the user typed > > something and interrupts the count down. > > > > To fix the issue simply ignore keystrokes returning 0, that is the NUL > > character anyway. Add a patch to grub.patches to do that. > > > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> > > Tested-by: Steven Haigh <netwiz@crc.id.au> > > Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org> I think the conclusion of the subthread was a release ack so applied, thanks.
diff --git a/stubdom/grub.patches/11graphics-keyboard.diff b/stubdom/grub.patches/11graphics-keyboard.diff new file mode 100644 index 0000000..fe17b20 --- /dev/null +++ b/stubdom/grub.patches/11graphics-keyboard.diff @@ -0,0 +1,13 @@ +diff --git a/stage2/stage2.c b/stage2/stage2.c +index 9d9fcc3..8353a3b 100644 +--- a/stage2/stage2.c ++++ b/stage2/stage2.c +@@ -395,7 +395,7 @@ restart: + pressed. + This avoids polling (relevant in the grub-shell and later on + in grub if interrupt driven I/O is done). */ +- if (checkkey () >= 0 || grub_timeout < 0) ++ if (checkkey () > 0 || grub_timeout < 0) + { + /* Key was pressed, show which entry is selected before GETKEY, + since we're comming in here also on GRUB_TIMEOUT == -1 and