187 Commits
v0.1 ... latest

Author SHA1 Message Date
a73808fc1e data/config/.xinitrc aktualisiert 2024-12-13 13:35:26 +01:00
e225fda908 data/service/chromium-monitor.service aktualisiert 2024-12-13 13:34:35 +01:00
f99e5f1fd2 install.sh aktualisiert 2024-12-13 08:42:39 +01:00
4a300e9448 data/service/watchdog-monitor.service aktualisiert 2024-12-13 08:40:21 +01:00
9f8c063290 data/service/hostname.service aktualisiert 2024-12-13 08:40:14 +01:00
94d5562993 data/service/chromium-monitor.service aktualisiert 2024-12-13 08:40:07 +01:00
4c9e91bf85 data/config/override.conf aktualisiert 2024-12-13 08:39:52 +01:00
3b988b007b data/config/disable_password_saving.json aktualisiert 2024-12-13 08:39:41 +01:00
2029e34f7b data/config/.xinitrc aktualisiert 2024-12-13 08:39:31 +01:00
19ec00985f data/config/.bash_profile aktualisiert 2024-12-13 08:39:24 +01:00
95af8b30c8 data/config/dhclient.conf aktualisiert 2024-12-13 08:39:13 +01:00
3cd029e81b data/scripts/watchdog-monitor aktualisiert 2024-12-13 08:38:22 +01:00
957da88592 data/scripts/remove_unused_kernel.sh aktualisiert 2024-12-13 08:38:10 +01:00
05a4f7a4d9 data/scripts/overlayRoot.sh aktualisiert 2024-12-13 08:37:55 +01:00
1a6e6ec818 data/http:/scripts/overlayRoot.sh aktualisiert 2024-12-13 08:37:32 +01:00
a342512f47 data/scripts/chromium-monitor aktualisiert 2024-12-13 08:37:16 +01:00
7043e38faa data/scripts/hostname aktualisiert 2024-12-13 08:37:01 +01:00
29a91daec3 install.sh aktualisiert 2024-12-13 07:53:58 +01:00
0821fe16e2 install.sh aktualisiert 2024-12-13 07:47:02 +01:00
4e4c4a7a07 install.sh aktualisiert 2024-12-13 07:41:44 +01:00
0b81870af8 data/watchdog-monitor aktualisiert 2024-12-13 07:37:45 +01:00
8db117a15d data/hostname aktualisiert 2024-12-13 07:37:35 +01:00
3643bd727a data/chromium-monitor aktualisiert 2024-12-13 07:37:19 +01:00
7412fc76de data/overlayRoot.sh aktualisiert 2024-12-13 07:37:05 +01:00
e099b97bb1 data/remove_unused_kernel.sh aktualisiert 2024-12-13 07:36:52 +01:00
307d20f651 data/.xinitrc aktualisiert 2024-12-13 07:36:37 +01:00
e7c2d849e8 data/.bash_profile aktualisiert 2024-12-13 07:36:15 +01:00
cb3c1c4649 data/override.conf aktualisiert 2024-12-13 07:36:03 +01:00
e1d817f09a data/hostname.service aktualisiert 2024-12-13 07:35:49 +01:00
42420cdc5a data/chromium-monitor.service aktualisiert 2024-12-13 07:35:28 +01:00
1947f634a6 data/watchdog-monitor.service aktualisiert 2024-12-13 07:35:06 +01:00
94609cb6c9 data/dhclient.conf aktualisiert 2024-12-13 07:34:40 +01:00
541c54d1aa data/disable_password_saving.json aktualisiert 2024-12-13 07:33:41 +01:00
b71a4fcf9a data/chromiumdisable_password_saving.json aktualisiert 2024-12-13 07:33:29 +01:00
4889ac79f0 home/wis/.ssh/id_rsa.pub gelöscht 2024-12-13 07:32:18 +01:00
a5f48bdfe9 root/.ssh/id_rsa.pub gelöscht 2024-12-13 07:31:59 +01:00
ba4a2286f7 new.md gelöscht 2024-12-13 07:31:08 +01:00
41f23212cf install.sh aktualisiert 2024-12-12 23:50:52 +01:00
735f5be839 sbin/overlayRoot.sh aktualisiert 2024-12-12 23:29:18 +01:00
56f754c0ee sbin/overlayRoot.sh aktualisiert 2024-12-12 22:29:39 +01:00
ea5ff24038 install.sh aktualisiert 2024-12-12 21:16:13 +01:00
bc97e58e6b sbin/overlayRoot.sh aktualisiert 2024-12-12 20:43:01 +01:00
a2c6e9a046 sbin/overlayRoot.sh aktualisiert 2024-12-12 20:25:39 +01:00
10fb89ad72 sbin/overlayRoot.sh aktualisiert 2024-12-12 20:24:52 +01:00
a2cb44a790 sbin/overlayRoot.sh aktualisiert 2024-12-12 19:41:14 +01:00
7262ae5ec6 sbin/overlayRoot.sh aktualisiert 2024-12-12 19:32:44 +01:00
eecb28096b install.sh aktualisiert 2024-12-10 11:37:22 +01:00
c54692ed15 usr/bin/overlayfs.sh hinzugefügt 2024-12-09 19:43:29 +01:00
cf8a661173 boot/firmware/ro-root.sh gelöscht 2024-12-09 19:42:37 +01:00
ec8c36a73e boot/ro-root.sh gelöscht 2024-12-09 19:42:27 +01:00
b77291fa8e new.md aktualisiert 2024-12-06 10:54:10 +01:00
03220f4332 new.md hinzugefügt 2024-12-06 10:52:49 +01:00
422790edcd install.sh aktualisiert 2024-11-14 15:06:14 +01:00
c8f88bb40a install.sh aktualisiert 2024-11-11 17:37:44 +01:00
18cd5a388d install.sh aktualisiert 2024-11-09 22:13:38 +01:00
4547c21cba install.sh aktualisiert 2024-11-08 12:46:38 +01:00
61a4fabac9 install.sh aktualisiert 2024-11-08 12:40:54 +01:00
8d57596072 home/loginuser/.xinitrc aktualisiert 2024-10-30 17:36:28 +01:00
4d072450c0 install.sh aktualisiert 2024-10-30 17:34:55 +01:00
16be62b878 install.sh aktualisiert 2024-10-30 10:10:25 +01:00
1853f2ff28 install.sh aktualisiert 2024-10-30 10:01:30 +01:00
5ff6d190c3 install.sh aktualisiert 2024-10-30 09:58:01 +01:00
9e7f59606c README.md aktualisiert 2024-10-30 09:35:00 +01:00
a70a362ce4 install.sh aktualisiert 2024-10-30 09:33:36 +01:00
5dc8681dfd home/loginuser/.xinitrc aktualisiert 2024-10-29 21:02:35 +01:00
c7a77796a1 install.sh aktualisiert 2024-10-29 20:59:57 +01:00
43b9640eb0 home/loginuser/.xinitrc aktualisiert 2024-10-29 20:57:22 +01:00
1510ce0758 home/loginuser/.xinitrc aktualisiert 2024-10-29 20:55:43 +01:00
a5cd4e6f2c home/loginuser/.xinitrc aktualisiert 2024-10-29 20:49:14 +01:00
488b0a6406 home/loginuser/.xinitrc aktualisiert 2024-10-29 20:37:08 +01:00
1720679c1b install.sh aktualisiert 2024-10-29 16:02:39 +01:00
689824ac04 install.sh aktualisiert 2024-10-29 15:41:39 +01:00
04e0b1a3b6 install.sh aktualisiert 2024-10-29 15:32:37 +01:00
e35bbc7d77 install.sh aktualisiert 2024-10-29 15:21:54 +01:00
620fe0c831 root/.vnc/config.d/vncserver-x11 gelöscht 2024-10-29 15:07:22 +01:00
16cfbefd83 install.sh aktualisiert 2024-10-29 14:54:19 +01:00
6341d49f76 usr/bin/custom/hostname aktualisiert 2024-10-29 14:52:32 +01:00
dcde376e95 usr/bin/custom/chromium-monitor aktualisiert 2024-10-29 14:51:46 +01:00
ce9bafa069 install.sh aktualisiert 2024-10-29 14:32:20 +01:00
3e711f04fe install.sh aktualisiert 2024-10-29 14:24:31 +01:00
b239b564f1 install.sh aktualisiert 2024-10-29 14:13:57 +01:00
777d3981f0 install.sh aktualisiert 2024-10-29 13:52:37 +01:00
6f1498f422 install.sh aktualisiert 2024-10-29 13:41:46 +01:00
514cc91ed5 usr/bin/custom/watchdog-monitor aktualisiert 2024-10-29 13:41:05 +01:00
0378024409 usr/bin/custom/watchdog-monitor aktualisiert 2024-10-29 13:22:34 +01:00
5f2cd53026 usr/bin/custom/watchdog-monitor aktualisiert 2024-10-28 20:21:20 +01:00
b2d2a89ca3 usr/bin/custom/watchdog-monitor aktualisiert 2024-10-28 20:18:11 +01:00
859759a253 usr/bin/custom/watchdog-monitor aktualisiert 2024-10-28 20:10:09 +01:00
a20d85f543 usr/bin/custom/watchdog-monitor aktualisiert 2024-10-28 20:05:13 +01:00
7b46dc4e73 usr/bin/custom/watchdog-monitor aktualisiert 2024-10-28 19:59:31 +01:00
63a40835b6 usr/bin/custom/watchdog-monitor aktualisiert 2024-10-28 19:58:33 +01:00
39ee07fe14 usr/bin/custom/watchdog-monitor aktualisiert 2024-10-28 19:48:27 +01:00
2a1dac448a usr/bin/custom/watchdog-monitor aktualisiert 2024-10-28 19:47:12 +01:00
c5ed7dde10 usr/bin/custom/watchdog-monitor aktualisiert 2024-10-28 19:37:17 +01:00
af0b0c7bb1 usr/bin/custom/watchdog-monitor aktualisiert 2024-10-28 19:29:33 +01:00
259e0d7f3a install.sh aktualisiert 2024-10-28 19:26:53 +01:00
fc1f25477d install.sh aktualisiert 2024-10-28 19:22:05 +01:00
d754b93250 install.sh aktualisiert 2024-10-28 19:19:44 +01:00
11451b03be etc/systemd/system/watchdog-monitor.service aktualisiert 2024-10-28 19:04:32 +01:00
068d6ac9a5 install.sh aktualisiert 2024-10-28 19:04:08 +01:00
b58147b391 etc/systemd/system/chromium-monitor.service aktualisiert 2024-10-28 19:01:11 +01:00
86b3bdae71 etc/systemd/system/watchdog-monitor.service aktualisiert 2024-10-28 19:00:47 +01:00
cdfd6359da usr/bin/custom/watchdog-monitor aktualisiert 2024-10-28 18:59:56 +01:00
bf0b5e857f usr/bin/custom/watchdog aktualisiert 2024-10-28 18:53:03 +01:00
9b85eddf09 usr/bin/custom/watchdog aktualisiert 2024-10-28 18:45:05 +01:00
0d5e790cd2 usr/bin/custom/watchdog-monitor aktualisiert 2024-10-28 18:29:13 +01:00
7d05ae6fa4 etc/systemd/system/chromium-monitor.service aktualisiert 2024-10-28 17:22:16 +01:00
0dc0236f40 etc/systemd/system/watchdog.service aktualisiert 2024-10-28 17:21:55 +01:00
f65185644d install.sh aktualisiert 2024-10-28 17:15:43 +01:00
73ea27ac67 usr/bin/custom/chromium-monitor aktualisiert 2024-10-28 16:59:11 +01:00
d012e5193d usr/bin/custom/chromium-monitor aktualisiert 2024-10-28 16:41:08 +01:00
6a631c3aee install.sh aktualisiert 2024-10-28 16:08:29 +01:00
7276958e0b install.sh aktualisiert 2024-10-28 15:40:26 +01:00
5f9f63d026 etc/systemd/system/chromium-monitor.service aktualisiert 2024-10-28 15:29:25 +01:00
b6d889a348 etc/systemd/system/watchdog.service aktualisiert 2024-10-28 15:29:05 +01:00
e511fcb885 install.sh aktualisiert 2024-10-28 15:23:43 +01:00
57b5cd5397 install.sh aktualisiert 2024-10-28 14:11:42 +01:00
26058e12f7 usr/bin/custom/hostname aktualisiert 2024-10-28 14:06:16 +01:00
134a398fb9 usr/bin/custom/hostname aktualisiert 2024-10-28 14:05:07 +01:00
4b607c3ad8 etc/systemd/system/hostname.service hinzugefügt 2024-10-28 14:03:39 +01:00
1d22c6dc07 usr/bin/hostname hinzugefügt 2024-10-28 14:02:25 +01:00
0b8a9d2ba6 install.sh aktualisiert 2024-10-28 13:51:09 +01:00
b921505906 etc/systemd/system/watchdog.service aktualisiert 2024-10-28 13:45:55 +01:00
b39edf6343 etc/systemd/system/chromium-monitor.service aktualisiert 2024-10-28 13:45:43 +01:00
0d081f2380 install.sh aktualisiert 2024-10-28 13:45:03 +01:00
8038479898 usr/bin/custom/watchdog aktualisiert 2024-10-28 13:43:46 +01:00
8fe03e7cad usr/bin/custom/chromium-monitor aktualisiert 2024-10-28 13:43:36 +01:00
83c6f7de70 install.sh aktualisiert 2024-10-28 13:41:40 +01:00
dece859ca8 install.sh aktualisiert 2024-10-28 13:04:35 +01:00
0d1a2b7c21 usr/bin/watchdog aktualisiert 2024-10-28 13:02:32 +01:00
d96260222c usr/bin/chromium-monitor aktualisiert 2024-10-28 13:01:36 +01:00
54d218451a etc/systemd/system/watchdog.service aktualisiert 2024-10-28 09:54:46 +01:00
ef29887a40 root/.ssh/id_rsa.pub hinzugefügt 2024-10-27 18:36:19 +01:00
67e55e37bb roo/.ssh/id_rsa.pub gelöscht 2024-10-27 18:36:02 +01:00
b01e957dfa roo/.ssh/id_rsa.pub hinzugefügt 2024-10-27 18:35:44 +01:00
5940c1e4e8 .gitignore gelöscht 2024-10-27 18:33:04 +01:00
4a2afa57e0 install.sh aktualisiert 2024-10-27 18:32:45 +01:00
eb785117d7 etc/systemd/system/watchdog.service aktualisiert 2024-10-27 18:27:11 +01:00
eb74659abf etc/systemd/system/chromium-monitor.service aktualisiert 2024-10-27 18:26:12 +01:00
3cd8e0bea6 usr/bin/watchdog aktualisiert 2024-10-27 18:23:34 +01:00
651f9280c9 usr/bin/chromium-monitor aktualisiert 2024-10-27 18:21:21 +01:00
10ca7032ef README.md aktualisiert 2024-10-21 19:32:37 +02:00
00ef7ab4b7 install.sh aktualisiert 2024-10-21 17:07:47 +02:00
95d3a9ccd9 install.sh aktualisiert 2024-10-21 17:02:43 +02:00
ee9d49cba5 README.md aktualisiert 2024-10-21 16:57:50 +02:00
d1e9a179fc etc/systemd/system/chromium-monitor.service aktualisiert 2024-10-21 16:57:20 +02:00
3bdee6bd3e install.sh aktualisiert 2024-10-21 16:56:52 +02:00
c76a1c3613 etc/systemd/system/chromium-monitor.service aktualisiert 2024-10-21 16:39:18 +02:00
d92f9cebb8 install.sh aktualisiert 2024-10-20 11:48:23 +02:00
14fc513e70 install.sh aktualisiert 2024-10-16 16:21:14 +02:00
f9ad27df20 install.sh aktualisiert 2024-10-16 16:15:27 +02:00
e4fa735c71 install.sh aktualisiert 2024-10-16 16:11:42 +02:00
40b802a418 README.md aktualisiert 2024-10-16 16:02:14 +02:00
643bc897f3 install.sh aktualisiert 2024-10-16 15:56:03 +02:00
aefd8d032a install.sh aktualisiert 2024-10-16 15:42:09 +02:00
531f4bdaa4 home/wis/.ssh/id_rsa.pub hinzugefügt 2024-10-16 14:47:18 +02:00
1858524a0f install.sh aktualisiert 2024-10-16 14:32:47 +02:00
95ae6ffa2f install.sh aktualisiert 2024-10-16 14:20:55 +02:00
74b3a695cb install.sh aktualisiert 2024-10-16 14:15:28 +02:00
bed96e3b77 README.md aktualisiert 2024-10-16 14:03:31 +02:00
78dd888b98 install.sh aktualisiert 2024-10-16 13:55:14 +02:00
1f99185b38 install.sh aktualisiert 2024-10-16 13:13:54 +02:00
8cb69931a6 README.md aktualisiert 2024-10-16 13:04:14 +02:00
6a7b26e3ed install.sh aktualisiert 2024-10-16 12:54:58 +02:00
a21ad47b93 boot/firmware/ro-root.sh hinzugefügt 2024-10-16 12:16:59 +02:00
7507e33cd8 install.sh aktualisiert 2024-10-16 12:15:41 +02:00
33ab3e799c install.sh aktualisiert 2024-10-16 12:09:40 +02:00
a7e26b8017 install.sh aktualisiert 2024-10-16 12:05:59 +02:00
44a5ebcc5d install.sh aktualisiert 2024-10-16 11:59:24 +02:00
d4f664d528 README.md aktualisiert 2024-10-16 11:17:25 +02:00
dd4da4fc90 README.md aktualisiert 2024-10-16 11:15:50 +02:00
8a5a333b17 etc/systemd/system/getty@tty1.service.d/override.conf aktualisiert 2024-10-16 11:15:02 +02:00
1247e986b4 etc/systemd/system/chromium-monitor.service aktualisiert 2024-10-16 11:14:42 +02:00
9c543d45b2 etc/systemd/system/watchdog.service aktualisiert 2024-10-16 11:14:33 +02:00
659ccb5738 etc/dhcp/dhclient.conf aktualisiert 2024-10-16 11:14:20 +02:00
30e8ca7353 etc/chromium/policies/managed/disable_password_saving.json aktualisiert 2024-10-16 11:14:02 +02:00
6ee7764bd7 home/loginuser/.xinitrc aktualisiert 2024-10-16 11:13:45 +02:00
8935a49c56 home/loginuser/.bash_profile aktualisiert 2024-10-16 11:13:31 +02:00
30b88204e7 root/.vnc/config.d/vncserver-x11 aktualisiert 2024-10-16 11:13:13 +02:00
634d3d17e8 usr/bin/watchdog aktualisiert 2024-10-16 11:12:26 +02:00
9dd38dbc15 usr/bin/watchdog aktualisiert 2024-10-16 11:11:32 +02:00
fb8ff04041 usr/bin/chromium-monitor aktualisiert 2024-10-16 11:11:16 +02:00
72f87e68f8 usr/bin/watchdog aktualisiert 2024-10-16 11:10:54 +02:00
6a3436aaad usr/bin/chromium-monitor aktualisiert 2024-10-16 11:10:41 +02:00
fa768d5267 install.sh aktualisiert 2024-10-16 11:10:09 +02:00
f119be71db boot/ro-root.sh hinzugefügt 2024-10-16 11:07:31 +02:00
5ef683957f README.md aktualisiert
Signed-off-by: Tim Eertmoed <alientim@noreply.localhost>
2024-10-15 15:30:55 +02:00
24 changed files with 490 additions and 250 deletions

