# ppbbq10 Kernel module for [Arturo182's BBQ10](https://www.tindie.com/products/arturo182/bb-q10-keyboard-pmod/) PMOD. Forked from: Current differences: - Assumed 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) Planned: - Support QMK-like features (like tap modifiers etc.) - Multiple layers ## 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: ``` git clone https://github.com/megous/linux git checkout $REF_KERNEL_BUILT_AGAINST_CHECK_PMAPORTS 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-orange-pi-5.10-20210130-2109/ M=$PWD modules ``` **5.** Load the kernel module ``` insmod ppbbq10 ``` ## Resources - Original kernel module forked from: https://github.com/arturo182/bbq10pmod_module - I2C Protocol: https://github.com/arturo182/bbq10kbd_i2c_sw