mirror of
https://github.com/blakeblackshear/frigate.git
synced 2025-08-08 13:51:01 +02:00
Update user_installation.sh
This commit is contained in:
parent
58df5b01f6
commit
ae5cf0679c
@ -1,49 +1,84 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
set -e # Exit immediately if any command fails
|
||||||
set -e # Exit on error
|
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
|
#############################################
|
||||||
|
# Function to install a specific package version (latest in the 1.2 series)
|
||||||
|
# and mark it as held.
|
||||||
|
install_and_hold() {
|
||||||
|
local package="$1"
|
||||||
|
echo "Processing package: $package..."
|
||||||
|
|
||||||
|
# Retrieve versions from apt-cache policy that match the 1.2 series.
|
||||||
|
# This grep pattern handles lines that begin with optional whitespace,
|
||||||
|
# and optionally a '***' marker (with whitespace before and after),
|
||||||
|
# followed by a version number starting with "1.2".
|
||||||
|
local versions
|
||||||
|
versions=$(apt-cache policy "$package" | grep -E '^\s*(\*{3}\s*)?1\.2' | awk '{if($1=="***") print $2; else print $1}')
|
||||||
|
|
||||||
|
# Check if any 1.2 versions were found.
|
||||||
|
if [ -z "$versions" ]; then
|
||||||
|
echo "No 1.2 versions found for package $package" >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Sort versions in a version-aware manner and pick the latest one.
|
||||||
|
local latest
|
||||||
|
latest=$(echo "$versions" | sort -V | tail -n 1)
|
||||||
|
echo "Latest 1.2.x version of $package is: $latest"
|
||||||
|
|
||||||
|
# Install the specific version.
|
||||||
|
echo "Installing $package version $latest... "
|
||||||
|
sudo apt install -y "${package}=${latest}" || { echo "Installation of ${package} version ${latest} failed." >&2; return 1; }
|
||||||
|
|
||||||
|
# Mark the package on hold so it is not automatically upgraded.
|
||||||
|
echo "Marking $package at version $latest as held..."
|
||||||
|
sudo apt-mark hold "$package" || { echo "Failed to hold package $package." >&2; return 1; }
|
||||||
|
|
||||||
|
echo "Package $package installed and pinned at version $latest successfully."
|
||||||
|
echo "-------------------------------------------"
|
||||||
|
}
|
||||||
|
#############################################
|
||||||
|
|
||||||
echo "Starting MemryX driver and runtime installation..."
|
echo "Starting MemryX driver and runtime installation..."
|
||||||
|
|
||||||
# Detect architecture
|
# Detect architecture
|
||||||
arch=$(uname -m)
|
arch=$(uname -m)
|
||||||
|
|
||||||
if [[ -d /sys/memx0/ ]]; then
|
# Purge existing packages and repo
|
||||||
echo "Existing functional MX3 driver found. Skipping driver re-install."
|
echo "Removing old MemryX installations..."
|
||||||
else
|
sudo apt purge -y memx-* || true
|
||||||
|
sudo rm -f /etc/apt/sources.list.d/memryx.list /etc/apt/trusted.gpg.d/memryx.asc
|
||||||
|
|
||||||
# Purge existing packages and repo
|
# Install kernel headers
|
||||||
echo "Removing old MemryX installations..."
|
echo "Installing kernel headers for: $(uname -r)"
|
||||||
sudo apt purge -y memx-* || true
|
sudo apt update
|
||||||
sudo rm -f /etc/apt/sources.list.d/memryx.list /etc/apt/trusted.gpg.d/memryx.asc
|
sudo apt install -y linux-headers-$(uname -r)
|
||||||
|
|
||||||
# Install kernel headers
|
# Add MemryX key and repo
|
||||||
echo "Installing kernel headers for: $(uname -r)"
|
echo "Adding MemryX GPG key and repository..."
|
||||||
sudo apt update
|
wget -qO- https://developer.memryx.com/deb/memryx.asc | sudo tee /etc/apt/trusted.gpg.d/memryx.asc >/dev/null
|
||||||
sudo apt install -y linux-headers-$(uname -r)
|
echo 'deb https://developer.memryx.com/deb stable main' | sudo tee /etc/apt/sources.list.d/memryx.list >/dev/null
|
||||||
|
|
||||||
# Add MemryX key and repo
|
# Update and install memx-drivers using install_and_hold function.
|
||||||
echo "Adding MemryX GPG key and repository..."
|
echo "Installing memx-drivers..."
|
||||||
wget -qO- https://developer.memryx.com/deb/memryx.asc | sudo tee /etc/apt/trusted.gpg.d/memryx.asc >/dev/null
|
sudo apt update
|
||||||
echo 'deb https://developer.memryx.com/deb stable main' | sudo tee /etc/apt/sources.list.d/memryx.list >/dev/null
|
install_and_hold "memx-drivers"
|
||||||
|
|
||||||
# Update and install packages
|
# ARM-specific board setup
|
||||||
echo "Installing memx-drivers..."
|
if [[ "$arch" == "aarch64" || "$arch" == "arm64" ]]; then
|
||||||
sudo apt update
|
echo " Running ARM board setup..."
|
||||||
sudo apt install -y memx-drivers
|
sudo mx_arm_setup
|
||||||
|
|
||||||
# ARM-specific board setup
|
|
||||||
if [[ "$arch" == "aarch64" || "$arch" == "arm64" ]]; then
|
|
||||||
echo " Running ARM board setup..."
|
|
||||||
sudo mx_arm_setup
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -e "\n\n\033[1;31mYOU MUST RESTART YOUR COMPUTER NOW\033[0m\n\n"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Install mxa-manager
|
echo -e "\n\n\033[1;31mYOU MUST RESTART YOUR COMPUTER NOW\033[0m\n\n"
|
||||||
echo "Installing mxa-manager..."
|
|
||||||
sudo apt install -y memx-accl mxa-manager
|
# Install mxa-manager and memx-accl using install_and_hold
|
||||||
|
# List of packages to process.
|
||||||
|
packages=("memx-accl" "mxa-manager")
|
||||||
|
for pkg in "${packages[@]}"; do
|
||||||
|
install_and_hold "$pkg"
|
||||||
|
done
|
||||||
|
|
||||||
# Update the configuration file to set the listen address to 0.0.0.0
|
# Update the configuration file to set the listen address to 0.0.0.0
|
||||||
echo "Configuring mxa_manager.conf to listen on 0.0.0.0..."
|
echo "Configuring mxa_manager.conf to listen on 0.0.0.0..."
|
||||||
|
Loading…
Reference in New Issue
Block a user