Skip to content

Commit 1ddb87e

Browse files
authored
Update Setup.sh
1 parent 5a52c7c commit 1ddb87e

File tree

1 file changed

+213
-0
lines changed

1 file changed

+213
-0
lines changed

RaspberryPi/Scripts/Setup.sh

Lines changed: 213 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,219 @@ Unattended-Upgrade::Remove-Unused-Dependencies "true";
3737
Unattended-Upgrade::AutoFixInterruptedDpkg "true";
3838
Unattended-Upgrade::MinimalSteps "true";' | sudo tee /etc/apt/apt.conf.d/50-unattended-upgrades
3939

40+
# ------------------------------------------------------------------------
41+
42+
## Some powersavings
43+
echo "options vfio_pci disable_vga=1
44+
options cec debug=0
45+
options kvm mmu_audit=0
46+
options kvm ignore_msrs=1
47+
options kvm report_ignored_msrs=0
48+
options kvm kvmclock_periodic_sync=1
49+
options nfs enable_ino64=1
50+
options pstore backend=null
51+
options libata allow_tpm=0
52+
options libata ignore_hpa=0
53+
options libahci ignore_sss=1
54+
options libahci skip_host_reset=1
55+
options snd_hda_intel power_save=1
56+
options snd_ac97_codec power_save=1
57+
options uhci-hcd debug=0
58+
options usbhid mousepoll=20 kbpoll=20 jspoll=20
59+
options usb-storage quirks=p
60+
options usbcore usbfs_snoop=0
61+
options usbcore autosuspend=10" | sudo tee /etc/modprobe.d/misc.conf
62+
echo -e "min_power" | sudo tee /sys/class/scsi_host/*/link_power_management_policy
63+
echo 1 | sudo tee /sys/module/snd_hda_intel/parameters/power_save
64+
echo -e "auto" | sudo tee /sys/bus/{i2c,pci}/devices/*/power/control
65+
sudo powertop --auto-tune && sudo powertop --auto-tune
66+
sudo cpupower frequency-set -g powersave
67+
sudo cpupower set --perf-bias 9
68+
sudo sensors-detect --auto
69+
70+
# ------------------------------------------------------------------------
71+
72+
## Disable file indexer
73+
balooctl suspend
74+
balooctl disable
75+
balooctl purge
76+
sudo systemctl disable plasma-baloorunner
77+
for dir in $HOME $HOME/*/; do touch "$dir/.metadata_never_index" "$dir/.noindex" "$dir/.nomedia" "$dir/.trackerignore"; done
78+
79+
# ------------------------------------------------------------------------
80+
81+
echo -e "Enable write cache"
82+
echo -e "write back" | sudo tee /sys/block/*/queue/write_cache
83+
sudo tune2fs -o journal_data_writeback $(df / | grep / | awk '{print $1}')
84+
sudo tune2fs -O ^has_journal $(df / | grep / | awk '{print $1}')
85+
sudo tune2fs -o journal_data_writeback $(df /home | grep /home | awk '{print $1}')
86+
sudo tune2fs -O ^has_journal $(df /home | grep /home | awk '{print $1}')
87+
echo -e "Enable fast commit"
88+
sudo tune2fs -O fast_commit $(df / | grep / | awk '{print $1}')
89+
sudo tune2fs -O fast_commit $(df /home | grep /home | awk '{print $1}')
90+
91+
# ------------------------------------------------------------------------
92+
93+
echo -e "Compress .local/bin"
94+
upx /home/$USER/.local/bin/*
95+
96+
# ------------------------------------------------------------------------
97+
98+
echo -e "Improve I/O throughput"
99+
echo 32 | sudo tee /sys/block/sd*[!0-9]/queue/iosched/fifo_batch
100+
echo 32 | sudo tee /sys/block/mmcblk*/queue/iosched/fifo_batch
101+
echo 32 | sudo tee /sys/block/nvme[0-9]*/queue/iosched/fifo_batch
102+
103+
# ------------------------------------------------------------------------
104+
105+
echo -e "Disable systemd foo service"
106+
sudo systemctl disable foo.service
107+
sudo systemctl --global disable foo.service
108+
109+
# ------------------------------------------------------------------------
110+
111+
## Improve wifi and ethernet
112+
if ip -o link | grep -q wlan; then
113+
echo -e "options iwlwifi power_save=1
114+
options iwlmvm power_scheme=3" | sudo tee /etc/modprobe.d/wlan.conf
115+
echo -e "options rfkill default_state=0 master_switch_mode=0" | sudo tee /etc/modprobe.d/wlanextra.conf
116+
sudo ethtool -K wlan0 gro on
117+
sudo ethtool -K wlan0 gso on
118+
sudo ethtool -c wlan0
119+
sudo iwconfig wlan0 txpower auto
120+
sudo iwpriv wlan0 set_power 5
121+
else
122+
sudo ethtool -s eth0 wol d
123+
sudo ethtool -K eth0 gro off
124+
sudo ethtool -K eth0 gso off
125+
sudo ethtool -C eth0 adaptive-rx on
126+
sudo ethtool -C eth0 adaptive-tx on
127+
sudo ethtool -c eth0
128+
fi
129+
130+
# ------------------------------------------------------------------------
131+
132+
echo -e "Enable HDD write caching"
133+
sudo hdparm -A1 -W1 -B254 -S0 /dev/sd*[!0-9]
134+
135+
# ------------------------------------------------------------------------
136+
137+
## Improve NVME
138+
if $(find /sys/block/nvme[0-9]* | grep -q nvme); then
139+
echo -e "options nvme_core default_ps_max_latency_us=0" | sudo tee /etc/modprobe.d/nvme.conf
140+
fi
141+
142+
# ------------------------------------------------------------------------
143+
144+
## Improve PCI latency
145+
sudo setpci -v -s '*:*' latency_timer=10 >/dev/null 2>&1
146+
sudo setpci -v -s '0:0' latency_timer=0 >/dev/null 2>&1
147+
148+
# ------------------------------------------------------------------------
149+
150+
## Improve preload
151+
sudo sed -i -e 's/sortstrategy =.*/sortstrategy = 0/' /etc/preload.conf
152+
153+
# ------------------------------------------------------------------------
154+
155+
echo -e "Disable fsck"
156+
sudo tune2fs -c 0 -i 0 $(df / | grep / | awk '{print $1}')
157+
sudo tune2fs -c 0 -i 0 $(df /home | grep /home | awk '{print $1}')
158+
echo -e "Disable checksum"
159+
sudo tune2fs -O ^metadata_csum $(df / | grep / | awk '{print $1}')
160+
sudo tune2fs -O ^metadata_csum $(df /home | grep /home | awk '{print $1}')
161+
echo -e "Disable quota"
162+
sudo tune2fs -O ^quota $(df / | grep / | awk '{print $1}')
163+
sudo tune2fs -O ^quota $(df /home | grep /home | awk '{print $1}')
164+
165+
# ------------------------------------------------------------------------
166+
167+
echo -e "Disable logging services"
168+
sudo systemctl mask dev-mqueue.mount >/dev/null 2>&1
169+
sudo systemctl mask sys-kernel-tracing.mount >/dev/null 2>&1
170+
sudo systemctl mask sys-kernel-debug.mount >/dev/null 2>&1
171+
sudo systemctl mask sys-kernel-config.mount >/dev/null 2>&1
172+
sudo systemctl mask systemd-update-utmp.service >/dev/null 2>&1
173+
sudo systemctl mask systemd-update-utmp-runlevel.service >/dev/null 2>&1
174+
sudo systemctl mask systemd-update-utmp-shutdown.service >/dev/null 2>&1
175+
sudo systemctl mask systemd-journal-flush.service >/dev/null 2>&1
176+
sudo systemctl mask systemd-journal-catalog-update.service >/dev/null 2>&1
177+
sudo systemctl mask systemd-journald-dev-log.socket >/dev/null 2>&1
178+
sudo systemctl mask systemd-journald-audit.socket >/dev/null 2>&1
179+
sudo systemctl mask logrotate.service >/dev/null 2>&1
180+
sudo systemctl mask logrotate.timer >/dev/null 2>&1
181+
sudo systemctl mask syslog.service >/dev/null 2>&1
182+
sudo systemctl mask syslog.socket >/dev/null 2>&1
183+
sudo systemctl mask rsyslog.service >/dev/null 2>&1
184+
185+
# ------------------------------------------------------------------------
186+
187+
echo -e "Disable GPU polling"
188+
echo -e "options drm_kms_helper poll=0" | sudo tee /etc/modprobe.d/disable-gpu-polling.conf
189+
190+
sudo update-initramfs -u -k all
191+
# ------------------------------------------------------------------------
192+
193+
# Don't reserve space man-pages, locales, licenses.
194+
echo -e "Remove useless companies"
195+
find /usr/share/doc/ -depth -type f ! -name copyright | xargs sudo rm -f || true
196+
find /usr/share/doc/ | grep '\.gz' | xargs sudo rm -f
197+
find /usr/share/doc/ | grep '\.pdf' | xargs sudo rm -f
198+
find /usr/share/doc/ | grep '\.tex' | xargs sudo rm -f
199+
find /usr/share/doc/ -empty | xargs sudo rmdir || true
200+
sudo rm -rfd /usr/share/groff/* /usr/share/info/* /usr/share/lintian/* \
201+
/usr/share/linda/* /var/cache/man/* /usr/share/man/* /usr/share/X11/locale/!\(en_US\)
202+
sudo rm -rfd /usr/share/locale/!\(en_US\)
203+
204+
# ------------------------------------------------------------------------
205+
206+
echo -e "Flush flatpak database"
207+
sudo flatpak uninstall --unused --delete-data -y
208+
sudo flatpak repair
209+
echo -e "Clear the caches"
210+
for n in $(find / -type d \( -name ".tmp" -o -name ".temp" -o -name ".cache" \) 2>/dev/null); do sudo find "$n" -type f -delete; done
211+
echo -e "Clear the patches"
212+
rm -rfd /{tmp,var/tmp}/{.*,*}
213+
sudo pacman -Qtdq &&
214+
sudo pacman -Runs --noconfirm $(/bin/pacman -Qttdq)
215+
sudo pacman -Sc --noconfirm
216+
sudo pacman -Scc -y
217+
sudo pacman-key --refresh-keys
218+
sudo pacman-key --populate archlinux
219+
yay -Yc --noconfirm
220+
sudo paccache -rk 0
221+
sudo pacman-optimize
222+
sudo pacman -Dk
223+
224+
# ------------------------------------------------------------------------
225+
226+
echo -e "Compress fonts"
227+
woff2_compress /usr/share/fonts/opentype/*/*ttf
228+
woff2_compress /usr/share/fonts/truetype/*/*ttf
229+
## Optimize font cache
230+
fc-cache -rfv
231+
## Optimize icon cache
232+
gtk-update-icon-cache
233+
234+
# ------------------------------------------------------------------------
235+
236+
echo -e "Clean crash log"
237+
sudo rm -rfd /var/crash/*
238+
echo -e "Clean archived journal"
239+
sudo journalctl --rotate --vacuum-time=0.1
240+
sudo sed -i -e 's/^#ForwardToSyslog=yes/ForwardToSyslog=no/' /etc/systemd/journald.conf
241+
sudo sed -i -e 's/^#ForwardToKMsg=yes/ForwardToKMsg=no/' /etc/systemd/journald.conf
242+
sudo sed -i -e 's/^#ForwardToConsole=yes/ForwardToConsole=no/' /etc/systemd/journald.conf
243+
sudo sed -i -e 's/^#ForwardToWall=yes/ForwardToWall=no/' /etc/systemd/journald.conf
244+
echo -e "Compress log files"
245+
sudo sed -i -e 's/^#Compress=yes/Compress=yes/' /etc/systemd/journald.conf
246+
sudo sed -i -e 's/^#compress/compress/' /etc/logrotate.conf
247+
echo -e "Scrub free space and sync"
248+
echo -e "kernel.core_pattern=/dev/null" | sudo tee /etc/sysctl.d/50-coredump.conf
249+
sudo dd bs=4k if=/dev/null of=/var/tmp/dummy || sudo rm -rfd /var/tmp/dummy
250+
sync -f
251+
252+
# ------------------------------------------------------------------------
40253

41254
sudo netselect-apt stable && sudo mv sources.list /etc/apt/sources.list && sudo apt update
42255

0 commit comments

Comments
 (0)