58 lines
1.7 KiB
Bash
58 lines
1.7 KiB
Bash
#!/bin/bash
|
|
# Names of packages under different distros
|
|
PACKAGES_DEBIAN="uhd-host"
|
|
PACKAGES_RHEL="uhd-tools uhd-devel uhd soapy-uhd"
|
|
if [[ $EUID -ne 0 ]]; then
|
|
echo "Error: This script must be run as root. Exiting." >&2
|
|
exit 1
|
|
fi
|
|
|
|
|
|
# Function to determine the Linux distribution
|
|
detect_distro() {
|
|
if [[ -f /etc/os-release ]]; then
|
|
. /etc/os-release
|
|
DISTRO_ID=$ID
|
|
elif command -v lsb_release >/dev/null 2>&1; then
|
|
DISTRO_ID=$(lsb_release -si | tr '[:upper:]' '[:lower:]')
|
|
elif [[ -f /etc/debian_version ]]; then
|
|
DISTRO_ID="debian"
|
|
elif [[ -f /etc/fedora-release ]]; then
|
|
DISTRO_ID="fedora"
|
|
else
|
|
DISTRO_ID="unknown"
|
|
fi
|
|
|
|
echo "$DISTRO_ID"
|
|
}
|
|
|
|
|
|
# Check distro version to install correct packages
|
|
DISTRO_ID=$(detect_distro)
|
|
case "$DISTRO_ID" in
|
|
debian|ubuntu|pop|linuxmint|elementary|kali)
|
|
apt install -y $PACKAGES_DEBIAN
|
|
;;
|
|
|
|
fedora|rhel|centos)
|
|
yum install -y $PACKAGES_RHEL
|
|
;;
|
|
esac
|
|
|
|
|
|
# Ensuring Environment variables
|
|
#export UHD_IMAGES_DIR=/usr/lib/ettus/ # User specific alternative
|
|
echo "UHD_IMAGES_DIR=/usr/lib/ettus/" >> /etc/environment # Ensure env across multiple installs on multiple users.
|
|
echo "UHD_IMAGES_DIR=/usr/lib/ettus/" >> ~/.bashrc
|
|
source /etc/environment
|
|
export UHD_IMAGES_DIR=/usr/lib/ettus/
|
|
|
|
# Copying Firmware files
|
|
mkdir /usr/lib/ettus/ # Create the library folder
|
|
cp -r ./firmware/* /usr/lib/ettus/ # Copy firmware files
|
|
chown -R root:root /usr/lib/ettus/ # Ensure root owns the files
|
|
chmod 776 -R /usr/lib/ettus/ # This makes only root able to change the folder and file content
|
|
|
|
uhd_find_devices # Needs to identify before it flashes
|
|
uhd_image_loader --download --args type=b200 # Flashes from the directory the file is in.
|