Skip to content

Optimize Shutdown, Disable MOTD, Disable Cursor Blink #26

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 53 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
fb8c775
add shutdown
dezren39 Aug 27, 2023
eb1be4c
add power
dezren39 Aug 27, 2023
8c2aa3f
add power script
dezren39 Aug 27, 2023
930dc86
add shutdown script
dezren39 Aug 27, 2023
5667633
merge
dezren39 Aug 27, 2023
0354ef7
add optimize
dezren39 Aug 27, 2023
3f9e2a8
beepy
dezren39 Aug 27, 2023
b4e3694
x
dezren39 Aug 27, 2023
4d995f1
quot
dezren39 Aug 27, 2023
6e17c60
_
dezren39 Aug 27, 2023
e50eedc
boot
dezren39 Aug 27, 2023
87c5ac5
optimize motd
dezren39 Aug 27, 2023
2fa64c7
merge
dezren39 Aug 27, 2023
a3c345e
optimize
dezren39 Aug 27, 2023
fbec454
fix bug
dezren39 Aug 27, 2023
6a84543
Merge branch 'optimize-motd' into optimize
dezren39 Aug 27, 2023
8507e9d
cleanup
dezren39 Aug 27, 2023
91f2175
improve
dezren39 Aug 27, 2023
53f25d3
Merge branch 'optimize-motd' into optimize
dezren39 Aug 27, 2023
74a1edd
add shutdown
dezren39 Aug 27, 2023
99ccdfc
fixup
dezren39 Aug 27, 2023
d08d17b
Merge branch 'optimize-motd' into optimize
dezren39 Aug 27, 2023
e92738a
cleanup
dezren39 Aug 27, 2023
eb116b3
Update optimize_power.sh
dezren39 Aug 27, 2023
09689ca
beeper/beepy/main
dezren39 Aug 27, 2023
e922974
modify_cmdline
dezren39 Aug 27, 2023
0f3fe4d
set cpu count
dezren39 Aug 27, 2023
658454e
improve
dezren39 Aug 27, 2023
c220946
refactor
dezren39 Aug 28, 2023
ed5b25a
newline
dezren39 Aug 28, 2023
4446864
align
dezren39 Aug 28, 2023
d2b2f9c
optimize
dezren39 Aug 28, 2023
2721de8
Merge branch 'optimize' of https://github.com/dezren39-dev/beepy into…
dezren39 Aug 28, 2023
6c97597
login prompt
dezren39 Aug 28, 2023
6bb405d
improve
dezren39 Aug 28, 2023
7681010
escape
dezren39 Aug 28, 2023
8b98756
escape
dezren39 Aug 28, 2023
bf51c81
escape again
dezren39 Aug 28, 2023
0b98110
escape
dezren39 Aug 28, 2023
c7154db
escape2
dezren39 Aug 28, 2023
4206f4b
escape3
dezren39 Aug 28, 2023
252261d
escape4
dezren39 Aug 28, 2023
6e2f31d
escape5
dezren39 Aug 28, 2023
2a433a8
no word boundary
dezren39 Aug 28, 2023
a09682e
sedawk
dezren39 Aug 28, 2023
95987c2
del
dezren39 Aug 28, 2023
fddc166
fix
dezren39 Aug 28, 2023
25f488a
quots for the quot gods
dezren39 Aug 28, 2023
fc55167
disbale to
dezren39 Aug 28, 2023
c63bbc6
rename
dezren39 Aug 28, 2023
8e8b168
Improve Cursor Visibility (#3)
dezren39 Aug 30, 2023
0ef5b0b
disable disables
dezren39 Aug 30, 2023
db0a3f6
safe
dezren39 Aug 30, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
.DS_Store
.DS_Store
tags
24 changes: 24 additions & 0 deletions raspberrypi/disable_cursor.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/sh

# note: this currently only works for key=value cmdline args
modify_cmdline() {
if echo "${1}" | grep -q '='; then
modify_cmdline_key=$(echo "${1}" | cut -d'=' -f1)
modify_cmdline_value=$(echo "${1}" | cut -d'=' -f2-)
else
modify_cmdline_key="${1}"
modify_cmdline_value="${2}"
fi

modify_cmdline_cmdline="$(cat /boot/cmdline.txt)"

if echo "${modify_cmdline_cmdline}" | grep -q -E "\b${modify_cmdline_key}=[^ ]*"; then
modify_cmdline_cmdline=$(echo "${modify_cmdline_cmdline}" | sed "s/\b${modify_cmdline_key}=[^ ]*/${modify_cmdline_key}=${modify_cmdline_value}/g")
else
modify_cmdline_cmdline="${modify_cmdline_cmdline} ${modify_cmdline_key}=${modify_cmdline_value}"
fi

echo "${modify_cmdline_cmdline}" > /boot/cmdline.txt
}

modify_cmdline "vt.global_cursor_default=0"
19 changes: 19 additions & 0 deletions raspberrypi/disable_cursor_blink.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/bin/sh

cat <<EOL > "/etc/systemd/system/disable-cursor-blink.service"
[Unit]
Description=Disable cursor blink on Linux console
DefaultDependencies=no
Before=sysinit.target

[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo 0 > /sys/class/graphics/fbcon/cursor_blink"

[Install]
WantedBy=sysinit.target
EOL

systemctl daemon-reload
systemctl enable disable-cursor-blink.service
systemctl start disable-cursor-blink.service
34 changes: 34 additions & 0 deletions raspberrypi/disable_kernel_logs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!/bin/sh

modify_conf() {
modify_conf_conf_file="$1"

if echo "${2}" | grep -q '='; then
modify_conf_key=$(echo "${2}" | cut -d'=' -f1)
modify_conf_value=$(echo "${2}" | cut -d'=' -f2-)
else
modify_conf_key="${2}"
modify_conf_value="${3}"
fi

modify_conf_new_content=""
modify_conf_found=0

if [ -f "${modify_conf_conf_file}" ]; then
while IFS= read -r modify_conf_line; do
if echo "${modify_conf_line}" | grep -q "^${modify_conf_key}"; then
modify_conf_line="${modify_conf_key}=${modify_conf_value}"
modify_conf_found=1
fi
modify_conf_new_content="${modify_conf_new_content}$(printf "%s\n" "${modify_conf_line}")"
done < "${modify_conf_conf_file}"
fi

[ "${modify_conf_found}" -eq 0 ] && modify_conf_new_content="${modify_conf_new_content}$(printf '%s=%s\n' "${modify_conf_key}" "${modify_conf_value}")"

modify_conf_new_content=$(printf "%s" "${modify_conf_new_content}" | sed -e :a -e '/^\n*$/{$d;N;};/\n$/ba')

printf "%s\n" "${modify_conf_new_content}" > "${modify_conf_conf_file}"
}

modify_conf "/etc/sysctl.d/20-quiet-printk.conf" "kernel.printk" "-1 -1 -1 -1"
49 changes: 49 additions & 0 deletions raspberrypi/disable_login_prompt.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#!/bin/sh

modify_service_conf() {
modify_service_conf_file="$1"
modify_service_conf_linePrefix="$2"
modify_service_conf_subcommand="$3"
modify_service_conf_flag="$4"

modify_service_conf_flag_escaped="$(echo "${modify_service_conf_flag}" | sed -e 's/[\\/&]/\\&/g')"
modify_service_conf_linePrefix_escaped="$(echo "${modify_service_conf_linePrefix}" | sed -e 's/[\\/&]/\\&/g')"

if [ ! -f "${modify_service_conf_file}" ]; then
exit 1
fi

modify_service_conf_new_content=""
modify_service_conf_found=0

while IFS= read -r modify_service_conf_line || [ -n "${modify_service_conf_line}" ]; do
if echo "${modify_service_conf_line}" | grep -q -e "^${modify_service_conf_linePrefix_escaped}"; then
modify_service_conf_found=1
#shellcheck disable=2295
remaining_line="${modify_service_conf_line#${modify_service_conf_linePrefix} }"
case "${modify_service_conf_subcommand}" in
add)
if ! echo "${remaining_line}" | grep -q -w -e "${modify_service_conf_flag_escaped}"; then
modify_service_conf_line="${modify_service_conf_linePrefix} ${modify_service_conf_flag} ${remaining_line}"
fi
;;
del|delete)
remaining_line="$(echo "${remaining_line}" | sed "s/[[:space:]]*${modify_service_conf_flag_escaped}[[:space:]]*/ /g" | awk '{$1=$1};1')"
modify_service_conf_line="${modify_service_conf_linePrefix} ${remaining_line}"
;;
*)
;;
esac
fi
modify_service_conf_new_content="$(printf "%s\n%s" "${modify_service_conf_new_content}" "${modify_service_conf_line}")"
done < "${modify_service_conf_file}"

