Professionelle Grafikkarte AMD FirePro 2100 unter Debian installieren

Die Inbetriebnahme einer professionellen Grafikkarte AMD FirePro 2100 gestaltet sich unter Debian sehr einfach, wenn auch ein kleiner Trick nötig ist. Der Hersteller bietet unter folgendem Link die Treibersoftware als Download für RedHat Enterprise Linux, CentOS, Ubuntu und SUSE Linux Enterprise Desktop an: http://support.amd.com/en-us/download/workstation?os=Linux+x86_64#pro-driver

Für Debian lädt man einfach die Ubuntu-Software herunter, schließlich basiert Ubuntu auf Debian. Im Download-Paket amdgpu-pro-17.40-492261.tar.xz1) befinden sich diverse Debian-Pakete (deb) und ein Shell-Skript, welches die Installation der Pakete durchführt. Führt man dieses Skript (als root) aus, erscheint die Meldung

Unsupported OS

Von soetwas lässt sich ein abgebrühter Programmierer wie ich es bin natürlich nicht aufhalten. Einfach das Shell-Skript mit einem Texteditor wie nano öffnen und nach dem String Unsupported OS suchen.

nano amdgpu-pro-install

STRG+W zum Suchen drücken

amdgpu-pro-install.part
#!/bin/bash
#
# Copyright 2016 Advanced Micro Devices, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
# THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
 
set -e
 
REPOSITORY="/var/opt/amdgpu-pro-local"
 
usage() {
	cat <<END_USAGE
Usage: $PROG [options...]
 
Options:
  -h|--help  display this help message
  --px       PX platform support
  --compute  OpenCL support only
 
  Unless the -h|--help option is given, 'apt-get' options may be present.
 
END_USAGE
}
 
function stderr() {
	cat - 1>&2
}
 
function os_release() {
	[[ -r  /etc/os-release ]] && . /etc/os-release
 
	case "$ID" in
	ubuntu)
		PACKAGES="amdgpu-pro amdgpu-pro-lib32 amdgpu-pro-dkms"
		;;
	steamos)
		PACKAGES="amdgpu-pro-driver amdgpu-pro-lib32 "`
			`"glx-alternative-amdgpu-pro amdgpu-pro-dkms"
		;;
	*)
		echo "Unsupported OS" | stderr
		exit 1
		;;
	esac
}
#[...]

In der Funktion os_release() finden wir den String in Zeile 57. Einfach in Zeile 49 ubuntu durch debian ersetzen und schon läuft das Skript durch. Rechner neustarten und das neue Kernelmodul wird sofort geladen und läuft einwandfrei.

amdgpu-pro-install
#!/bin/bash
#
# Copyright 2016 Advanced Micro Devices, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
# THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
 
set -e
 
REPOSITORY="/var/opt/amdgpu-pro-local"
 
usage() {
	cat <<END_USAGE
Usage: $PROG [options...]
 
Options:
  -h|--help  display this help message
  --px       PX platform support
  --compute  OpenCL support only
 
  Unless the -h|--help option is given, 'apt-get' options may be present.
 
END_USAGE
}
 
function stderr() {
	cat - 1>&2
}
 
function os_release() {
	[[ -r  /etc/os-release ]] && . /etc/os-release
 
	case "$ID" in
	debian)
		PACKAGES="amdgpu-pro amdgpu-pro-lib32 amdgpu-pro-dkms"
		;;
	steamos)
		PACKAGES="amdgpu-pro-driver amdgpu-pro-lib32 "`
			`"glx-alternative-amdgpu-pro amdgpu-pro-dkms"
		;;
	*)
		echo "Unsupported OS" | stderr
		exit 1
		;;
	esac
}
 
function source_list() {
	local dir etc sourceparts
 
	eval $(apt-config shell dir Dir)
	eval $(apt-config shell etc Dir::Etc)
	eval $(apt-config shell sourceparts Dir::Etc::sourceparts)
 
	echo ${dir%/}/${etc%/}/${sourceparts%/}/amdgpu-pro.list
}
 
function amdgpu_pro_install() {
	local src=$(cd ${0%/*} && pwd -P)
	local index="$src/Packages"
 
	amdgpu_pro_uninstall "$@"
 
	if [[ -r "$index" ]]; then
		$SUDO mkdir -p $REPOSITORY && $SUDO cp -af "$src"/* $_
		$SUDO ln -s $_/$PROG $SBIN/${PROG%-*}-uninstall
 
		echo "deb [ trusted=yes ] file:$REPOSITORY/ ./" | \
			$SUDO tee $(source_list)
		$SUDO apt-get update ||:
		$SUDO apt-get "$@" install $PACKAGES
	fi
}
 
function amdgpu_pro_uninstall() {
	local p
	local installed=()
 
	[[ -r "$(source_list)" ]] || return 0
 
	for p in $(cat $REPOSITORY/Packages | awk '{
		if ($1 == "Package:")
			p = $2;
		else if ($1 == "Architecture:")
			print p ":" $2
	}')
	do
		if dpkg -s $p >/dev/null 2>&1; then
			installed+=($p)
		fi
	done
 
	if [[ ${#installed[@]} -ne 0 ]]; then
		$SUDO apt-get "$@" remove --purge ${installed[@]}
	fi
 
	$SUDO rm -rf $SBIN/${PROG%-*}-uninstall $(source_list) $REPOSITORY
	$SUDO apt-get update ||:
}
 
PROG=${0##*/}
SUDO=$([[ $(id -u) -ne 0 ]] && echo "sudo" ||:)
SBIN="/usr/bin"
os_release
 
while (($#))
do
	case "$1" in
	-h|--help)
		usage
		exit 0
		;;
	--px)
		PACKAGES="$PACKAGES xserver-xorg-video-modesetting-amdgpu-pro"
		shift
		;;
	--compute)
		PACKAGES="clinfo-amdgpu-pro opencl-amdgpu-pro-icd \
			amdgpu-pro-dkms libdrm2-amdgpu-pro \
			libdrm-amdgpu-pro-amdgpu1"
		shift
		;;
	*)
		ARGS+="$1 "
		shift
		;;
	esac
done
 
set -- $ARGS
amdgpu_pro_${0##*-} "$@"

Getestet auf einer Dell Precision T3420 Workstation mit Debian 9 und zwei angeschlossenen Monitoren von Dell.

Links in diesem Artikel stammen vom 18.11.2017 und wurden an diesem Datum zuletzt auf Existenz überprüft.

1) Sollte das Download-Paket einmal nicht mehr angeboten werden: Einfach an uns wenden, wir betreiben für unsere Kunden eigene Spigel-Server auf denen wir dieses Paket archiviert haben.