On Tue, Jun 2, 2015 at 11:47 AM, Nikunj A Dadhania <nik...@linux.vnet.ibm.com> wrote: > Dinar valeev <k...@opensuse.org> writes: > >> From: Dinar Valeev <dval...@suse.com> >> >> Original issue is home and end keys are not functional in grub2. >> Later I've found other inconsistencies in f1-f12 keys. >> >> "Correct sequence" was crabbed by pressing key on cat running in >> xterm. >> >> Tested with Home, End, F2, Del and F10 keys in grub2 >> >> Signed-off-by: Dinar Valeev <dval...@suse.com> >> --- >> lib/libusb/usb-hid.c | 40 +++++++++++++++++----------------------- >> 1 file changed, 17 insertions(+), 23 deletions(-) >> >> diff --git a/lib/libusb/usb-hid.c b/lib/libusb/usb-hid.c >> index f0cab8a..ccd5ba9 100644 >> --- a/lib/libusb/usb-hid.c >> +++ b/lib/libusb/usb-hid.c >> @@ -190,33 +190,29 @@ static void check_key_code(uint8_t *buf) >> case 0x3a: /* F1 >> */ >> write_key(0x1b); >> write_key(0x5b); >> - write_key(0x31); >> - write_key(0x31); >> - write_key(0x7e); >> + write_key(0x4f); >> + write_key(0x50); >> break; >> >> case 0x3b: /* F2 >> */ >> write_key(0x1b); >> write_key(0x5b); >> - write_key(0x31); >> - write_key(0x32); >> - write_key(0x7e); >> + write_key(0x4f); >> + write_key(0x51); >> break; > > Tested fine. > >> >> case 0x3c: >> write_key(0x1b); /* F3 */ >> write_key(0x5b); >> - write_key(0x31); >> - write_key(0x33); >> - write_key(0x7e); >> + write_key(0x4f); >> + write_key(0x52); >> break; >> >> case 0x3d: >> write_key(0x1b); /* F4 >> */ >> write_key(0x5b); >> - write_key(0x31); >> - write_key(0x34); >> - write_key(0x7e); >> + write_key(0x4f); >> + write_key(0x53); >> break; >> >> case 0x3e: >> @@ -254,7 +250,7 @@ static void check_key_code(uint8_t *buf) >> case 0x42: >> write_key(0x1b); /* F9 >> */ >> write_key(0x5b); >> - write_key(0x31); >> + write_key(0x32); >> write_key(0x30); >> write_key(0x7e); >> break; >> @@ -262,7 +258,7 @@ static void check_key_code(uint8_t *buf) >> case 0x43: >> write_key(0x1b); /* F10 >> */ >> write_key(0x5b); >> - write_key(0x31); >> + write_key(0x32); >> write_key(0x31); >> write_key(0x7e); >> break; > > Does F10 work for you? doesn't work for me ? It does. But then menu entry is expanded to openSUSE, with Linux 4.0.1-1-default entering edit mode and pressing f10 finally boots it.
xterm sequence is ^[[21~ > >> @@ -270,7 +266,7 @@ static void check_key_code(uint8_t *buf) >> case 0x44: >> write_key(0x1b); /* F11 >> */ >> write_key(0x5b); >> - write_key(0x31); >> + write_key(0x32); >> write_key(0x33); >> write_key(0x7e); >> break; >> @@ -278,7 +274,7 @@ static void check_key_code(uint8_t *buf) >> case 0x45: >> write_key(0x1b); /* F12 >> */ >> write_key(0x5b); >> - write_key(0x31); >> + write_key(0x32); >> write_key(0x34); >> write_key(0x7e); >> break; >> @@ -290,36 +286,34 @@ static void check_key_code(uint8_t *buf) >> case 0x49: >> write_key(0x1b); /* INS >> */ >> write_key(0x5b); >> - write_key(0x31); >> + write_key(0x32); >> write_key(0x7e); >> break; >> >> case 0x4a: >> write_key(0x1b); /* HOME >> */ >> write_key(0x5b); >> - write_key(0x32); >> - write_key(0x7e); >> + write_key(0x48); > > Looking at accept.fs - handle-ESC-5b ... > > : handle-ESC-5b > key > dup 31 = IF \ HOME > key drop ( drops closing 7e ) handle-^A > ELSE > dup 33 = IF \ DEL > key drop handle-^D > ELSE > dup 34 = IF \ END > key drop handle-^E > ELSE > dup 1f and handle-CSI > THEN > THEN > THEN drop > ; > > > ... following change is sufficient: > - write_key(0x32); > + write_key(0x31); > Home sequence for me is: ^[[H > >> break; >> >> case 0x4b: >> write_key(0x1b); /* PgUp >> */ >> write_key(0x5b); >> - write_key(0x33); >> + write_key(0x35); >> write_key(0x7e); >> break; >> >> case 0x4c: >> write_key(0x1b); /* DEL >> */ >> write_key(0x5b); >> - write_key(0x34); >> + write_key(0x33); > > Right. > >> write_key(0x7e); >> break; >> >> case 0x4d: >> write_key(0x1b); /* END >> */ >> write_key(0x5b); >> - write_key(0x35); >> - write_key(0x7e); >> + write_key(0x46); > > I tried using: 0x34, but somehow it does not work. ^[[F works for me. All changes are tested in openSUSE's grub2 with -vga std. Note we don't have any special patches here.. Tested with -vga none -nographic. Home, End works with patched SLOF > > Regards > Nikunj > > _______________________________________________ > Linuxppc-dev mailing list > Linuxppc-dev@lists.ozlabs.org > https://lists.ozlabs.org/listinfo/linuxppc-dev _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev