lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <175250123216.21445.8438057789120013393@lain.khirnov.net>
Date: Mon, 14 Jul 2025 15:53:52 +0200
From:  Anton Khirnov <anton@...rnov.net>
To:  Corentin Chary <corentin.chary@...il.com>,
 "Luke D. Jones" <luke@...nes.dev>,
 Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>,
 Hans de Goede <hansg@...nel.org>
Cc:  platform-driver-x86@...r.kernel.org, linux-kernel@...r.kernel.org
Subject:  Re: [PATCH] platform/x86: asus-wmi: map more keys on ExpertBook B9

Quoting Hans de Goede (2025-07-14 15:27:58)
> >> Based on other laptops I would expect this to maybe need to be
> >> KEY_KBDILLUMTOGGLE, which toggles the kbd backlight on/off ?
> > 
> > Keyboard backlight is Fn+F7 on this laptop. That said, I'm fine with any
> > key that is acceptable to you and/or other maintainers.
> 
> Ok, so no KEY_KBDILLUMTOGGLE then if that already is at Fn+F7
> 
> So lets stick with a KEY_PROG# option here,
> note asus-nb-wmi already used PROG# for:
> 
>         { KE_KEY, 0x38, { KEY_PROG3 } }, /* Armoury Crate */
>         { KE_KEY, 0x86, { KEY_PROG1 } }, /* MyASUS Key */
>         { KE_KEY, 0xB3, { KEY_PROG4 } }, /* AURA */
>         { KE_KEY, 0xFA, { KEY_PROG2 } }, /* Lid flip action */
>         { KE_KEY, 0xBD, { KEY_PROG2 } }, /* Lid flip action on ROG xflow */
>  
> I guess you checked that this laptop does not send the 0x83 / "Armoury Crate"
> events? What about 0x86 / "MyAsus"? If there is no MyAsus key I would prefer
> to use KEY_PROG1 here.

That is sent by this laptop as Fn+F12, which is why I started at PROG2.

> Or you can add a KEY_FN_SPACE to input-event-codes.h grouping it together
> with the existing Fn + X combos there.

I wasn't sure how big of a deal adding new KEY_ values is. If that isn't
too much of a hassle, I can do that and that takes care of Fn+space/f
consistently.

> >>> +	{ KE_KEY, 0xCA, { KEY_F14 } }, /* Noise cancelling on Expertbook B9 */
> >>
> >> KEY_SOUND ?
> > 
> > Can do, but then what about the fn+ version? Ideally they should be
> > related.
> 
> Hmm, can use KEY_PROG3 + KEY_PROG4, assuming that the Fn+ spacebar becomes
> KEY_PROG1 and that KEY_PROG3 / PROG4 are otherwise free ?
> 
> If not then why start at KEY_F14 and not at KEY_F13, does this laptop's
> keyboard has a key which sends:
> 
> 
>         { KE_KEY, 0x71, { KEY_F13 } }, /* General-purpose button */
> 
> Also are there no conflicts with some of the other entries which send
> F14 / F15 ?
> 
> As in no other keys which generate the existing codes mapped
> to F13 / F14 / F15 ?

The reason I picked F14 is that the key is physically located two keys
to the right of F12. PROG1 is taken, but the others are free, so I can
do either F13/F14, or PROG2/3.

For posterity, here's a list of all codes sent by this laptop:
* {up,down,left,right}: ACPI button/{up,down,left,right} (in addition to normal ATK event)
* fn-{up,down,left,right}: ATK {PgUp,PgDown,Home,End}
* copilot key (right of AltGr): ATK shift+win+F17
  press+release (immediately, releasing the physical key does nothing)
* fn-lctrl: ATK compose (menu)
* fn-space: WMI unknown key 0x5b
* fn-b: ATK pause (scancode 0xc5)
* fn-p: ATK pause (scancode 0xc6)
* fn-k: ATK scrolllock
* fn-f: WMI unknown key 0x9d (supposed to be "asus intelligent performance")
* fn-a: no event visible anywhere
* fn-esc: toggles between fn/f keys being primary, sends no visible keys except ACPI event
* fn-(1-4): WMI scancode 0x61-0x64 (switch video mode);
  also ACPI video/switchmode event identical for all 4 keys
* fn-(f1/f2/f3): ATK mute/voldown/volup + ACPI button/{mute,volumedown,volumeup}
* fn-f4/f5: ACPI brightness down/up
* fn-f6: WMI scancode 0x6b - F21
* fn-f7: keyboard backlight, sends no visible keys anywhere except ACPI event
* fn-f8: ATK win+p
* fn-f9: ATK win+l
* fn-f10: no event visible anywhere
* fn-f11: ATK win+shift+s
* fn-f12: WMI prog1 (scancode 0x86) + ACPI button/prog1
* mic-mute: WMI F20 (scancode 0xbe) + ACPI button/f20
* mic noise key (right of mic-mute): WMI scancode 0xca; fn- sends 0xcb
* fn-del: insert

Cheers,
-- 
Anton Khirnov

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