main/postmarketos-initramfs: vibrate on boot

Vibrate on multiple stages:
* twice when forced to enter debug-shell
* 3 times on error
* once at the end of the initramfs to indicate that we're booting
  to the OS
This uses the beebzzr tool <https://scm.dersco.re/utils/beebzzr.git>.

It is meant to be useful to know if your phone is booting or having
issues, which is useful when legally or fully blind, or when the display
isn't working yet.

On devices without force-feedback support, this is a no-op.
It is worth noting that quite a few devices do not yet have some modules
required for haptics in initramfs. These will need to be fixed for
beebzzr to work.

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7563>
This commit is contained in:
Ferass El Hafidi 2025-12-13 21:17:42 +00:00 committed by The Friendly Meow (merge) Bot
parent 48b61bf481
commit 17138bf2ed
No known key found for this signature in database
4 changed files with 13 additions and 4 deletions

View file

@ -4,6 +4,7 @@
/etc/unudhcpd.conf
/sbin/blkid
/usr/bin/iskey
/usr/bin/beebzzr
/usr/bin/unudhcpd
/usr/sbin/losetup
/usr/share/deviceinfo/deviceinfo

View file

@ -1,7 +1,7 @@
# Co-Maintainer: Clayton Craft <clayton@craftyguy.net>
maintainer="Casey Connolly <kcxt@postmarketos.org>"
pkgname=postmarketos-initramfs
pkgver=3.10.2
pkgver=3.11.0
pkgrel=0
pkgdesc="Base files for the postmarketOS initramfs / initramfs-extra"
url="https://postmarketos.org"
@ -12,6 +12,7 @@ makedepends="
postmarketos-base-nofde
"
depends="
beebzzr
blkid
btrfs-progs
buffyboard
@ -117,11 +118,11 @@ sha512sums="
22cdd663c8d153781284511140b7c994cd60f0231a2819dafa67f5a11e2963ac6e392e8f7a9e3b75e7fe5d6d7b0b5e262e1ff1a695637354a124560a5ec3ed8d 00-default.modules
ace852ba267b3408998970df6042603c8bec1d033066d1c30ed65f1be955fee8644b57882898f10228ec43b912f8f03718b34ddd741b431e5a5c2e76f060a494 00-default-extra.modules
9c0e8f6f61d5da191e03a1aa9d5d0ceb5baf1eae6dbb9bfb0af59817783525119ac8394b135f303f7b6434a3eab0b49185fb90379e06823db847a4999c75ce33 00-initramfs-base.dirs
26e391a2c45e4317549153630d7398f01cf374d9a95e2587f0f7153017c50b6640950af60eab3b3fcadef2e8826295445ac1f45567716d3bd5d12e9c87df599b 00-initramfs-base.files
9fcc506ac6bbeacc83da4ce9d6bd6503f6ef34e454d38c2bc29b23d63df219a16676a237da66631486964ff12ebd99521a67a2ce571d5db5c085e98688b9a58f 00-initramfs-base.files
6d91270b96ce0c745391174201dde63b43a73ae6456c2e1138046beef3548580588fedbeae7cc914079162e99343b45d82c6e6a7ee1d03829aae7697ae52f575 00-initramfs-extra-base.files
bd72e8b6345a46ec13516c64d78d4fa1a9a18a8db9ab04aac605f9708629453dc65b6fbccd96b58eeb1ea68102ddbcae9dc6b369255c6c6c1fb18ce0bd43ec79 init.sh
7541657894cb0ad56870e023d64049cef40ad29f0113ecd0632448033d4d376ffbd5b57d48f27ef423fe5d7a124cbf76860ba2eb9d3d0a2f9cb3420826d29239 init_functions.sh
85005a36d8928872296983108d95b57ac34b77e4bd8e7595d395af1b03ac0d0d672b4e6ff8500e4ce828538b98391a7a36d1aaa76510e9e187733ddf9d62bf37 init_2nd.sh
85bc25e72ce67a2b9ae91bf5486707b35b8a118f527ae7d95f8ce45da5ec61bd77987f69963843a9db7baf692c5635a233f5fbada8417f545866bc4b95c32ba5 init_functions.sh
6201869d3731bdbe4330ffe1c6cf66ab48918b4693153e5ad648f87fa1a28c93095a218de66ce9b24d8f13df92042959591293b26fbc64279480a015ea23ce06 init_2nd.sh
4eca94327274511011967cde1f663b00b1a8182f7dddc3ba19d5c1f0ac094087a154a250c140ca70ac75a2e7c5bb70b03e94fa5eca63a5393efc4a23d025e1c3 init_functions_2nd.sh
675e7d5bee39b2df7d322117f8dcaccc274d61beaf4d50ead19bbf2109446d64b1c0aa0c5b4f9846eb6c1c403418f28f6364eff4537ba41120fbfcbc484b7da7 mdev.conf
ba3275a9af788c7c782322a22a0f144d5e50e3498ea6886486a29331f23ae89cd32d500a3635cfa7cab369afba92edc18aeca64ccbf0cd589061cce23d15b46c unudhcpd.conf

View file

@ -83,6 +83,11 @@ splash_set_message "Starting"
# Re-enable kmsg ratelimiting (might have been disabled for logging)
echo ratelimit > /proc/sys/kernel/printk_devkmsg
# Vibrate to indicate that we are booting
if [ "$IN_CI" != "true" ]; then
beebzzr &
fi
killall udevd syslogd 2>/dev/null
# Kill any getty shells that might be running

View file

@ -1211,6 +1211,7 @@ check_keys() {
# If the user is pressing either the left control key or the volume down
# key then drop to a debug shell.
if iskey KEY_LEFTCTRL KEY_VOLUMEDOWN; then
beebzzr -b 2 -d 100 &
debug_shell
# If instead they're pressing left shift or volume up, then fail boot
# and dump logs
@ -1417,6 +1418,7 @@ export_logs() {
}
fail_halt_boot() {
beebzzr -b 3 -d 250 &
export_logs
debug_shell
echo "Looping forever"