Custom linux kernel module that re-enables fn-keys on the Gigabyte Aero 15 SB

aerofnkeys

Custom HID Quirks Driver that fixes function keys not working in the Gigabyte Aero 15 SB on Linux.

Works by intercepting non-HID compliant usages raw and emulating the correct keycode presses.

Notes

  • Compatible with the Chu Yuen Keyboard for the Gigabyte Aero 15 SB (Vendor ID: ID 1044, Product ID: 7A3B).

  • To check compatibility run lsusb, find your keyboard and compare the ID values with the ones stated above.

  • At the moment I've managed to get only the brightness keys to work on my system (Fedora 34; Kernel 5.13.12; Gnome 40.4). I am investigating why the wifi and touchpad toggle keys are not working.

  • Make sure you have the kernel headers installed for the kernel version your PC is running. To see if already installed on Arch/Manjaro run pacman -Q linux-headers.

How to Install

  1. git clone https://github.com/jaytohe/aerofnkeys.git
  2. cd aerofnkeys
  3. make
  4. sudo make install

To load the module manually do :sudo modprobe fn_keys_mod

To load the module automatically on startup you need to edit the GRUB bootloader configuration file and specify a parameter for the usbhid kernel module.

To do that :

  1. sudo nano /etc/default/grub
  2. Find the GRUB_CMDLINE_LINUX entry.
  3. Append the following kernel parameter at the end of said entry's line :
  4. usbhid.quirks=0x1044:0x7a3b:0x0000
  5. Ctrl+O and CTRL+X to save and quit nano.
  6. If on Ubuntu run : update-grub else:
  7. grub-mkconfig -o /boot/grub/grub.cfg
  8. Done! Reboot and check if the fn brightness keys work.

If not, undo the changes to /etc/default/grub and run grub-mkconfig again. Afterwards, do:

echo fn_keys_mod>/etc/modules-load.d/load_fn_keys_mod.conf

This should manually load the fn_keys_mod module on boot without the use of usbhid. Reboot and check.

How to survive kernel updates

The steps above will install and enable the module only for the currently running kernel version. If the kernel is updated, the module will need to be re-compiled.

To avoid the hassle, you can use the Dynamic Kernel Module Support (DKMS) to automatically rebuild when a kernel update occurs.

I recommend following this guide.

Owner
Change Da World...My Final Message
null
Similar Resources

Bruteforce BitCoin Private keys WIF, Minikeys, Passphrases...

Bruteforce BitCoin Private keys WIF, Minikeys, Passphrases...

Fialka M-125 This is a modified version LostCoins Huge thanks kanhavishva and to all developers whose codes were used in Fialka M-125. Quick start Сon

Sep 28, 2022

A fully-functional open source and open hardware mechanical USB computer keyboard with only three keys!

A fully-functional open source and open hardware mechanical USB computer keyboard with only three keys!

threeboard threeboard is a fully-functional open source and open hardware mechanical USB computer keyboard with only three keys. It supports multiple

Nov 15, 2022

faster minikey genetaror (casascius keys)

minikeyg faster minikey generator for Casascius keys Please read all this document before to use the program Download To clone the repository: git clo

Oct 27, 2022

The source for the Linux kernel used in Windows Subsystem for Linux 2 (WSL2)

Introduction The WSL2-Linux-Kernel repo contains the kernel source code and configuration files for the WSL2 kernel. Reporting Bugs If you discover an

Nov 27, 2022

Custom kernel for sweet based on Delta, builds hosted on @sweet_epsilon on Telegram (GH releases are outdated)

Linux kernel ============ This file was moved to Documentation/admin-guide/README.rst Please notice that there are several guides for kernel develop

Mar 29, 2022

A custom, freestanding, experimatal kernel / firmware for the n3ds

A custom, freestanding, experimatal kernel / firmware for the n3ds

A little experiment where I build a toy kernel for the new nintendo 3ds (n3ds).

Oct 17, 2022

Enables Permanent UART output across boots. Supports PS4 version 6.72 only for now

Enables Permanent UART for PS4. Requires a 5.05/6.72/7.02 Jailbroken PS4. To build, you require ps4-sdk from Scene-Collective/ps4-payload-sdk In the t

May 12, 2022

MAXREFDES1277 is a reference design that enables the evaluation of MAX17853/52 for battery management in a 48V system.

MAXREFDES1277 is a reference design that enables the evaluation of MAX17853/52 for battery management in a 48V system.

