mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2025-11-18 03:26:17 +00:00
64 lines
2.1 KiB
Bash
64 lines
2.1 KiB
Bash
|
|
diff --git a/install_coral_pve9.sh b/install_coral_pve9.sh
|
||
|
|
index 1111111..2222222 100755
|
||
|
|
--- a/install_coral_pve9.sh
|
||
|
|
+++ b/install_coral_pve9.sh
|
||
|
|
@@ -1,5 +1,58 @@
|
||
|
|
#!/usr/bin/env bash
|
||
|
|
# ==========================================================
|
||
|
|
# ProxMenux - Coral TPU Installer for Proxmox VE 9
|
||
|
|
# ==========================================================
|
||
|
|
|
||
|
|
+# ----------------------------------------------------------
|
||
|
|
+# Ensure apex group and udev rules are present
|
||
|
|
+# ----------------------------------------------------------
|
||
|
|
+ensure_apex_group_and_udev() {
|
||
|
|
+ msg_info "Ensuring apex group and udev rules..."
|
||
|
|
+
|
||
|
|
+ # Create the apex group if it doesn't exist
|
||
|
|
+ if ! getent group apex >/dev/null; then
|
||
|
|
+ groupadd --system apex
|
||
|
|
+ msg_ok "System group 'apex' created"
|
||
|
|
+ else
|
||
|
|
+ msg_ok "System group 'apex' already exists"
|
||
|
|
+ fi
|
||
|
|
+
|
||
|
|
+ # Add or replace local udev rule for Coral / APEX TPU
|
||
|
|
+ cat >/etc/udev/rules.d/99-coral-apex.rules <<'EOF'
|
||
|
|
+# Coral / Google APEX TPU (M.2 / PCIe)
|
||
|
|
+# Assigns group "apex" and safe permissions to device nodes
|
||
|
|
+KERNEL=="apex_*", GROUP="apex", MODE="0660"
|
||
|
|
+SUBSYSTEM=="apex", GROUP="apex", MODE="0660"
|
||
|
|
+EOF
|
||
|
|
+
|
||
|
|
+ # If gasket-dkms rule exists, make sure it uses the correct group
|
||
|
|
+ if [[ -f /usr/lib/udev/rules.d/60-gasket-dkms.rules ]]; then
|
||
|
|
+ sed -i 's/GROUP="[^"]*"/GROUP="apex"/g' /usr/lib/udev/rules.d/60-gasket-dkms.rules || true
|
||
|
|
+ fi
|
||
|
|
+
|
||
|
|
+ # Reload and apply udev rules
|
||
|
|
+ udevadm control --reload-rules
|
||
|
|
+ udevadm trigger --subsystem-match=apex || true
|
||
|
|
+
|
||
|
|
+ msg_ok "apex group and udev rules are in place"
|
||
|
|
+
|
||
|
|
+ # Verify device nodes after reload
|
||
|
|
+ if ls -l /dev/apex_* 2>/dev/null | grep -q ' apex '; then
|
||
|
|
+ msg_ok "Coral TPU device nodes detected with correct group (apex)"
|
||
|
|
+ else
|
||
|
|
+ msg_warn "apex device node not found yet; a reboot may be required"
|
||
|
|
+ fi
|
||
|
|
+}
|
||
|
|
+
|
||
|
|
+
|
||
|
|
@@ -210,6 +263,10 @@ install_coral_host() {
|
||
|
|
msg_ok "DKMS module built and installed successfully"
|
||
|
|
fi
|
||
|
|
|
||
|
|
+ # Ensure group and udev setup before loading drivers
|
||
|
|
+ ensure_apex_group_and_udev
|
||
|
|
+
|
||
|
|
+ # Load kernel modules
|
||
|
|
modprobe gasket >>"$LOG_FILE" 2>&1 || true
|
||
|
|
modprobe apex >>"$LOG_FILE" 2>&1 || true
|
||
|
|
sleep 1
|