Merge #421: Fix multi gpu detection on Linux

This commit is contained in:
Dylan Araps 2016-11-06 10:15:43 +11:00
parent 954b0ee203
commit 84c0803f77
1 changed files with 10 additions and 1 deletions

View File

@ -968,7 +968,16 @@ getgpu() {
if [ -f "/tmp/neofetch/gpu" ]; then
source "/tmp/neofetch/gpu"
else
gpu="$(PATH="/sbin:$PATH" lspci -mm | awk -F '\\"|\\" \\"' '/3D|VGA/ {print $3 " " $4}')"
bdf_number="$(PATH="/sbin:$PATH" lspci -k | grep -A2 'VGA' | grep -B2 'Kernel driver in use' | awk '/^\w/ {print $1}')"
if [ -z "$bdf_number" ]; then
# Fallback if no kernel driver is in use
gpu="$(PATH="/sbin:$PATH" lspci -mm | awk -F '\\"|\\" \\"' '/3D|VGA/ {print $3 " " $4}')"
else
# Find the currently used GPU by its BDF
gpu="$(PATH="/sbin:$PATH" lspci -mm | awk -v bdf_number="$bdf_number" -F '\\"|\\" \\"' '$0 ~ bdf_number {print $3 " " $4}')"
fi
case "$gpu" in
intel*) gpu="Intel Integrated Graphics" ;;