if [ "${modify_service_conf_found}" -eq 0 ]; then
exit 1
fi

printf "%s\n" "${modify_service_conf_new_content}" > "${modify_service_conf_file}"
}

modify_service_conf "/etc/systemd/system/getty@tty1.service.d/autologin.conf" "ExecStart=-/sbin/agetty" "add" "--skip-login"
modify_service_conf "/etc/systemd/system/getty@tty1.service.d/autologin.conf" "ExecStart=-/sbin/agetty" "add" "--nonewline"
24 changes: 24 additions & 0 deletions raspberrypi/disable_motd.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/sh

DATE="$(date +%s)"

if [ -z "${DATE}" ]; then
DATE=default
fi

getent passwd |
awk -F: '($3 >= 1000 || $3 == 0) && $7 !~ /nologin|false$/ { print $6 "/.hushlogin" }' |
xargs -I {} sh -c "echo '${DATE}' | tee -a {} > /dev/null"

if [ -e "/etc/update-motd.d/10-uname" ]; then
chmod -x /etc/update-motd.d/10-uname*
mv -f "/etc/update-motd.d/10-uname" "/etc/update-motd.d/10-uname.backup.${DATE}"
fi

if [ -e "/etc/motd" ]; then
mv -f "/etc/motd" "/etc/motd.backup.${DATE}"
fi

