All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrey Borzenkov <arvidjaar@gmail.com>
To: The development of GNU GRUB <grub-devel@gnu.org>
Cc: eyak@wp.pl
Subject: Re: ctrl-x / ctrl-c may not work under GRUB2 with EFI
Date: Tue, 6 Aug 2013 20:32:26 +0400	[thread overview]
Message-ID: <20130806203226.4105e402@opensuse.site> (raw)
In-Reply-To: <5200B552.4020705@wp.pl>

В Tue, 06 Aug 2013 10:35:30 +0200
Pawel Wojtalczyk <eyak@wp.pl> пишет:

> Hello,
> 
> I run GRUB2 as 64-bit EFI application and I use gfxterm and serial as 
> output.
> 
> I would like to edit commands before boot by type 'e' command. Then I 
> would like to boot by press ctrl-x, but unfortunately the boot does not 
> appears.
> 

Does F10 work?

> The reason is that in AMI and Phoenix BIOSes when ctrl key is pressed 
> then EFI_SIMPLE_TEXT_INPUT_PROTOCOL protocol returns VT100 style 
> encoding of pressed unicode character ( 
> http://www.vt100.net/docs/vt100-ug/table3-5.html).
> 
> I tried to use EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL to get the pressed key 
> modifier (ctrl, alt, etc), but in case when serial console redirection 
> enabled in Phoenix BIOS, none characters are received via serial with 
> EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL(with AMI BIOS characters are received 
> in VT100 encoding style).
> 
> So maybe we can do another way. Maybe we can explicitly set key modifier 
> (as in grub_terminfo_getkey() with 
> http://wiki.phoenix.com/wiki/index.php/Unicode_Control_Characters 
> restrictions) as following:
> 
> --- grub.orig/grub-core/term/efi/console.c      2013-07-31 
> 07:50:52.000000000 +0200
> +++ grub/grub-core/term/efi/console.c   2013-08-06 10:28:26.117499386 +0200
> @@ -125,7 +125,12 @@
>       return GRUB_TERM_NO_KEY;
> 
>     if (key.scan_code == 0)
> -    return key.unicode_char;
> +#if defined (__i386__) || defined (__x86_64__)
> +    if (key.unicode_char < 0x20 && key.unicode_char != 0 && 
> key.unicode_char != '\t' && key.unicode_char != '\b' && key.unicode_char 
> != '\n' && key.unicode_char != '\r')
> +      return GRUB_TERM_CTRL | (key.unicode_char - 1 + 'a');
> +    else
> +#endif /* defined (__i386__) || defined (__x86_64__) */
> +      return key.unicode_char;
>     else if (key.scan_code < ARRAY_SIZE (efi_codes))
>       return efi_codes[key.scan_code];
> 
> In some remote systems EFI serial redirection must be enabled and thus 
> we cannot use serial (as termianl_input) module in GRUB2 and in such 
> case it would be good to allow add support for ctrl-x/ctrl-c under GRUB2 
> via serial console redirection enabled in EFI and attached USB keyboard.
> 
> Regrads
> Pawel Wojtalczyk



  reply	other threads:[~2013-08-06 16:32 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-06  8:35 ctrl-x / ctrl-c may not work under GRUB2 with EFI Pawel Wojtalczyk
2013-08-06 16:32 ` Andrey Borzenkov [this message]
2013-08-07  3:17   ` Pawel Wojtalczyk
2013-08-12 10:02 ` Vladimir 'φ-coder/phcoder' Serbinenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130806203226.4105e402@opensuse.site \
    --to=arvidjaar@gmail.com \
    --cc=eyak@wp.pl \
    --cc=grub-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.