15
.gitignore vendored
View File

@@ -1,15 +0,0 @@
# ---> Linux
*~
# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
# .nfs files are created when an open file is removed but is still being accessed
.nfs*

View File

@@ -1,2 +1,10 @@
# RPS-Light-PXE
# RPS-Client
```bash
wget -qO- --header 'Authorization:token 9031f8d227dd83ba601680bf3a9f6c2d26c1a970' https://gitea.int.eertmoed.net/WiS/RPS-Client/archive/latest.tar.gz | tar xvz ; bash /root/rps-client/install.sh ;
```
```ruby
# Version 1.1:
# Created 2024 by Tim Eertmoed, Christian Hampp @ WiS IT-Solutions GmbH, Germany to work on Raspian as custom pxe init script.
```

View File

@@ -0,0 +1,9 @@
if [ -z $DISPLAY ] && [ $(tty) = /dev/tty1 ]
then
startx -- -nocursor
exit
sudo reboot
fi
# Version 1.0:
# Created 2024 by Tim Eertmoed, Christian Hampp @ WiS IT-Solutions GmbH, Germany to work on Raspian as custom pxe init script.

View File

@@ -14,7 +14,8 @@ then
xset s noblank
xset s off
else
xset s $SCREEN
xset +dpms
xset dmps 0 0 $SCREEN
fi
#NO-Var fallback site
@@ -23,7 +24,6 @@ then
WBS=https://www.wis.gmbh/
fi
#Start Chromium
chromium-browser $WBS \
--window-size=$RES \
--window-position=0,0 \
@@ -46,4 +46,7 @@ chromium-browser $WBS \
--disable-password-manager \
--user-data-dir=/tmp/chromium-profile
exit
exit
# Version 1.0:
# Created 2024 by Tim Eertmoed, Christian Hampp @ WiS IT-Solutions GmbH, Germany to work on Raspian as custom pxe init script.

