#!/bin/bash # This file is part of the "vgpu_unlock" project, and is distributed under the MIT License. # See the LICENSE file for more details. help_function() { echo "This script checks for the internal names of vGPU profiles." echo echo "Usage: $0 [-h] [-p <[VGPU_NAME]|ALL>]" echo "Options:" echo "-h Display the help page." echo "-p Display selected VGPU_NAME or ALL profiles." exit 0; } process_id() { echo "$(cat "$1"/name): $(basename "$1" | cut -d '/' -f 8)" } list_all_ids() { for gpu in $(lspci -Dd 10de: -s 0 -n | awk '$2 ~ /030[02]/{print $1}'); do if [ -d "/sys/bus/pci/devices/$gpu/mdev_supported_types/" ]; then for gpu_type in /sys/bus/pci/devices/"$gpu"/mdev_supported_types/* ; do process_id "$gpu_type" done exit fi done } get_pciid() { for gpu in $(lspci -Dd 10de: -s 0 -n | awk '$2 ~ /030[02]/{print $1}'); do if [ -d "/sys/bus/pci/devices/$gpu/mdev_supported_types/" ]; then if [ ! -z "$(grep -l "$1" /sys/bus/pci/devices/"$gpu"/mdev_supported_types/nvidia-*/name)" ]; then grep -l "$1" /sys/bus/pci/devices/"$gpu"/mdev_supported_types/nvidia-*/name | cut -d '/' -f 8 exit fi fi done } while getopts ":p:" option; do case "${option}" in p) p=${OPTARG} ;; *) help_function ;; esac done shift $((OPTIND-1)) if [ -z "${p}" ]; then help_function fi if [ "$p" = "ALL" ]; then list_all_ids else get_pciid "$p" fi exit 1