~mil/ppbbq10

ppbbq10/README.md -rw-r--r-- 2.2 KiB
c69e8a4eMiles Alan Add WIP bumper-style case models 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
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

#Case

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

#Resources