View File

@@ -10,4 +10,7 @@ request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers, url, monitor, watchdog, screen;
rfc3442-classless-static-routes, ntp-servers, url, monitor, watchdog, screen;
# Version 1.0:
# Created 2024 by Tim Eertmoed, Christian Hampp @ WiS IT-Solutions GmbH, Germany to work on Raspian as custom pxe init script.

View File

@@ -0,0 +1,7 @@
{
"PasswordManagerEnabled": false,
"PasswordManagerAllowShowPasswords": false
}
# Version 1.0:
# Created 2024 by Tim Eertmoed, Christian Hampp @ WiS IT-Solutions GmbH, Germany to work on Raspian as custom pxe init script.

View File

@@ -0,0 +1,6 @@
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin loginuser --noclear %I $TERM
# Version 1.0:
# Created 2024 by Tim Eertmoed, Christian Hampp @ WiS IT-Solutions GmbH, Germany to work on Raspian as custom pxe init script.

View File

@@ -0,0 +1,51 @@
#!/bin/bash
LOGFILE="/var/log/chromium-monitor.log"
# Function to log messages with timestamps
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "$LOGFILE"
}
# Function to get the monitor value from DHCP
get_monitor() {
sudo cat /var/lib/dhcp/* | grep -a "option monitor" | tail -1 | \
awk '{ s = ""; for (i = 3; i <= NF; i++) s = s $i " "; print s}' | \
awk -F '"' '{print $2}'
}
# Function to get the current window name
get_current_window() {
DISPLAY=:0 xdotool getwindowfocus getwindowname
}
# Initialize monitor variable
monitor=""
while [ -z "$monitor" ]; do
monitor=$(get_monitor)
if [ -n "$monitor" ]; then
log "Initial monitor detected: $monitor" # Log initial monitor
fi
sleep 5
done
# Main loop to continuously check the current window
while true; do
current_window=$(get_current_window) # Get the current window name
if [ -n "$current_window" ]; then
# Check for mismatch using case-insensitive comparison
if ! echo "$current_window" | grep -iq "$monitor"; then
log "Mismatch detected! Monitor: $monitor, Current: $current_window"
log "Rebooting now."
sudo reboot
exit 1
fi
fi
# Sleep for a short duration before the next check
sleep 5
done
# Version 1.0:
# Created 2024 by Tim Eertmoed, Christian Hampp @ WiS IT-Solutions GmbH, Germany to work on Raspbian as custom PXE init script.

40
data/scripts/hostname Normal file
View File

@@ -0,0 +1,40 @@
#!/bin/bash
LOGFILE="/var/log/hostname.log"
# Function to log messages with timestamps
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "$LOGFILE"
}
# Function to read the hostname from the DHCP lease file
get_hostname() {
sudo cat /var/lib/dhcp/* | grep -a "option host-name" | tail -1 | \
awk -F '"' '{print $2}'
}
# Function to update /etc/hosts with the new hostname
update_hosts() {
local hostname="$1"
# Replace the second line with the new hostname
sudo sed -i "2s/.*/127.0.1.1 ${hostname}/" /etc/hosts
log "Updated /etc/hosts with hostname: $hostname"
}
# Read the hostname from DHCP
hostname=$(get_hostname)
if [ -n "$hostname" ]; then
# Set the hostname using hostnamectl
sudo hostnamectl set-hostname "$hostname"
log "Set hostname to: $hostname"
update_hosts "$hostname"
else
log "No hostname found."
fi
# Log completion
log "Hostname update script completed."
# Version 1.0:
# Created 2024 by Tim Eertmoed, Christian Hampp @ WiS IT-Solutions GmbH, Germany to work on Raspbian as custom PXE init script.

