From 17138bf2ed830ecd389cc27396e8371d8d8f56e6 Mon Sep 17 00:00:00 2001 From: Ferass El Hafidi Date: Sat, 13 Dec 2025 21:17:42 +0000 Subject: [PATCH] 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 . 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 Part-of: --- main/postmarketos-initramfs/00-initramfs-base.files | 1 + main/postmarketos-initramfs/APKBUILD | 9 +++++---- main/postmarketos-initramfs/init_2nd.sh | 5 +++++ main/postmarketos-initramfs/init_functions.sh | 2 ++ 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/main/postmarketos-initramfs/00-initramfs-base.files b/main/postmarketos-initramfs/00-initramfs-base.files index 641ee304b..513901311 100644 --- a/main/postmarketos-initramfs/00-initramfs-base.files +++ b/main/postmarketos-initramfs/00-initramfs-base.files @@ -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 diff --git a/main/postmarketos-initramfs/APKBUILD b/main/postmarketos-initramfs/APKBUILD index a00802639..2293f5360 100644 --- a/main/postmarketos-initramfs/APKBUILD +++ b/main/postmarketos-initramfs/APKBUILD @@ -1,7 +1,7 @@ # Co-Maintainer: Clayton Craft maintainer="Casey Connolly " 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 diff --git a/main/postmarketos-initramfs/init_2nd.sh b/main/postmarketos-initramfs/init_2nd.sh index 558a23648..3cbaff4e5 100644 --- a/main/postmarketos-initramfs/init_2nd.sh +++ b/main/postmarketos-initramfs/init_2nd.sh @@ -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 diff --git a/main/postmarketos-initramfs/init_functions.sh b/main/postmarketos-initramfs/init_functions.sh index 067e2fc50..c0cf2736b 100644 --- a/main/postmarketos-initramfs/init_functions.sh +++ b/main/postmarketos-initramfs/init_functions.sh @@ -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"