Skip to content

Commit a424e64

Browse files
committed
[ALL] Fix Service Failures during Boot (resolve issue 3)
1 parent 321c263 commit a424e64

File tree

2 files changed

+29
-53
lines changed

2 files changed

+29
-53
lines changed

buildroot-external/rootfs-overlay/usr/lib/systemd/system/connectivity-check.service

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
DefaultDependencies=no
33
After=nss-lookup.target
44
Before=network-online.target
5-
Type=oneshot
6-
RemainAfterExit=yes
75

86
[Service]
7+
Type=oneshot
8+
RemainAfterExit=yes
99
ExecStart=sh -c 'while ! ping -c 1 docker.io; do sleep 1; done'
1010

1111
[Install]
Lines changed: 27 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,57 @@
11
#!/bin/sh
22
# Credits go to: https://github.com/home-assistant/operating-system/
3-
set -e
4-
5-
#### Options ####
3+
set -e # Exit on any command failure
64

5+
# Options
76
TYPE=""
8-
MOUNT=""
9-
DEVICE=""
107
SIZE=0
8+
MOUNT=""
119

12-
#### Parse arguments ####
13-
14-
while [ "$1" != "" ]; do
15-
key=$1
16-
case $key in
17-
-t|--type)
18-
TYPE=$2
19-
shift
20-
;;
21-
-s|--size)
22-
SIZE=$2
23-
shift
24-
;;
25-
-m|--mount)
26-
MOUNT=$2
27-
shift
28-
;;
29-
*)
30-
echo "[Error] $0 : Argument '$1' unknown"
31-
exit 1
32-
;;
10+
# Parse arguments
11+
while [ "$#" -gt 0 ]; do
12+
case "$1" in
13+
-t|--type) TYPE="$2"; shift 2 ;;
14+
-s|--size) SIZE="$2"; shift 2 ;;
15+
-m|--mount) MOUNT="$2"; shift 2 ;;
16+
*) echo "Error: Invalid argument '$1'"; exit 1 ;;
3317
esac
34-
shift
3518
done
3619

37-
# Valide Type
20+
# Validate Type
3821
if [ "$TYPE" != "swap" ] && [ "$TYPE" != "fs" ]; then
39-
echo "[Error] Type unknown!"
22+
echo "Error: Type must be 'swap' or 'fs'"
4023
exit 1
4124
fi
4225

43-
# Lookup device
26+
# Determine device based on type and mount
27+
DEVICE="/dev/zram"
4428
if [ "$TYPE" = "swap" ]; then
45-
DEVICE="/dev/zram0"
29+
DEVICE+="0"
4630
elif [ "$MOUNT" = "var" ]; then
47-
DEVICE="/dev/zram1"
48-
#elif [ "$MOUNT" = "tmp" ]; then
49-
# DEVICE="/dev/zram1"
31+
DEVICE+="1"
5032
else
51-
echo "[Error] No device for lookup!"
33+
echo "Error: No device for lookup!"
5234
exit 1
5335
fi
5436

55-
# Calc 20% of memory for ZRAM swap partition
56-
if [ "$TYPE" = "swap" ] && [ "$SIZE" -eq "0" ]; then
57-
SIZE="$(awk '/MemTotal/{ print $2 * 0.20 }' /proc/meminfo)K"
37+
# Calculate 20% of memory for ZRAM swap partition if not specified
38+
if [ "$TYPE" = "swap" ] && [ "$SIZE" -eq 0 ]; then
39+
SIZE=$(awk '/MemTotal/{ print int($2 * 0.20) }' /proc/meminfo)K
5840
fi
5941

60-
# Init device
42+
# Initialize ZRAM device
6143
zramctl "$DEVICE" -s "$SIZE" -a lz4
6244

63-
# Swap
45+
# Setup based on type
6446
if [ "$TYPE" = "swap" ]; then
6547
mkswap -L "ovos-zramswap" "$DEVICE"
66-
fi
67-
68-
# FileSystem
69-
if [ "$TYPE" = "fs" ]; then
48+
elif [ "$TYPE" = "fs" ]; then
7049
mkfs.ext4 -L "ovos-$MOUNT" -O ^has_journal "$DEVICE"
7150
fi
7251

73-
# Copy persistent file structures into zram device
52+
# Handle var mount
7453
if [ "$MOUNT" = "var" ]; then
75-
# Check if this is a first run
76-
if [ ! -d /mnt/data/var ]; then
77-
mkdir -p /mnt/data/var
78-
cp -af /var/* /mnt/data/var/
79-
fi
80-
cp -af /mnt/data/var/* "$DEVICE"
54+
VAR_DIR="/mnt/data/var"
55+
[ ! -d "$VAR_DIR" ] && mkdir -p "$VAR_DIR" && cp -af /var/* "$VAR_DIR"
56+
cp -af "$VAR_DIR"/* "$DEVICE"
8157
fi

0 commit comments

Comments
 (0)