View File

@@ -0,0 +1,70 @@
#!/bin/bash
# Dieses Skript wird das Root-Dateisystem schreibgeschützt einbinden und es mit einem temporären tmpfs-Overlay versehen.
#
# Installation:
# Kopiere dieses Skript nach /sbin/overlayRoot.sh und füge "init=/sbin/overlayRoot.sh" zur cmdline.txt-Datei
# in der Boot-Partition des Raspbian-Images hinzu.
#
# Führe die folgenden Befehle als root aus:
# sudo dphys-swapfile swapoff
# sudo dphys-swapfile uninstall
# sudo update-rc.d dphys-swapfile remove
#
# Um Software zu installieren, Upgrades durchzuführen und andere Änderungen an der Raspberry-Konfiguration vorzunehmen,
# entferne einfach den Eintrag "init=/sbin/overlayRoot.sh" aus der cmdline.txt-Datei und starte das System neu.
# Nimm die gewünschten Änderungen vor, füge den init= Eintrag wieder hinzu und starte erneut neu.
set -e
fail() {
echo -e "$1" >&2
exit 1
}
# Prüfen und Modul laden
modprobe overlay || fail "ERROR: OverlayFS-Modul nicht geladen."
# /proc einbinden
mountpoint -q /proc || mount -t proc proc /proc
# Temporäres Dateisystem für Overlay erstellen
mount -t tmpfs tmpfs /overlay || fail "ERROR: tmpfs konnte nicht gemountet werden."
mkdir -p /overlay/lower /overlay/rw/upper /overlay/rw/work /overlay/newroot
# Root-Dateisystem schreibgeschützt einbinden
rootDev=$(awk '$2 == "/" {print $1}' /proc/mounts)
rootMountOpt=$(awk '$2 == "/" {print $4}' /proc/mounts)
rootFsType=$(awk '$2 == "/" {print $3}' /proc/mounts)
mount -t "${rootFsType}" -o "${rootMountOpt},ro" "${rootDev}" /overlay/lower || \
fail "ERROR: Ursprüngliches Root-Dateisystem konnte nicht schreibgeschützt eingebunden werden."
# OverlayFS einbinden
mount -t overlay \
-o lowerdir=/overlay/lower,upperdir=/overlay/rw/upper,workdir=/overlay/rw/work \
overlay /overlay/newroot || fail "ERROR: OverlayFS konnte nicht gemountet werden."
# Neue Root-Overlay-Verzeichnisse erstellen
mkdir -p /overlay/newroot/overlay/ro /overlay/newroot/overlay/rw
# Originale fstab modifizieren
grep -v "$rootDev" /overlay/lower/etc/fstab > /overlay/newroot/etc/fstab
cat <<EOF >> /overlay/newroot/etc/fstab
# Das originale Root-Dateisystem wurde durch overlayRoot.sh entfernt.
# Diese änderung ist temporär. Die originale fstab ist in /overlay/ro/etc/fstab verfügbar.
EOF
# Root wechseln und alte Root aufräumen
cd /overlay/newroot
pivot_root . overlay || fail "ERROR: pivot_root fehlgeschlagen."
exec chroot . /bin/bash -c "
mount --move /overlay/overlay/lower /overlay/ro || fail 'ERROR: /ro konnte nicht verschoben werden.'
mount --move /overlay/overlay/rw /overlay/rw || fail 'ERROR: /rw konnte nicht verschoben werden.'
umount /overlay/overlay || true
umount /overlay/proc || true
umount -l -f /overlay/dev || true
umount -l -f /overlay || true
exec /sbin/init
"

