new package: device-blackberry-key2-generic: generic device port for BlackBerry KEY2 and KEY2 LE

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6830>
This commit is contained in:
Paul Sajna 2025-07-27 03:25:40 -07:00 committed by The Friendly Merge Bot
parent 7e513f5a93
commit 455d51ae86
No known key found for this signature in database
9 changed files with 242 additions and 0 deletions

View file

@ -0,0 +1 @@
/usr/share/bkeymaps/us/us-key2.bmap.gz

View file

@ -0,0 +1,7 @@
#!/bin/sh
echo "Loading stmpe_keypad module..."
modprobe -a stmpe_keypad
echo "Loading keymap..."
gunzip -c /usr/share/bkeymaps/us/us-key2.bmap.gz | loadkmap

View file

@ -0,0 +1,8 @@
Section "InputClass"
Identifier "keyboard defaults"
MatchIsKeyboard "on"
Option "XkbModel" "pc"
Option "XkbLayout" "us"
Option "XkbVariant" "key2"
EndSection

View file

@ -0,0 +1,91 @@
# Maintainer: Paul Sajna <sajattack@postmarketos.org>
pkgname=device-blackberry-key2-generic
pkgdesc="BlackBerry KEY2"
pkgver=1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
options="!check !archcheck"
depends="
firmware-blackberry-key2-generic
kbd
linux-postmarketos-qcom-sdm660
msm-firmware-loader
postmarketos-base
soc-qcom-sdm660
soc-qcom-sdm660-rproc
systemd-boot
xkeyboard-config
"
makedepends="
devicepkg-dev
kbd
"
subpackages="
$pkgname-sway
$pkgname-x11
"
source="
10-initfs-keymap.sh
10-initfs-keymap.files
40-xkb.conf
deviceinfo
etc-sway-config.d-key2.conf
keymaps/us-key2.map
keypad.conf
modules-initfs
"
build() {
devicepkg_build $startdir $pkgname
# Keymap
cd "$srcdir"
mkdir keymaps
for i in ../keymaps/*.map; do
gzip -ck "$i" > keymaps/"${i%.*}.map.gz"
loadkeys -b $i > keymaps/"${i%.*}.bmap"
gzip keymaps/"${i%.*}.bmap"
done
}
package() {
devicepkg_package $startdir $pkgname
# Keymap
install -D -m644 "$srcdir"/keymaps/us-key2.map.gz \
"$pkgdir"/usr/share/kbd/keymaps/us/us-key2.map.gz
install -D -m644 "$srcdir"/keymaps/us-key2.bmap.gz \
"$pkgdir"/usr/share/bkeymaps/us/us-key2.bmap.gz
install -Dm644 "$srcdir"/10-initfs-keymap.files \
"$pkgdir"/usr/share/mkinitfs/files/10-initfs-keymap.files
install -Dm644 "$srcdir"/10-initfs-keymap.sh \
"$pkgdir"/usr/share/mkinitfs/hooks/10-initfs-keymap.sh
install -Dm644 "$srcdir"/keypad.conf \
"$pkgdir"/etc/modules-load.d/keypad.conf
}
sway() {
install_if="$pkgname=$pkgver-r$pkgrel sway"
install -D -m644 "$srcdir"/etc-sway-config.d-key2.conf \
"$subpkgdir"/etc/sway/config.d/key2.conf
}
x11() {
install_if="$pkgname=$pkgver-r$pkgrel xorg-server"
install -D -m644 "$srcdir"/40-xkb.conf \
"$subpkgdir"/etc/X11/xorg.conf.d/40-xkb.conf
}
sha512sums="
ab91ae3241d058edc507cd4551477e04918735bd2b56e193fac29daf7d5a3c6110eab7c4e92bdc4dad8e04519ad3187c8f16a92692367c869cdf50c87d56bb4b 10-initfs-keymap.sh
2edc79d25b71ab931113d9fac9ff244123e540b7faedae64ecefa987f16f9c30d4a891993c68c792b8d28c8ef41d62d50871b37cda46c03b68eb2a4609be0880 10-initfs-keymap.files
8b3c8701e4561ec37c11244b38d85a99b26290a5b50c12a8eb59dd0ca1c7b6330744f7efba9e51669bb5ee2ddddcda55c39a2cfc14d646ebe9c2309f876e1ff1 40-xkb.conf
2f8de2ef4d8da3b7a3fc16e59141d34b7d0ab65d4393ae828f449ceabe070514b788dbcd6cd42adfe023873145c59471442b8ef68c0d6a4e9bf12f6dbc14b358 deviceinfo
1c1f23a6a7fc6f46d9b1f7ff463a3a65ec8f9a84e4a18bee8adf756fc1b2c5365fcb3b5473553752eecb7e21613081e337d3e132beadba5647e257fcd4645b74 etc-sway-config.d-key2.conf
8d5d99c1ffb0a3bbc132708894247f14aee6d80d7f9ac78d8a93a5ccef9ba8a32b8b0e5af6fe596a08aca6f9eaa1d78e05f35fe7d350c27a770b5de81d2d2aba us-key2.map
eadabfc07e465ce7acdd11428fb86b7c8dc5210779c7511b3e6dbe325332a1402f847392401172940cf23c4aab670629e47c6b67dbd76c8cdba9495cd9000ddb keypad.conf
b72b5cfa1fdd7597bf1765556688f505f31db24e650f6f95a4f0ebddd7ac091e32a31a3f3eb324243cd48fd5d7e7f866e0eac1a2a27f238078e492eb6c106470 modules-initfs
"

View file

@ -0,0 +1,28 @@
# Reference: <https://postmarketos.org/deviceinfo>
# Please use double quotes only. You can source this file in shell
# scripts.
deviceinfo_format_version="0"
deviceinfo_name="BlackBerry KEY2"
deviceinfo_manufacturer="BlackBerry"
deviceinfo_codename="blackberry-key2-generic"
deviceinfo_year="2018"
deviceinfo_arch="aarch64"
# Device related
deviceinfo_chassis="handset"
deviceinfo_external_storage="true"
deviceinfo_drm="true"
deviceinfo_keymaps="us/us-key2"
# Bootloader related
deviceinfo_flash_method="fastboot"
deviceinfo_flash_fastboot_partition_kernel="cache"
deviceinfo_generate_systemd_boot="true"
deviceinfo_boot_filesystem="fat32"
deviceinfo_header_version="0"
deviceinfo_flash_offset_base="0x00000000"
deviceinfo_flash_offset_kernel="0x00008000"
deviceinfo_flash_offset_ramdisk="0x01000000"
deviceinfo_flash_offset_second="0x00f00000"
deviceinfo_flash_offset_tags="0x00000100"

View file

@ -0,0 +1,6 @@
# BlackBerry KEY2 LE hardware keyboard
input "0:0:STMPE_keypad" {
xkb_model "pc"
xkb_layout "us"
xkb_variant "key2"
}

View file

@ -0,0 +1,92 @@
keymaps 0-8
keycode 16 = q
alt keycode 16 = numbersign
altgr keycode 16 = asciitilde
keycode 17 = w
alt keycode 17 = one
altgr keycode 17 = dead_grave
keycode 18 = e
alt keycode 18 = two
altgr keycode 18 = parenleft
keycode 19 = r
alt keycode 19 = three
altgr keycode 19 = parenright
keycode 20 = t
alt keycode 20 = parenleft
altgr keycode 20 = bracketleft
keycode 21 = y
alt keycode 21 = parenright
altgr keycode 21 = bracketright
keycode 22 = u
alt keycode 22 = underscore
altgr keycode 22 = less
keycode 23 = i
alt keycode 23 = minus
altgr keycode 23 = greater
keycode 24 = o
alt keycode 24 = plus
altgr keycode 24 = circumflex
keycode 25 = p
alt keycode 25 = at
altgr keycode 25 = percent
keycode 30 = a
alt keycode 30 = asterisk
altgr keycode 30 = equal
keycode 31 = s
alt keycode 31 = four
altgr keycode 31 = division
keycode 32 = d
alt keycode 32 = five
altgr keycode 32 = plusminus
keycode 33 = f
alt keycode 33 = six
#altgr keycode 33 = bullet
keycode 34 = g
alt keycode 34 = slash
altgr keycode 34 = backslash
keycode 35 = h
alt keycode 35 = colon
altgr keycode 35 = bar
keycode 36 = j
alt keycode 36 = semicolon
altgr keycode 36 = ampersand
keycode 37 = k
alt keycode 37 = apostrophe
#altgr keycode 37 = left_double_quotation_mark
keycode 38 = l
alt keycode 38 = quotedbl
#altgr keycode 38 = right_double_quotation_mark
keycode 44 = z
alt keycode 44 = seven
altgr keycode 44 = guillemotleft
keycode 45 = x
alt keycode 45 = eight
altgr keycode 45 = guillemotright
keycode 46 = c
alt keycode 46 = nine
#altgr keycode 46 = trademark
keycode 47 = v
alt keycode 47 = question
altgr keycode 47 = questiondown
keycode 48 = b
alt keycode 48 = exclam
altgr keycode 48 = exclamdown
keycode 49 = n
alt keycode 49 = comma
altgr keycode 49 = brokenbar
keycode 50 = m
alt keycode 50 = period
altgr keycode 50 = section
keycode 1 = Escape
keycode 14 = Delete
keycode 15 = Tab
keycode 28 = Return
keycode 29 = Control
keycode 42 = Shift
keycode 54 = Shift
keycode 56 = Alt
keycode 100 = AltGr
keycode 57 = space
keycode 58 = Caps_Lock
keycode 97 = Control

View file

@ -0,0 +1 @@
stmpe-keypad

View file

@ -0,0 +1,8 @@
msm
panel_boe_bv045fhm_l00
matrix_keymap
stmpe_keypad
edt_ft5x06
pmi8998_fg
qcom_smbx
qcom_spmi_rradc