MAXREFDES1277 The MAXREFDES1277 reference design enables quick evaluation of MAX17853/52 for battery management in a 48V system. It can be used to tes

Dec 2, 2021

Avian is an experimental digital currency that enables instant payments to anyone, anywhere in the world.

Avian is an experimental digital currency that enables instant payments to anyone, anywhere in the world.

Avian Network [AVN] What is Avian? Avian is an experimental digital currency that enables instant payments to anyone, anywhere in the world. Avian use

Nov 8, 2022
Comments
  • Cannot install on Ubuntu

    Cannot install on Ubuntu

    Following the README led to the error below:

    ~ on ☁️  eu-west-2 
    ❯ sudo modprobe fn_keys_mod
    [sudo] password for paul: 
    modprobe: ERROR: could not insert 'fn_keys_mod': Operation not permitted
    
    ~ on ☁️  eu-west-2 took 2s 
    ❯ lsb_release -a
    No LSB modules are available.
    Distributor ID:	Ubuntu
    Description:	Ubuntu 20.04.2 LTS
    Release:	20.04
    Codename:	focal
    

    I plan to try and figure it out when I get time, and will propose a README update if I can.

  • Aero 15 D-series HID IDs

    Aero 15 D-series HID IDs

    Hey Jay, I've recently got an Aero 15 D-series, looks like the keyboard is still by Chu Yuen but uses ID 7a3f. I've added the new keyboard and some better documentation as well as automated DKMS support: https://github.com/atomspring/aerofnkeys

    I couldn't figure out how to do a pull request, so... yeah. Peace.

A kernel module that patches Linux kernel "on-the-fly" to skip TASK_RSS_EVENTS_THRESH check in check_sync_rss_stat

split-rss-counting-patch A kernel module that patches Linux kernel "on-the-fly" to skip TASK_RSS_EVENTS_THRESH check in check_sync_rss_stat. Why? Read

Mar 6, 2022
A kernel module to provide /system/xbin/su to Android Kernel (especially to WSA)

WSA-Kernel-SU Intro This is a kernel module to provide /system/xbin/su to Android Kernel (especially to WSA). Only works on 4.17+ kernel. For older ke

Nov 16, 2022
Linux kernel module to fight against police terror

protecc is a Linux kernel module that will shut down your computer when a predefined USB device is removed from the system.

Nov 20, 2022
Linux kernel module for Onion Omega2 to control WS2811/WS2812 LEDs

omega2-ws2811-lkm Linux kernel module for Onion Omega2 to control WS2811/WS2812 LEDs. It's using a bit-banging, so you can use any GPIO pin. Also, it

Nov 3, 2022
Linux kernel module for RedPill

?? RedPill LKM THIS IS WORK IN PROGRESS There's nothing to run/see here (yet ;)). What is this? This is a major part of a tool which will be able to r

Nov 24, 2022
A simple Linux kernel module that kills ptrace tracer and its tracees

dont_trace dont_trace is a simple Linux kernel module that kills ptrace tracer and its tracees. This kernel module relies upon the Linux kernel task_s

Mar 31, 2022
Estudos sobre LKM - Linux Kernel Module.
Estudos sobre LKM - Linux Kernel Module.

Linux Kernel Module - Part 1 Explicação geral de toda estrutura do nosso LKM. Bom, temos aqui então todo nosso cabeçalho de includes de bibliotecas. V

May 5, 2022
4 keys rhythm game on Casio Power Graphics calculators.

fx4K 简体中文 - English 简介 运行在卡西欧 fx-9750 与 fx-9860 系列图形计算器上的4K(四按键)下落式音游。 项目开始前可行性的考虑与实现的难度 屏幕刷新率 这个计算器的屏幕刷新率可以非常的高,但由于液晶显示屏在显示上会有延迟而造成残影,有可能会让读谱产生困难。另外,

Jun 1, 2022
Implementation of the key recovery attack against GEA-1 keys (Eurocrypt 2021)

GEA1_break This tool implements the attack against the GEA-1 described in Cryptanalysis of the GPRS Encryption Algorithms GEA-1 and GEA-2. GEA-1 is on

Sep 21, 2022
Dangling COM Keys Finder

DCKFinder: Dangling COM Keys Finder A simple utility to locate COM registry keys referencing DLL or EXE which are not on the system anymore. Disclaime

Apr 28, 2022