View File

@@ -0,0 +1,99 @@
#!/bin/bash
# Log file
log_file="/var/log/watchdog.log"
# Configuration file
config_file="/etc/watchdog.conf"
# Function to log messages with timestamp
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "$log_file"
}
# Function to update watchdog configuration
update_watchdog_config() {
# Extract watchdog IP addresses
watchdog=$(sudo cat /var/lib/dhcp/* | grep -a "option watchdog" | tail -1 | \
awk '{for (i=3; i<=NF; i++) printf "%s ", $i}' | tr -d '";')
IFS=', ' read -r -a ip_array <<< "$watchdog" # Split IPs by comma or space
# Backup current configuration
sudo cp "$config_file" "$config_file.bak"
log "Backup of $config_file created successfully."
# Write static configuration to file
{
echo "realtime = yes"
echo "priority = 1"
echo "interface = eth0"
echo "interval = 58"
echo "ping-count = 1"
} | sudo tee "$config_file" > /dev/null
log "Static configuration written to $config_file."
if [ ${#ip_array[@]} -eq 0 ]; then
log "No IP addresses found. Watchdog configuration cleared."
return 1 # No IP addresses to configure
else
# Append IPs to config
for ip in "${ip_array[@]}"; do
echo "ping = $ip" | sudo tee -a "$config_file" > /dev/null
done
log "Configured watchdog to ping: ${ip_array[*]}"
# Attempt to restart watchdog service
if ! sudo systemctl restart watchdog; then
log "Failed to restart watchdog service. Attempting to stop and start."
# Fallback: stop then start the service
sudo systemctl stop watchdog
if sudo systemctl start watchdog; then
log "Watchdog service started successfully after stop."
else
log "Failed to start watchdog service after stop."
return 1
fi
else
log "Watchdog service restarted successfully."
fi
# Stop watchdog-monitor service if restart/start was successful
if sudo systemctl stop watchdog-monitor; then
log "watchdog-monitor service stopped successfully."
else
log "Failed to stop watchdog-monitor service."
fi
return 0 # Successful restart/start
fi
}
# Loop parameters
interval=30 # Interval to wait between checks
start_time=$(date +%s)
end_time=$((start_time + 300)) # 5 minutes in seconds
# Main loop
while true; do
if ! update_watchdog_config; then
log "IP addresses found and watchdog restarted. Exiting loop."
break
else
log "No IP addresses found or restart failed. Waiting for $interval seconds before checking again..."
fi
# Check if 5 minutes have passed
if [ "$(date +%s)" -ge "$end_time" ]; then
log "5 minutes have passed. Stopping the watchdog service."
sudo systemctl stop watchdog
break
fi
log "Waiting for $interval seconds before checking for IP addresses again..."
sleep $interval
done
# Version 1.5:
# Created 2024 by Tim Eertmoed @ WiS IT-Solutions GmbH, Germany to work on Raspian as custom PXE init script.

View File

@@ -0,0 +1,15 @@
[Unit]
Description=A Service to monitor the Kiosk's current site
After=network.target
[Service]
Type=simple
User=loginuser
ExecStartPre=/bin/bash -c 'pgrep -f chromium-browser > /dev/null || exit 1'
ExecStart=/usr/bin/custom/chromium-monitor
[Install]
WantedBy=multi-user.target
# Version 1.1:
# Created 2024 by Tim Eertmoed, Christian Hampp @ WiS IT-Solutions GmbH, Germany to work on Raspian as custom pxe init script.

View File

@@ -0,0 +1,11 @@
[Unit]
Description=Set Hostname from DHCP
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/bin/custom/hostname
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,13 @@
[Unit]
Description=Watchdog Monitor Service
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/custom/watchdog-monitor
[Install]
WantedBy=multi-user.target
# Version 1.1:
# Created 2024 by Tim Eertmoed, Christian Hampp @ WiS IT-Solutions GmbH, Germany to work on Raspian as custom pxe init script.

View File

@@ -1,4 +0,0 @@
{
"PasswordManagerEnabled": false,
"PasswordManagerAllowShowPasswords": false
}

View File

@@ -1,14 +0,0 @@
[Unit]
Description=A Service to monitor the Kiosk's current site
After=network.target getty@tty1.service
[Service]
# Wait until Chromium is running
ExecStartPre=-/bin/bash -c 'while ! pgrep -f chromium-browser > /dev/null; do sleep 5; done'
ExecStartPre=-/usr/bin/sleep 20
Type=simple
User=loginuser
ExecStart=/usr/bin/chromium-monitor
[Install]
WantedBy=multi-user.target

View File

@@ -1,3 +0,0 @@
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin loginuser --noclear %I $TERM

View File

@@ -1,12 +0,0 @@
[Unit]
Description=Watchdog Monitor Service
After=network.target getty@tty1.service
[Service]
ExecStartPre=-/bin/sleep 120
Type=simple
ExecStart=/usr/bin/watchdog
Restart=on-failure
[Install]
WantedBy=multi-user.target

View File

@@ -1,6 +0,0 @@
if [ -z $DISPLAY ] && [ $(tty) = /dev/tty1 ]
then
startx -- -nocursor
exit
sudo reboot
fi

View File

@@ -1,143 +1,155 @@
#!/bin/bash
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m' # No Color
clear
echo "Starte Systemupdate..."
sudo apt update && sudo apt upgrade -y && sudo apt dist-upgrade -y && sudo apt autoremove -y && sudo apt clean -y
echo "Starte Systemupdate..."
echo "Systemupdate erfolgreich..."
echo "Installierse benötigte Pakete..."
sudo apt install --no-install-recommends xserver-xorg x11-xserver-utils xinit chromium-browser fonts-noto-color-emoji nfs-common watchdog xdotool rsync -y
clear
echo "Starte Systemupdate..."
echo "Systemupdate erfolgreich..."
echo "Installierse benötigte Pakete..."
echo "Alle Pakete wurden installiert..."
echo "Lege den Benutzer \"loginuser\" an..."
sudo adduser --disabled-password --gecos "" loginuser
clear
echo "Starte Systemupdate..."
echo "Systemupdate erfolgreich..."
echo "Installierse benötigte Pakete..."
echo "Alle Pakete wurden installiert..."
echo "Lege den Benutzer \"loginuser\" an..."
echo "Loginuser angelegt..."
echo "Setze Rechte für \"loginuser\""
sudo tee /etc/sudoers.d/loginuser > /dev/null << 'EOF'
loginuser ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart watchdog
loginuser ALL=(ALL) NOPASSWD: /usr/bin/echo
loginuser ALL=(ALL) NOPASSWD: /usr/bin/cp
loginuser ALL=(ALL) NOPASSWD: /usr/bin/sed
loginuser ALL=(ALL) NOPASSWD: /usr/sbin/reboot
loginuser ALL=(ALL) NOPASSWD: /usr/sbin/dhclient eth0
loginuser ALL=(ALL) NOPASSWD: /usr/bin/fbset
# Function to print status with a checkmark
print_status() {
echo -e "${GREEN}${NC} ${1} completed."
}
# Update and setup system and packages
echo -e "${RED}${NC} Starting System Update..." | tee -a /var/log/install
sudo apt-get update >>/var/log/install 2>&1 && print_status "System Update"
sudo apt-get full-upgrade -y >>/var/log/install 2>&1 && print_status "System Upgrade"
echo -e "${RED}${NC} Installing required packages..." | tee -a /var/log/install
sudo apt install --no-install-recommends realvnc-vnc-server xserver-xorg x11-xserver-utils xinit chromium-browser fonts-noto-color-emoji nfs-common watchdog xdotool rsync -y >>/var/log/install 2>&1 && print_status "Required packages installed"
sudo apt autoremove -y >>/var/log/install 2>&1 && print_status "Autoremove"
sudo apt clean >>/var/log/install 2>&1 && print_status "Clean"
rm -rf /var/lib/apt/lists/* >>/var/log/install 2>&1 && print_status "Clear cache"
echo -e "${RED}${NC} Configuring Raspberry Pi settings..." | tee -a /var/log/install
print_status ""
# Set needed users
echo -e "${RED}${NC} Creating user 'loginuser'..." | tee -a /var/log/install
sudo adduser --disabled-password --gecos "" loginuser >>/var/log/install 2>&1 && print_status "User 'loginuser' created"
# Copy required files
echo -e "${RED}${NC} Copy requiered files..." | tee -a /var/log/install
mkdir -p /etc/chromium/policies/managed /etc/systemd/system/getty@tty1.service.d /usr/bin/custom
declare -A files=(
["/root/rps-client/data/config/dhclient.conf"]="/etc/dhcp/dhclient.conf"
["/root/rps-client/data/config/override.conf"]="/etc/systemd/system/getty@tty1.service.d/override.conf"
["/root/rps-client/data/config/disable_password_saving.json"]="/etc/chromium/policies/managed/disable_password_saving.json"
["/root/rps-client/data/config/.bash_profile"]="/home/loginuser/.bash_profile"
["/root/rps-client/data/config/.xinitrc"]="/home/loginuser/.xinitrc"
["/root/rps-client/data/scripts/overlayRoot.sh"]="/sbin/overlayRoot.sh"
["/root/rps-client/data/scripts/remove_unused_kernel.sh"]="/root/remove_unused_kernel.sh"
["/root/rps-client/data/scripts/hostname"]="/usr/bin/custom/hostname"
["/root/rps-client/data/scripts/chromium-monitor"]="/usr/bin/custom/chromium-monitor"
["/root/rps-client/data/scripts/watchdog-monitor"]="/usr/bin/custom/watchdog-monitor"
["/root/rps-client/data/service/hostname.service"]="/etc/systemd/system/hostname.service"
["/root/rps-client/data/service/watchdog-monitor.service"]="/etc/systemd/system/watchdog-monitor.service"
["/root/rps-client/data/service/chromium-monitor.service"]="/etc/systemd/system/chromium-monitor.service"
)
RSYNC_OPTS="-a --numeric-ids --info=progress2 --no-owner --no-group"
for src in "${!files[@]}"; do
dst="${files[$src]}"
echo "Copying $src to $dst..."
sudo rsync $RSYNC_OPTS "$src" "$dst" >>/var/log/install 2>&1 && print_status "$src copied to $dst"
done
print_status "All files have been successfully copied"
# Set permissions
echo -e "${RED}${NC} Setting file permissions..." | tee -a /var/log/install
sudo chown loginuser:loginuser -R /home/loginuser >>/var/log/install 2>&1 && print_status "File permissions for 'loginuser' set"
sudo chown wis:wis -R /home/wis >>/var/log/install 2>&1 && print_status "File permissions for 'wis' set"
sudo chmod +x /usr/bin/custom/hostname /usr/bin/custom/chromium-monitor /usr/bin/custom/watchdog-monitor /sbin/overlayRoot.sh >>/var/log/install 2>&1 && print_status "Permissions for script files set"
sudo usermod -aG video loginuser >>/var/log/install 2>&1 && print_status "Permissions for 'loginuser' set"
echo -e "${RED}${NC} Setting permissions for 'loginuser'..." | tee -a /var/log/install
sudo tee /etc/sudoers.d/loginuser >>/var/log/install 2>&1 && print_status "Sudo rights for 'loginuser' set" << 'EOF'
loginuser ALL=(ALL) NOPASSWD: /usr/bin/systemctl stop chromium-monitor, /usr/bin/systemctl start chromium-monitor
loginuser ALL=(ALL) NOPASSWD: /usr/bin/systemctl stop watchdog-monitor, /usr/bin/systemctl start watchdog-monitor
loginuser ALL=(ALL) NOPASSWD: /usr/bin/cat /var/lib/dhcp/*
EOF
sudo usermod -aG video loginuser
clear
echo "Starte Systemupdate..."
echo "Systemupdate erfolgreich..."
echo "Installierse benötigte Pakete..."
echo "Alle Pakete wurden installiert..."
echo "Lege den Benutzer \"loginuser\" an..."
echo "Loginuser angelegt..."
echo "Setze Rechte für \"loginuser\""
echo "Rechte gesetzt..."
echo "Verbiete login für ROOT..."
sudo tee /etc/ssh/sshd_config >> /dev/null << 'EOF'
loginuser ALL=(ALL) NOPASSWD: /usr/bin/cp /etc/watchdog.conf /etc/watchdog.conf.bak
loginuser ALL=(ALL) NOPASSWD: /usr/bin/tee /etc/watchdog.conf, /usr/bin/tee -a /etc/watchdog.conf
loginuser ALL=(ALL) NOPASSWD: /usr/bin/sed -i
loginuser ALL=(ALL) NOPASSWD: /usr/bin/sed -r 's/[x]+/,/g'
loginuser ALL=(ALL) NOPASSWD: /usr/bin/fbset -s
loginuser ALL=(ALL) NOPASSWD: /usr/bin/hostnamectl set-hostname
loginuser ALL=(ALL) NOPASSWD: /usr/sbin/dhclient eth0
loginuser ALL=(ALL) NOPASSWD: /usr/sbin/reboot
EOF
# Disable root
echo -e "${RED}${NC} Disabling root login..." | tee -a /var/log/install
sudo tee /etc/ssh/sshd_config >/dev/null << 'EOF'
PermitRootLogin no
EOF
sudo passwd -l root
clear
echo "Starte Systemupdate..."
echo "Systemupdate erfolgreich..."
echo "Installierse benötigte Pakete..."
echo "Alle Pakete wurden installiert..."
echo "Lege den Benutzer \"loginuser\" an..."
echo "Loginuser angelegt..."
echo "Setze Rechte für \"loginuser\""
echo "Rechte gesetzt..."
echo "Deaktiviere login für ROOT..."
echo "ROOT login deaktiviert..."
echo "Kopiere erfoderliche Dateie..."
rm ./rps-light-pxe/.gitignore ./rps-light-pxe/LICENSE ./rps-light-pxe/README.md
cp -r ./rps-light-pxe/ /
clear
echo "Starte Systemupdate..."
echo "Systemupdate erfolgreich..."
echo "Installierse benötigte Pakete..."
echo "Alle Pakete wurden installiert..."
echo "Lege den Benutzer \"loginuser\" an..."
echo "Loginuser angelegt..."
echo "Setze Rechte für \"loginuser\""
echo "Rechte gesetzt..."
echo "Deaktiviere login für ROOT..."
echo "ROOT login deaktiviert..."
echo "Spiele erforderliche Daten ein..."
echo "Alle Daten wurden eingespielt..."
echo "Setze alle Dateiberechtigungen..."
sudo chown loginuser:loginuser /home/loginuser/.xinitrc
sudo chown loginuser:loginuser /home/loginuser/.bash_profile
sudo chmod +x /root/remove_unused_kernel.sh
sudo chmod +x /usr/bin/watchdog
sudo chmod +x /usr/bin/chromium-monitor
clear
echo "Starte Systemupdate..."
echo "Systemupdate erfolgreich..."
echo "Installierse benötigte Pakete..."
echo "Alle Pakete wurden installiert..."
echo "Lege den Benutzer \"loginuser\" an..."
echo "Loginuser angelegt..."
echo "Setze Rechte für \"loginuser\""
echo "Rechte gesetzt..."
echo "Deaktiviere login für ROOT..."
echo "ROOT login deaktiviert..."
echo "Spiele erforderliche Daten ein..."
echo "Alle Daten wurden eingespielt..."
echo "Setze alle Dateiberechtigungen..."
echo "Alle Berechtigungen wurden gesetzt..."
echo "Aktiviere benötigte Services..."
sudo systemctl daemon-reload
sudo systemctl enable watchdog
sudo systemctl enable chromium-monitor
sudo systemctl enable getty@tty1
clear
echo "Starte Systemupdate..."
echo "Systemupdate erfolgreich..."
echo "Installierse benötigte Pakete..."
echo "Alle Pakete wurden installiert..."
echo "Lege den Benutzer \"loginuser\" an..."
echo "Loginuser angelegt..."
echo "Setze Rechte für \"loginuser\""
echo "Rechte gesetzt..."
echo "Deaktiviere login für ROOT..."
echo "ROOT login deaktiviert..."
echo "Spiele erforderliche Daten ein..."
echo "Alle Daten wurden eingespielt..."
echo "Setze alle Dateiberechtigungen..."
echo "Alle Berechtigungen wurden gesetzt..."
echo "Aktiviere benötigte Services..."
echo "Watchdog, Chromium und AutoLogin wurden aktiviert..."
echo "Lösche nicht mehr benötigte Kernel..."
sudo bash /root/remove_unused_kernel.sh -u -e
rm /root/remove_unused_kernel.sh
clear
echo "Starte Systemupdate..."
echo "Systemupdate erfolgreich..."
echo "Installierse benötigte Pakete..."
echo "Alle Pakete wurden installiert..."
echo "Lege den Benutzer \"loginuser\" an..."
echo "Loginuser angelegt..."
echo "Setze Rechte für \"loginuser\""
echo "Rechte gesetzt..."
echo "Deaktiviere login für ROOT..."
echo "ROOT login deaktiviert..."
echo "Spiele erforderliche Daten ein..."
echo "Alle Daten wurden eingespielt..."
echo "Setze alle Dateiberechtigungen..."
echo "Alle Berechtigungen wurden gesetzt..."
echo "Aktiviere benötigte Services..."
echo "Watchdog, Chromium und AutoLogin wurden aktiviert..."
echo "Lösche nicht mehr benötigte Kernel..."
echo "Alte Kernel gelöscht..."
echo "Installation komplett..."
echo "Zum Neustarten bitte eine beliebige Taste drücken..."
sudo passwd -l root >>/var/log/install 2>&1 && print_status "Root login disabled"
# Setup logs
echo -e "${RED}${NC} Creating log files..." | tee -a /var/log/install
sudo touch /var/log/watchdog.log /var/log/chromium-monitor.log /var/log/hostname.log >>/var/log/install 2>&1 && print_status "Log files created"
sudo chown loginuser:loginuser /var/log/watchdog.log /var/log/chromium-monitor.log /var/log/hostname.log >>/var/log/install 2>&1 && print_status "Ownership set for log files"
sudo chmod 777 /var/log/watchdog.log /var/log/chromium-monitor.log /var/log/hostname.log >>/var/log/install 2>&1 && print_status "Permissions set for log files"
# Configure services
echo -e "${RED}${NC} Configure services..." | tee -a /var/log/install
sudo systemctl daemon-reload >>/var/log/install 2>&1 && print_status "Daemon reloaded"
sudo systemctl enable hostname chromium-monitor getty@tty1 >>/var/log/install 2>&1 && print_status "Services enabled"
sudo systemctl disable watchdog >>/var/log/install 2>&1 && print_status "Watchdog disabled"
sudo systemctl restart getty@tty1 >>/var/log/install 2>&1 && print_status "getty service restarted"
# Set performance
echo -e "${RED}${NC} Configure performance teaks..." | tee -a /var/log/install
echo "performance" | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor >>/var/log/install 2>&1 && print_status "CPU set to high"
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target >>/var/log/install 2>&1 && print_status "Powercfg off"
# Clean
echo -e "${RED}${NC} Cleaning up installer..." | tee -a /var/log/install
sudo rm -rf ./rps-client >>/var/log/install 2>&1 && print_status "Installer cleaned up"
# Configure VNC-Client
echo -e "${RED}${NC} Configuring VNC..." | tee -a /var/log/install
sudo systemctl enable vncserver-x11-serviced.service >>/var/log/install 2>&1 && print_status "VNC service enabled"
sudo systemctl start vncserver-x11-serviced.service >>/var/log/install 2>&1 && print_status "VNC service started"
CONFIG_FILE="/root/.vnc/config.d/vncserver-x11"
if [ ! -d "$(dirname "$CONFIG_FILE")" ]; then
mkdir -p "$(dirname "$CONFIG_FILE")"
echo -e "${GREEN}${NC} Created directory for VNC config." | tee -a /var/log/install
fi
echo -e "${RED}${NC} Do you want to set a VNC password? (y/n):" | tee -a /var/log/install
read -r config_vnc
if [[ "$config_vnc" =~ ^[Yy](e[Ss]?)?$ ]]; then
vncpasswd
echo -e "${GREEN}${NC} VNC password has been set." | tee -a /var/log/install
else
echo -e "${GREEN}${NC} No VNC password will be set." | tee -a /var/log/install
fi
if [ "$(vncpasswd -o)" = 'none' ]; then
echo "Authentication=none" >> "$CONFIG_FILE"
echo "Geometry=1920x1080" >> "$CONFIG_FILE"
echo "# Version 1.0:" >> "$CONFIG_FILE"
echo "# Created 2024 by Tim Eertmoed, Christian Hampp @ WiS IT-Solutions GmbH, Germany to work on Raspbian as custom PXE init script." >> "$CONFIG_FILE"
print_status "VNC config set to no authentication with geometry 1920x1080." >> /var/log/install 2>&1
else
echo "Authentication=none" >> "$CONFIG_FILE"
echo "Geometry=1920x1080" >> "$CONFIG_FILE"
echo "# Version 1.0:" >> "$CONFIG_FILE"
echo "# Created 2024 by Tim Eertmoed, Christian Hampp @ WiS IT-Solutions GmbH, Germany to work on Raspbian as custom PXE init script." >> "$CONFIG_FILE"
print_status "VNC password is set. Authentication will be required." >> /var/log/install 2>&1
fi
# Remove old kernels
echo -e "${RED}${NC} Do you want to clean up unused kernels? (y/n):" | tee -a /var/log/install
read -r clean_kernels
if [[ "$clean_kernels" =~ ^[Yy](e[Ss]?)?$ ]]; then
echo -e "${RED}${NC} Cleaning up unused kernels..." | tee -a /var/log/install
echo -e "y\ny" | sudo bash ./root/remove_unused_kernel.sh -u -e >>/var/log/install 2>&1 && print_status "Unused kernels cleaned up"
else
echo -e "${RED}${NC} Skipping unused kernel cleanup..." | tee -a /var/log/install
echo -e "${GREEN}${NC} Cleanup has been skipped" | tee -a /var/log/install
fi
# Finish
echo -e "${GREEN}${NC} Installation complete. Press any key to exit..." | tee -a /var/log/install 2>&1
read -n 1 -s
sudo reboot
# Version 1.2:
# Created 2024 by Tim Eertmoed, Christian Hampp @ WiS IT-Solutions GmbH, Germany to work on Raspian as custom pxe init script.

View File

@@ -1 +0,0 @@
Authentication=None

View File

@@ -1,33 +0,0 @@
#!/bin/bash
get_monitor() {
sudo cat /var/lib/dhcp/* | grep -a "option monitor" | tail -1 | \
awk '{ s = ""; for (i = 3; i <= NF; i++) s = s $i " "; print s}' | \
awk -F '"' '{print $2}'
}
get_current_window() {
DISPLAY=:0 xdotool getwindowfocus getwindowname | awk -F '- Chromium' '{print $1}'
}
monitor=""
while [ -z "$monitor" ]; do
monitor=$(get_monitor)
if [ -z "$monitor" ]; then
sleep 5
fi
done
monitor_md5=$(echo -n ${monitor^^} | sed -e 's/^[[:space:]]*//' | md5sum | awk '{print $1}')
while true; do
new_monitor=$(get_monitor)
new_current=$(get_current_window)
if [ -n "$new_monitor" ] && [ -n "$new_current" ]; then
new_monitor_md5=$(echo -n ${new_monitor^^} | sed -e 's/^[[:space:]]*//' | md5sum | awk '{print $1}')
current_md5=$(echo -n ${new_current^^} | sed -e 's/^[[:space:]]*//' | md5sum | awk '{print $1}')
if [ "$new_monitor_md5" != "$monitor_md5" ] && [ "$current_md5" != "$monitor_md5" ]; then
echo "Mismatch detected. Rebooting now."
sudo reboot
exit 1
fi
else
echo "Either monitor or current is not available, skipping check."
fi
sleep 5s
done

View File

@@ -1,19 +0,0 @@
#!/bin/bash
watchdog=$(sudo cat /var/lib/dhcp/* | grep -a "option watchdog" | tail -1 | \
awk '{for (i=3; i<=NF; i++) printf "%s ", $i}' | tr -d '";')
IFS=' ' read -r -a ip_array <<< "$watchdog"
config_file="/etc/watchdog.conf"
sudo cp "$config_file" "$config_file.bak"
sudo sed -i '/ping/d' "$config_file"
sudo sed -i '/^interval/d' "$config_file"
echo "interval = 60" | sudo tee -a "$config_file" > /dev/null
if [ ${#ip_array[@]} -eq 0 ]; then
sudo sed -i '/interval/d' "$config_file"
echo "No IP addresses found. Watchdog configuration cleared." >&2
sudo systemctl stop watchdog
else
for ip in "${ip_array[@]}"; do
echo "ping = $ip" | sudo tee -a "$config_file" > /dev/null
done
fi
sudo systemctl restart watchdog