commit c3343968433435ce3f509158fb2f096dc4f1ff99 Author: Ward Date: Thu Feb 23 22:04:10 2023 +0200 first commit diff --git a/orig.source.txt b/orig.source.txt new file mode 100644 index 0000000..ca94e91 --- /dev/null +++ b/orig.source.txt @@ -0,0 +1 @@ +Source is this git's root diff --git a/pika-amdgpu-core/debian/changelog b/pika-amdgpu-core/debian/changelog new file mode 100644 index 0000000..576cb1e --- /dev/null +++ b/pika-amdgpu-core/debian/changelog @@ -0,0 +1,23 @@ +pika-amdgpu-core (100:22.40.50401-1518373~22.04) kinetic; urgency=low + + * add a firmware apt hook + + -- Ward Nakchbandi Sat, 01 Oct 2022 14:50:00 +0200 + +pika-amdgpu-core (100:22.20.50205-1511376~22.04-14) kinetic; urgency=low + + * switch to systemd service + + -- Ward Nakchbandi Sat, 01 Oct 2022 14:50:00 +0200 + +pika-amdgpu-core (100:22.20.50205-1511376~22.04-13) kinetic; urgency=low + + * remove broken apt hook + + -- Ward Nakchbandi Sat, 01 Oct 2022 14:50:00 +0200 + +pika-amdgpu-core (100:22.20.50205-1511376~22.04) kinetic; urgency=low + + * Initial Creation + + -- Ward Nakchbandi Sat, 01 Oct 2022 14:50:00 +0200 diff --git a/pika-amdgpu-core/debian/control b/pika-amdgpu-core/debian/control new file mode 100644 index 0000000..d107e4d --- /dev/null +++ b/pika-amdgpu-core/debian/control @@ -0,0 +1,17 @@ +Source: pika-amdgpu-core +Section: metapackages +Priority: optional +Maintainer: Ward Nakchbandi +Build-Depends: debhelper-compat (= 13) +Standards-Version: 4.6.1 +Homepage: https://repo.radeon.com/ + +Package: pika-amdgpu-core +Section: metapackages +Architecture: all +Depends: ${misc:Depends}, libdrm-amdgpu-amdgpu1, libdrm-amdgpu-radeon1, libdrm2-amdgpu, libdrm-amdgpu-common, amdgpu-dkms-firmware +Suggests: amdgpu-vulkan-switcher, amdgpu-opengl-switcher, amdgpu-opencl-switcher, pika-amdgpu-config +Provides: amdgpu-core, amdgpu-pro-core, amdgpu-dkms, amdgpu-pro-lib32 +Multi-Arch: foreign +Description: Core meta package for Pro components of the unified amdgpu driver, with mesa priority. + diff --git a/pika-amdgpu-core/debian/copyright b/pika-amdgpu-core/debian/copyright new file mode 100644 index 0000000..d30c7d5 --- /dev/null +++ b/pika-amdgpu-core/debian/copyright @@ -0,0 +1,8 @@ +Files: * +Copyright: 2022 Ward Nakchbandi +License: GPL-2 + +Files: debian/* +Copyright: 2022 Ward Nakchbandi +License: GPL-2 + diff --git a/pika-amdgpu-core/debian/pika-amdgpu-core.install b/pika-amdgpu-core/debian/pika-amdgpu-core.install new file mode 100644 index 0000000..a75e237 --- /dev/null +++ b/pika-amdgpu-core/debian/pika-amdgpu-core.install @@ -0,0 +1,2 @@ +etc +usr diff --git a/pika-amdgpu-core/debian/postinst b/pika-amdgpu-core/debian/postinst new file mode 100755 index 0000000..1827149 --- /dev/null +++ b/pika-amdgpu-core/debian/postinst @@ -0,0 +1,21 @@ +#!/bin/sh + +set -e + +# Enable systemd service + +systemctl enable --now amdgpu-pro-lib.service || echo "amdgpu-pro-lib service could not be enabled" + +# Add firmware + +rm -r /usr/src/amdgpu-official || echo + +ln -s /usr/src/"$(ls /usr/src/ | grep amdgpu- | sort -nr | head -n1)" /usr/src/amdgpu-official + +rm -r /usr/lib/firmware/amdgpu || echo + +ln -s /usr/src/amdgpu-official/firmware/amdgpu /usr/lib/firmware/ + +update-initramfs -c -k all + +# diff --git a/pika-amdgpu-core/debian/prerm b/pika-amdgpu-core/debian/prerm new file mode 100644 index 0000000..b44567f --- /dev/null +++ b/pika-amdgpu-core/debian/prerm @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +systemctl disable --now amdgpu-pro-lib.service || echo "amdgpu-pro-lib service could not be disabled" + +rm -r /usr/lib/firmware/amdgpu || echo + +update-initramfs -c -k all + +# Add firmware diff --git a/pika-amdgpu-core/debian/rules b/pika-amdgpu-core/debian/rules new file mode 100755 index 0000000..cbe925d --- /dev/null +++ b/pika-amdgpu-core/debian/rules @@ -0,0 +1,3 @@ +#!/usr/bin/make -f +%: + dh $@ diff --git a/pika-amdgpu-core/debian/source/format b/pika-amdgpu-core/debian/source/format new file mode 100644 index 0000000..89ae9db --- /dev/null +++ b/pika-amdgpu-core/debian/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/pika-amdgpu-core/etc/apt/apt.conf.d/99amdgpu-firmware b/pika-amdgpu-core/etc/apt/apt.conf.d/99amdgpu-firmware new file mode 100644 index 0000000..d4d93c7 --- /dev/null +++ b/pika-amdgpu-core/etc/apt/apt.conf.d/99amdgpu-firmware @@ -0,0 +1,2 @@ +DPkg::Pre-Install-Pkgs {"/usr/share/dpkg/scripts/amdgpu-firmware-hook.sh pre";}; +DPkg::Post-Invoke {"/usr/share/dpkg/scripts/amdgpu-firmware-hook.sh post";}; diff --git a/pika-amdgpu-core/etc/environment.d/20-pika-amdgpu.conf b/pika-amdgpu-core/etc/environment.d/20-pika-amdgpu.conf new file mode 100644 index 0000000..a5bee9c --- /dev/null +++ b/pika-amdgpu-core/etc/environment.d/20-pika-amdgpu.conf @@ -0,0 +1,2 @@ +DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 +ROC_ENABLE_PRE_VEGA=1 diff --git a/pika-amdgpu-core/etc/systemd/system/amdgpu-pro-lib.service b/pika-amdgpu-core/etc/systemd/system/amdgpu-pro-lib.service new file mode 100644 index 0000000..c1a8bf9 --- /dev/null +++ b/pika-amdgpu-core/etc/systemd/system/amdgpu-pro-lib.service @@ -0,0 +1,8 @@ +[Unit] +Description=Prevents AMDGPU-PRO dangerous behaviour and symlinks its firmware and libraries to sytem path. + +[Service] +ExecStart=/usr/bin/amdgpu-lib-refresh + +[Install] +WantedBy=multi-user.target diff --git a/pika-amdgpu-core/usr/bin/amdgpu-firmware-refresh b/pika-amdgpu-core/usr/bin/amdgpu-firmware-refresh new file mode 100755 index 0000000..57eb985 --- /dev/null +++ b/pika-amdgpu-core/usr/bin/amdgpu-firmware-refresh @@ -0,0 +1,5 @@ +#! /bin/bash + + sudo /usr/bin/amdgpu-lib-refresh + sudo update-initramfs -c -k all + diff --git a/pika-amdgpu-core/usr/bin/amdgpu-lib-refresh b/pika-amdgpu-core/usr/bin/amdgpu-lib-refresh new file mode 100755 index 0000000..9b0fd02 --- /dev/null +++ b/pika-amdgpu-core/usr/bin/amdgpu-lib-refresh @@ -0,0 +1,61 @@ +#! /bin/bash + +# Disables amdgpu-pro libraries to fallback to mesa +# USE wrappers instead + +export PRO_DISABLED=0 +export AMD_DISABLED=0 +export BIN_AMD_DISABLED=0 +export BIN_INTEL_DISABLED=0 +export ENC_EXISTS=0 +export AMF_EXISTS=0 + +# Add firmware + +rm -r /usr/src/amdgpu-official || echo + +ln -s /usr/src/"$(ls /usr/src/ | grep amdgpu- | sort -nr | head -n1)" /usr/src/amdgpu-official + +rm -r /usr/lib/firmware/amdgpu || echo + +ln -s /usr/src/amdgpu-official/firmware/amdgpu /usr/lib/firmware/ + +# + +cat /etc/ld.so.conf.d/10-amdgpu-pro.conf | grep "#" && export PRO_DISABLED=1 + +cat /etc/ld.so.conf.d/20-amdgpu.conf | grep "#" && export AMD_DISABLED=1 + +cat /etc/ld.so.conf.d/10-amdgpu-pro-x86_64.conf | grep "#" && export BIN_AMD_DISABLED=1 + +cat /etc/ld.so.conf.d/10-amdgpu-pro-i386.conf | grep "#" && export BIN_INTEL_DISABLED=1 + +ls /opt/amdgpu-pro/lib/x86_64-linux-gnu/libamdenc* && export ENC_EXISTS=1 + +ls /opt/amdgpu-pro/lib/x86_64-linux-gnu/libamf* && export AMF_EXISTS=1 + +if [[ "${PRODISABLED}" != 1 ]]; then + sed -i.old -e 's/^/#/' /etc/ld.so.conf.d/10-amdgpu-pro.conf +fi + +if [[ "${AMDDISABLED}" != 1 ]]; then + sed -i.old -e 's/^/#/' /etc/ld.so.conf.d/20-amdgpu.conf +fi + +if [[ "${BIN_AMD_DISABLED}" != 1 ]]; then + sed -i.old -e 's/^/#/' /etc/ld.so.conf.d/10-amdgpu-pro-x86_64.conf +fi + +if [[ "${BIN_INTEL_DISABLED}" != 1 ]]; then + sed -i.old -e 's/^/#/' /etc/ld.so.conf.d/10-amdgpu-pro-i386.conf +fi + +if [[ "${ENC_EXISTS}" != 0 ]]; then + ln -s /opt/amdgpu-pro/lib/x86_64-linux-gnu/libamdenc* /usr/lib/x86_64-linux-gnu/ +fi + +if [[ "${AMF_EXISTS}" != 0 ]]; then + ln -s /opt/amdgpu-pro/lib/x86_64-linux-gnu/libamf* /usr/lib/x86_64-linux-gnu/ +fi + +ldconfig diff --git a/pika-amdgpu-core/usr/share/dpkg/scripts/amdgpu-firmware-hook.sh b/pika-amdgpu-core/usr/share/dpkg/scripts/amdgpu-firmware-hook.sh new file mode 100755 index 0000000..11c10a0 --- /dev/null +++ b/pika-amdgpu-core/usr/share/dpkg/scripts/amdgpu-firmware-hook.sh @@ -0,0 +1,24 @@ +#! /bin/bash + +if [[ $1 == pre ]] +then + if grep -q amdgpu-dkms-firmware + then + mkdir -p /var/lib/apt/hooks + touch /var/lib/apt/hooks/amdgpu-dkms-firmware +else + exit 0 + fi +fi + +if [[ $1 == post ]] +then + if [[ -f /var/lib/apt/hooks/amdgpu-dkms-firmware ]] + then + amdgpu-firmware-refresh + rm -rf /var/lib/apt/hooks/amdgpu-dkms-firmware + else + exit 0 + fi +fi +