Kernel module for arturo182's BBQ10 PMOD that works OOB with the Pinephone & supports mod-taps
Add WIP bumper-style case models
Fix typo - zcat
Add faster method for obtaining headers


browse  log 



You can also use your local clone with git send-email.




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


  • 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

# 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
zcat /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


Work-in-progress bumper-style case to be 3d-printed contained in case/ folder. Models built in solvespace.