[PATCH] Fix function keys sequence on USB
Nikunj A Dadhania
nikunj at linux.vnet.ibm.com
Tue Jun 2 20:29:46 AEST 2015
Dinar Valeev <k0da at opensuse.org> writes:
> On Tue, Jun 2, 2015 at 11:47 AM, Nikunj A Dadhania
> <nikunj at linux.vnet.ibm.com> wrote:
>> Dinar valeev <k0da at opensuse.org> writes:
>>> @@ -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~
I had used following in TCG:
qemu-system-ppc64 -machine pseries -m 2G -serial stdio -cdrom distro.iso \
-vnc :1
>
>
>>
>>> @@ -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
Can you check the above change in your setup ?
>>
>>> 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
Ok.
Regards
Nikunj
More information about the Linuxppc-dev
mailing list