-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvmwsmr.sh
More file actions
63 lines (50 loc) · 1.6 KB
/
vmwsmr.sh
File metadata and controls
63 lines (50 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/bash
set -e
# Load Configuration
CONFIG_FILE="/etc/vmwsmr/vmwsmr.conf"
if [ -f "$CONFIG_FILE" ]; then
source "$CONFIG_FILE"
else
echo "ERROR: Config file not found at $CONFIG_FILE"
exit 1
fi
# Set Dynamic Variables
KERN_VER=$(uname -r)
VMWARE_MODULE_DIR="$VMWARE_MOD_BASE/$KERN_VER/misc"
SIGN_SCRIPT="/usr/src/linux-headers-$KERN_VER/scripts/sign-file"
PRIV_KEY="$KEY_DIR/$PRIV_KEY_NAME"
DER_KEY="$KEY_DIR/$DER_KEY_NAME"
echo "Starting VMware module rebuild for kernel $KERN_VER..."
# Check requirements
if [ ! -f "$SIGN_SCRIPT" ]; then
echo "ERROR: Signing script not found at $SIGN_SCRIPT. Ensure linux-headers-generic is installed."
exit 1
fi
if [ ! -f "$PRIV_KEY" ]; then
echo "ERROR: Private key not found at $PRIV_KEY. Run setup.sh again."
exit 1
fi
# 1. Recompile modules
# We ignore the error code because service start will fail due to unsigned modules
/usr/bin/vmware-modconfig --console --install-all || true
# 2. Sign the modules
if [ ! -f "$VMWARE_MODULE_DIR/vmmon.ko" ]; then
echo "ERROR: vmmon.ko was not found. Compilation failed."
exit 1
fi
echo "Signing vmmon..."
"$SIGN_SCRIPT" sha256 "$PRIV_KEY" "$DER_KEY" "$VMWARE_MODULE_DIR/vmmon.ko"
echo "Signing vmnet..."
"$SIGN_SCRIPT" sha256 "$PRIV_KEY" "$DER_KEY" "$VMWARE_MODULE_DIR/vmnet.ko"
# 3. Load the modules explicitly
echo "Loading modules..."
modprobe vmmon
modprobe vmnet
echo "VMware module rebuild and sign complete."
# # 4. Start vmware service
# echo "Stopping vmware service..."
# systemctl stop vmware
# # Add a short delay
# ping -c5 localhost
# echo "Starting vmware service..."
# systemctl start vmware