~mil/ppbbq10

ref: dfbecc8ffaa3e3116cb3d9d1f5100299c2a94e66 ppbbq10/README.md -rw-r--r-- 2.1 KiB
dfbecc8fMiles Alan Add faster method for obtaining headers 7 months ago

#ppbbq10

ppbbkb.jpg

#Overview

Kernel module for Arturo182's BBQ10 PMOD that works out of the box with the Pinephone. Forked from: https://github.com/arturo182/bbq10pmod_module . Supports multiple layers and mod-tap modifiers.

Current differences from Arturo's original kernel module:

  • Assumes Pinephones I2C (e.g. uses /dev/i2c-3 rather then relying on DTC update)
  • Uses polling rather then interrupts (yes I know this is aint great)
  • Support secondary layer by pressing Sym button (rather then keymap)
  • Tap-modifier & Hold-modifiers for Ctrl, Alt, Shift, and 2ndary layer

Planned:

  • 3rd layer support for programming symbols etc
  • Remove polling, figure out interrupts
  • Bugfixes to improve reliability on disconnect / reconnect and suspend / resume

#Usage Instructions

Tested on pmOS but should generally work on any distro.

1. First test to make sure you're I2C is hooked up properly. You should make sure you see 0x1F present in the below command. If not, recheck pin connections.

 i2c-detect -y 3

2. Setup kernel headers. On debian or arch you can probably just install linux-headers and be on your merry way. On pmOS linux-headers for linux-postmarketos-allwinner are currently broken. So instead you can just grab the source from GH and prepare things:


# Either (1)
git clone https://github.com/megous/linux
git checkout $REF_KERNEL_BUILT_AGAINST_CHECK_PMAPORTS

# Or, faster (2)
wget https://github.com/megous/linux/archive/$REF_KERNEL_BUILT_AGAINST_CHECK_PMAPORTS.tar.gz
tar xvfz linux*.tar.gz

# Then
cd linux-src-folder
cat /proc/config.gz > .config
make modules_prepare

3. Clone this repo:

git clone https://git.sr.ht/~mil/ppbbq10

4. Build the kernel module

make -C ../linux-src-folder/ M=$PWD modules

5. Load the kernel module

insmod ppbbq10

#Resources