From 0efdd68f1783a06f3214607fc313db50747fbc43 Mon Sep 17 00:00:00 2001 From: Rodrigo Luzuriaga Date: Wed, 4 Sep 2024 12:32:54 -0700 Subject: [PATCH] Add graphics card information to hardware inventory --- .../FOG/FOS/rootfs_overlay/bin/fog.inventory | 13 ++++++++++++- .../rootfs_overlay/usr/share/fog/lib/funcs.sh | 18 ++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/Buildroot/board/FOG/FOS/rootfs_overlay/bin/fog.inventory b/Buildroot/board/FOG/FOS/rootfs_overlay/bin/fog.inventory index 0cf3bdc..6ab6d3a 100755 --- a/Buildroot/board/FOG/FOS/rootfs_overlay/bin/fog.inventory +++ b/Buildroot/board/FOG/FOS/rootfs_overlay/bin/fog.inventory @@ -4,6 +4,7 @@ [[ $deployed -eq 1 ]] && . /bin/fog.checkin getHardDisk doInventory +gpu_array_length=${#graphics_vendors_array[@]} if [[ -z $1 ]]; then echo -e "\n\n\n" echo " +---------------------------+" @@ -81,9 +82,19 @@ if [[ -z $1 ]]; then echo "$caseserial" dots "Case Asset Number:" echo "$caseasset" + usleep 1000000 + echo " +---------------------------+" + echo " | GPU Information |" + echo " +---------------------------+" + for (( i=0; i<$gpu_array_length; i++ )); do + dots "GPU-$i Manufacturer:" + echo ${graphics_vendors_array[$i]} + dots "GPU-$i Product:" + echo ${graphics_products_array[$i]} + done echo -e "\n\n\n" fi -poststring="mac=${mac}&sysman=${sysman64}&sysproduct=${sysproduct64}&sysversion=${sysversion64}&sysserial=${sysserial64}&sysuuid=${sysuuid64}&systype=${systype64}&biosversion=${biosversion64}&biosvendor=${biosvendor64}&biosdate=${biosdate64}&mbman=${mbman64}&mbproductname=${mbproductname64}&mbversion=${mbversion64}&mbserial=${mbserial64}&mbasset=${mbasset64}&cpuman=${cpuman64}&cpuversion=${cpuversion64}&cpucurrent=${cpucurrent64}&cpumax=${cpumax64}&mem=${mem64}&hdinfo=${hdinfo64}&caseman=${caseman64}&casever=${casever64}&caseserial=${caseserial64}&caseasset=${caseasset64}" +poststring="mac=${mac}&sysman=${sysman64}&sysproduct=${sysproduct64}&sysversion=${sysversion64}&sysserial=${sysserial64}&sysuuid=${sysuuid64}&systype=${systype64}&biosversion=${biosversion64}&biosvendor=${biosvendor64}&biosdate=${biosdate64}&mbman=${mbman64}&mbproductname=${mbproductname64}&mbversion=${mbversion64}&mbserial=${mbserial64}&mbasset=${mbasset64}&cpuman=${cpuman64}&cpuversion=${cpuversion64}&cpucurrent=${cpucurrent64}&cpumax=${cpumax64}&mem=${mem64}&hdinfo=${hdinfo64}&caseman=${caseman64}&casever=${casever64}&caseserial=${caseserial64}&caseasset=${caseasset64}&gpuvendors=${inventory_graphics_vendor64}&gpuproducts=${inventory_graphics_product64}" count=0 res="" while [[ -z $res ]]; do diff --git a/Buildroot/board/FOG/FOS/rootfs_overlay/usr/share/fog/lib/funcs.sh b/Buildroot/board/FOG/FOS/rootfs_overlay/usr/share/fog/lib/funcs.sh index 56cb1ba..031fa13 100644 --- a/Buildroot/board/FOG/FOS/rootfs_overlay/usr/share/fog/lib/funcs.sh +++ b/Buildroot/board/FOG/FOS/rootfs_overlay/usr/share/fog/lib/funcs.sh @@ -81,8 +81,26 @@ verifyNetworkConnection() { validResizeOS() { [[ $osid != @([1-2]|4|[5-7]|9|10|11|50|51) ]] && handleError " * Invalid operating system id: $osname ($osid) (${FUNCNAME[0]})\n Args Passed: $*" } +# Gets the graphics information from the system +getGraphics() { + local graphics_info=$(lshw -json -C display | jq -r '.[] | select(.vendor != null) | "\(.vendor),\(.product)"') + + graphics_vendors_array=() + graphics_products_array=() + while IFS=',' read -r vendor product; do + graphics_vendors_array+=("$vendor") + graphics_products_array+=("$product") + done <<< "$graphics_info" + + inventory_graphics_vendor=$(IFS=,; echo "${graphics_vendors_array[*]}") + inventory_graphics_product=$(IFS=,; echo "${graphics_products_array[*]}") + + inventory_graphics_vendor64=$(echo "$inventory_graphics_vendor" | base64) + inventory_graphics_product64=$(echo "$inventory_graphics_product" | base64) +} # Gets the information from the system for inventory doInventory() { + getGraphics sysman=$(dmidecode -s system-manufacturer) sysproduct=$(dmidecode -s system-product-name) sysversion=$(dmidecode -s system-version)