if [ -e "/etc/issue" ]; then
mv -f "/etc/issue" "/etc/issue.backup.${DATE}"
fi
24 changes: 24 additions & 0 deletions raspberrypi/enable_cursor.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/sh

# note: this currently only works for key=value cmdline args
modify_cmdline() {
if echo "${1}" | grep -q '='; then
modify_cmdline_key=$(echo "${1}" | cut -d'=' -f1)
modify_cmdline_value=$(echo "${1}" | cut -d'=' -f2-)
else
modify_cmdline_key="${1}"
modify_cmdline_value="${2}"
fi

modify_cmdline_cmdline="$(cat /boot/cmdline.txt)"

if echo "${modify_cmdline_cmdline}" | grep -q -E "\b${modify_cmdline_key}=[^ ]*"; then
modify_cmdline_cmdline=$(echo "${modify_cmdline_cmdline}" | sed "s/\b${modify_cmdline_key}=[^ ]*/${modify_cmdline_key}=${modify_cmdline_value}/g")
else
modify_cmdline_cmdline="${modify_cmdline_cmdline} ${modify_cmdline_key}=${modify_cmdline_value}"
fi

echo "${modify_cmdline_cmdline}" > /boot/cmdline.txt
}

modify_cmdline "vt.global_cursor_default=1"
8 changes: 8 additions & 0 deletions raspberrypi/enable_disabled_cursor_blink.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/sh

if systemctl list-units --full -all | grep -q "disable-cursor-blink.service"; then
systemctl disable disable-cursor-blink.service
fi

rm -f /etc/systemd/system/disable-cursor-blink.service
systemctl daemon-reload
49 changes: 49 additions & 0 deletions raspberrypi/enable_login_prompt.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#!/bin/sh

modify_service_conf() {
modify_service_conf_file="$1"
modify_service_conf_linePrefix="$2"
modify_service_conf_subcommand="$3"
modify_service_conf_flag="$4"

modify_service_conf_flag_escaped="$(echo "${modify_service_conf_flag}" | sed -e 's/[\\/&]/\\&/g')"
modify_service_conf_linePrefix_escaped="$(echo "${modify_service_conf_linePrefix}" | sed -e 's/[\\/&]/\\&/g')"

if [ ! -f "${modify_service_conf_file}" ]; then
exit 1
fi

modify_service_conf_new_content=""
modify_service_conf_found=0

while IFS= read -r modify_service_conf_line || [ -n "${modify_service_conf_line}" ]; do
if echo "${modify_service_conf_line}" | grep -q -e "^${modify_service_conf_linePrefix_escaped}"; then
modify_service_conf_found=1
#shellcheck disable=2295
remaining_line="${modify_service_conf_line#${modify_service_conf_linePrefix} }"
case "${modify_service_conf_subcommand}" in
add)
if ! echo "${remaining_line}" | grep -q -w -e "${modify_service_conf_flag_escaped}"; then
modify_service_conf_line="${modify_service_conf_linePrefix} ${modify_service_conf_flag} ${remaining_line}"
fi
;;
del|delete)
remaining_line="$(echo "${remaining_line}" | sed "s/[[:space:]]*${modify_service_conf_flag_escaped}[[:space:]]*/ /g" | awk '{$1=$1};1')"
modify_service_conf_line="${modify_service_conf_linePrefix} ${remaining_line}"
;;
*)
;;
esac
fi
modify_service_conf_new_content="$(printf "%s\n%s" "${modify_service_conf_new_content}" "${modify_service_conf_line}")"
done < "${modify_service_conf_file}"

