From: "Clément Vuchener" <clement.vuchener@gmail.com>
To: Marty Plummer <netz.kernel@gmail.com>
Cc: linux-input@vger.kernel.org
Subject: Re: Assistance in remapping keys with no scancode in kernel module
Date: Fri, 13 Nov 2015 10:54:56 +0100 [thread overview]
Message-ID: <20151113095456.GA24750@untxi.home> (raw)
In-Reply-To: <564543F9.9000109@gmail.com>
On Thu, Nov 12, 2015 at 07:59:21PM -0600, Marty Plummer wrote:
> Greetings
>
> Having recently purchased a Logitech G105 Gaming Keyboard(046d:c248) I've began
> the process of reverse engineering the effects of the proprietery Logitech
> Gaming Software (hereafter LGS) on the device to enable its full potential in
> linux, using a number of tools (usbmon, hid-debug, virtual machines) to follow
> the actions and logic used.
>
> As of right now, I've discovered the following:
> 1. That the macro key remapping (either as standard keyboard keys or full macros)
> occurs in software and is not stored on the device itself (as opposed to
> other Logitech GSeries devices).
>
> 2. That keys G1-6 keys (hereafter GKeys) default to functioning as F1-6 until a
> certain set of packets are sent to it from LGS or otherwise, after which the
> F1-6 functionality ends.
>
> 3. Before the F# keys are disabled, the GKeys sends hid reports on interface 0
> identical to 'normal' F# keys and special reports on interface 1, with no
> scancode, of three bytes in size, on one hid usage, ff00.0003 (vendor defined)
> after the F# keys are disabled only the reports on interface 1 remain.
>
> 4. The M1-3 and MR keys (hereafter MKeys) send no reports on interface 0 at all,
> and reports on the same usage (ff00.0003) as the GKeys.
>
> 5. One can easily determine which GKeys and MKeys are being pressed via bitwise
> logic, as the three bytes follow a consistant pattern of:
>
> >03 gg mm
> where 03 is constant, gg is a value indicating the depressed GKeys (0x01 << n-1)
> AND'd together and mm is a value indicating the depressed MKeys (0x01 << n-1),
> also AND'd together, where MR is treated as M4.
>
> 6. Absolutely no standard scancode/keycode/etc is reported for these keys (as
> detectable by evtest, xev, showkeys, etc).
>
>
> My current dilemma is how one is to transform this data into something usable,
> as the fact they all report on the same usage there is no simple way I can find
> to remap these keys.
You will have to parse these reports yourself by implementing the raw_event op and generate the appropriate input events. I think you also need to declare the keys you will be using in the input_configured op. You should be able to find a lot of examples for that in the existing HID drivers.
>
> If anyone has any insight on this matter, please assist.
>
> Information on these reports and raw usbmon logs can be found at
> https://github.com/GSeriesDev/gseries-tools/g105
>
> Regards,
> Marty Plummer
>
> pub 4096R/C030918D 2015-10-13 keybase.io/the_netz <the_netz@keybase.io>
> sub 4096R/9FB3AD35 2015-10-13 [expire : 2025-10-10]
>
> pub 4096R/C030918D 2015-10-13 keybase.io/the_netz <the_netz@keybase.io>
> sub 4096R/9FB3AD35 2015-10-13 [expire : 2025-10-10]
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2015-11-13 9:55 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-13 1:59 Assistance in remapping keys with no scancode in kernel module Marty Plummer
2015-11-13 9:54 ` Clément Vuchener [this message]
2015-11-13 16:17 ` Marty Plummer
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=20151113095456.GA24750@untxi.home \
--to=clement.vuchener@gmail.com \
--cc=linux-input@vger.kernel.org \
--cc=netz.kernel@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).