From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1V6uG4-0003kC-Mc for mharc-grub-devel@gnu.org; Tue, 06 Aug 2013 23:17:56 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37328) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V6uFv-0003j4-Vu for grub-devel@gnu.org; Tue, 06 Aug 2013 23:17:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V6uFn-0007EX-V3 for grub-devel@gnu.org; Tue, 06 Aug 2013 23:17:47 -0400 Received: from mx4.wp.pl ([212.77.101.8]:24867) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V6uFn-0007EK-FI for grub-devel@gnu.org; Tue, 06 Aug 2013 23:17:39 -0400 Received: (wp-smtpd smtp.wp.pl 3840 invoked from network); 7 Aug 2013 05:17:36 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wp.pl; s=1024a; t=1375845456; bh=uzmqQMO+ic12HI0KcsYKoRrFmSgW5QXGSA5tpWyjVXo=; h=From:To:Subject; b=itNSDQMR6X0A5SiVAnaXiIVBPiz/ZEgMsknANB41s2QfpZMivnCADtPr9y57eVbYp tkHn3rHMHvRLdkKLSTMH1ZEyCU9oqOURRtcyecESuDHt8PoPiOCxoEzUBaYFHY2tzp NDqAaIRe0UkRpwpkp0WLAb7lnEC0aQSNbhrhX1fk= Received: from mail.kontron.pl (eyak@[217.153.153.212]) (envelope-sender ) by smtp.wp.pl (WP-SMTPD) with SMTP for ; 7 Aug 2013 05:17:36 +0200 Message-ID: <5201BC50.90403@wp.pl> Date: Wed, 07 Aug 2013 05:17:36 +0200 From: Pawel Wojtalczyk MIME-Version: 1.0 To: grub-devel@gnu.org Subject: Re: ctrl-x / ctrl-c may not work under GRUB2 with EFI References: <5200B552.4020705@wp.pl> <20130806203226.4105e402@opensuse.site> In-Reply-To: <20130806203226.4105e402@opensuse.site> Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit X-WP-AV: skaner antywirusowy poczty Wirtualnej Polski S. A. X-WP-SPAM: NO 0000000 [YbNU] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 212.77.101.8 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Aug 2013 03:17:55 -0000 Hello, F10 works only for USB keyboard directly attached to the target, but not on the redirected console (enabled in EFI) to the serial which I am using for remote access the board. Regards Pawel On 06.08.2013 18:32, Andrey Borzenkov wrote: > В Tue, 06 Aug 2013 10:35:30 +0200 > Pawel Wojtalczyk пишет: > >> 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 > > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > https://lists.gnu.org/mailman/listinfo/grub-devel