if [ "${modify_service_conf_found}" -eq 0 ]; then
exit 1
fi

printf "%s\n" "${modify_service_conf_new_content}" > "${modify_service_conf_file}"
}

modify_service_conf "/etc/systemd/system/getty@tty1.service.d/autologin.conf" "ExecStart=-/sbin/agetty" "del" "--skip-login"
modify_service_conf "/etc/systemd/system/getty@tty1.service.d/autologin.conf" "ExecStart=-/sbin/agetty" "del" "--nonewline"
7 changes: 7 additions & 0 deletions raspberrypi/optimize.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/sh

curl -s "https://raw.githubusercontent.com/beeper/beepy/main/raspberrypi/optimize_boot.sh" | bash
curl -s "https://raw.githubusercontent.com/beeper/beepy/main/raspberrypi/disable_motd.sh" | bash
curl -s "https://raw.githubusercontent.com/beeper/beepy/main/raspberrypi/disable_login_prompt.sh" | bash
curl -s "https://raw.githubusercontent.com/beeper/beepy/main/raspberrypi/disable_cursor_blink.sh" | bash
curl -s "https://raw.githubusercontent.com/beeper/beepy/main/raspberrypi/disable_kernel_logs.sh" | bash
3 changes: 2 additions & 1 deletion raspberrypi/optimize_boot.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
#!/bin/sh
#This script reduces boot times from 60s to 19s on the RPi0w

#shellcheck disable=SC2312
if [ "$(id -u)" -ne 0 ]; then
echo "This script must be run as root"
echo "This script must be run as root"
exit 1
fi

Expand Down
24 changes: 24 additions & 0 deletions raspberrypi/set-cpu-count-to-2.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/sh

# note: this currently only works for key=value cmdline args
modify_cmdline() {
if echo "${1}" | grep -q '='; then
modify_cmdline_key=$(echo "${1}" | cut -d'=' -f1)
modify_cmdline_value=$(echo "${1}" | cut -d'=' -f2-)
else
modify_cmdline_key="${1}"
modify_cmdline_value="${2}"
fi

modify_cmdline_cmdline="$(cat /boot/cmdline.txt)"

if echo "${modify_cmdline_cmdline}" | grep -q -E "\b${modify_cmdline_key}=[^ ]*"; then
modify_cmdline_cmdline=$(echo "${modify_cmdline_cmdline}" | sed "s/\b${modify_cmdline_key}=[^ ]*/${modify_cmdline_key}=${modify_cmdline_value}/g")
else
modify_cmdline_cmdline="${modify_cmdline_cmdline} ${modify_cmdline_key}=${modify_cmdline_value}"
fi

echo "${modify_cmdline_cmdline}" > /boot/cmdline.txt
}

modify_cmdline "maxcpus=2"
24 changes: 24 additions & 0 deletions raspberrypi/set-cpu-count-to-4.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/sh

# note: this currently only works for key=value cmdline args
modify_cmdline() {
if echo "${1}" | grep -q '='; then
modify_cmdline_key=$(echo "${1}" | cut -d'=' -f1)
modify_cmdline_value=$(echo "${1}" | cut -d'=' -f2-)
else
modify_cmdline_key="${1}"
modify_cmdline_value="${2}"
fi

modify_cmdline_cmdline="$(cat /boot/cmdline.txt)"

if echo "${modify_cmdline_cmdline}" | grep -q -E "\b${modify_cmdline_key}=[^ ]*"; then
modify_cmdline_cmdline=$(echo "${modify_cmdline_cmdline}" | sed "s/\b${modify_cmdline_key}=[^ ]*/${modify_cmdline_key}=${modify_cmdline_value}/g")
else
modify_cmdline_cmdline="${modify_cmdline_cmdline} ${modify_cmdline_key}=${modify_cmdline_value}"
fi

echo "${modify_cmdline_cmdline}" > /boot/cmdline.txt
}

modify_cmdline "maxcpus=4"