202 lines
5.4 KiB
YAML
Raw Normal View History

---
# Install OpenCL drivers.
## Step 0/3: Dependencies ##
- name: AMDGPU | Variables
set_fact:
amdgpu_cron_job: AMDGPU - Need To Finish Installation
2021-02-13 07:31:16 -06:00
amdgpu_cron_cmd: /root/bin/scm.sh
2021-02-11 18:08:57 -06:00
- name: AMDGPU | Install Dependencies
package:
name:
- dkms
- mesa-common-dev
- clinfo
2021-02-11 18:08:57 -06:00
state: present
- name: AMDGPU | Set GRUB Timer
lineinfile:
path: /etc/default/grub
regexp: '^GRUB_TIMEOUT='
line: 'GRUB_TIMEOUT=3'
state: present
backup: yes
- name: AMDGPU | Remove Previous Run's Cron Job
cron:
user: root
name: "{{ amdgpu_cron_job }}"
state: absent
# Tests
- name: AMDGPU | Check If GA Kernel Installed
shell: 'uname --kernel-release | grep 5.4.0-65-generic'
register: ga_kernel
ignore_errors: yes
- name: AMDGPU | Check If HWE Kernel Installed
shell: 'apt search linux-image-5.8.0-* | grep -c installed'
register: hwe_kernel
ignore_errors: yes
#- name: AMDGPU | Check If All Driver Installed
# shell: 'which amdgpu-uninstall'
# register: amdgpu_install
# ignore_errors: yes
- name: AMDGPU | Check If Pro Driver Installed
shell: 'which amdgpu-pro-uninstall'
register: amdgpu_install
ignore_errors: yes
- name: AMDGPU | DEBUG
debug:
var: "{{ item }}"
loop:
- ga_kernel
- hwe_kernel
- amdgpu_install
## Step 1/3: Get Correct Kernel ##
- name: AMDGPU | Install GA Kernel
package:
name: linux-image-5.4.0-65-generic
state: present
when: amdgpu_install.failed and hwe_kernel.stdout != "0" and ga_kernel.failed
2021-02-13 07:28:45 -06:00
- name: AMDGPU | Prepare GRUB To Boot GA Kernel
lineinfile:
path: /etc/default/grub
regexp: '^GRUB_DEFAULT='
line: 'GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.4.0-65-generic"'
state: present
backup: yes
2021-02-13 07:25:15 -06:00
when: amdgpu_install.failed and hwe_kernel.stdout != "0" and ga_kernel.failed
2021-02-13 07:28:45 -06:00
- name: AMDGPU | Update GRUB
shell: update-grub
when: amdgpu_install.failed and hwe_kernel.stdout != "0" and ga_kernel.failed
- name: AMDGPU | Prepare Cron Job To SCM
cron:
user: root
name: "{{ amdgpu_cron_job }}"
special_time: reboot
2021-02-13 07:31:16 -06:00
job: "{{ amdgpu_cron_cmd }}"
state: present
disabled: no
2021-02-13 07:25:15 -06:00
when: amdgpu_install.failed and hwe_kernel.stdout != "0" and ga_kernel.failed
- name: AMDGPU | Reboot To GA Kernel
shell: reboot
2021-02-13 07:25:15 -06:00
when: amdgpu_install.failed and hwe_kernel.stdout != "0" and ga_kernel.failed
- pause:
prompt: "Rebooting to GA kernel! Please hold."
2021-02-13 07:25:15 -06:00
when: amdgpu_install.failed and hwe_kernel.stdout != "0" and ga_kernel.failed
## Step 2/3: Remove Incorrect Kernels ##
- name: AMDGPU | Remove Bad Kernels
shell: "apt remove --purge linux-generic-hwe-20.04 \
linux-oem-20.04 \
linux-hwe-* \
linux-oem-* \
linux-modules-5.1* \
linux-modules-5.8.0-* \
linux-modules-5.6.0-*"
2021-02-13 07:25:15 -06:00
when: amdgpu_install.failed and hwe_kernel.stdout != "0"
- name: AMDGPU | Update + Clean System
shell: "apt update; apt dist-upgrade -y; apt autoremove -y"
2021-02-13 07:25:15 -06:00
when: amdgpu_install.failed and hwe_kernel.stdout != "0"
# This is to ensure we can test adding `apt install --install-recommends linux-generic` later
- name: AMDGPU | Boot Default Kernel
lineinfile:
path: /etc/default/grub
regexp: '^GRUB_DEFAULT='
line: 'GRUB_DEFAULT=0'
state: present
backup: yes
2021-02-13 07:25:15 -06:00
when: amdgpu_install.failed and hwe_kernel.stdout != "0"
2021-02-13 07:28:45 -06:00
- name: AMDGPU | Update GRUB
shell: update-grub
when: amdgpu_install.failed and hwe_kernel.stdout != "0"
- name: AMDGPU | Prepare Cron Job To SCM
cron:
user: root
name: "{{ amdgpu_cron_job }}"
special_time: reboot
2021-02-13 07:31:16 -06:00
job: "{{ amdgpu_cron_cmd }}"
state: present
disabled: no
2021-02-13 07:25:15 -06:00
when: amdgpu_install.failed and hwe_kernel.stdout != "0"
- name: AMDGPU | Reboot To Ensure GA Is 0
shell: reboot
2021-02-13 07:25:15 -06:00
when: amdgpu_install.failed and hwe_kernel.stdout != "0"
- pause:
prompt: "Rebooting to clear kernels! Please hold."
2021-02-13 07:25:15 -06:00
when: amdgpu_install.failed and hwe_kernel.stdout != "0"
2021-02-11 12:12:52 -06:00
## Step 3/3: Install AMD PRO Driver ##
- name: AMDGPU | Create Downloads Folder
2021-02-11 13:03:48 -06:00
shell: 'mkdir -p /root/Downloads'
when: amdgpu_install.failed
- name: AMDGPU | Download Driver
2021-02-11 13:03:48 -06:00
shell: 'scp ling@leet:InstallFiles/Drivers/amdgpu-pro-20.45-1188099-ubuntu-20.04.tar.xz /root/Downloads/'
when: amdgpu_install.failed
- name: AMDGPU | Extract Tarball
2021-02-11 13:03:48 -06:00
shell: 'cd /root/Downloads; tar -xvf amdgpu-pro-20.45-1188099-ubuntu-20.04.tar.xz'
when: amdgpu_install.failed
2021-02-12 06:40:56 -06:00
## Only one driver set can exist at a time! ##
#- name: AMDGPU | Install AMDGPU All Driver
# shell: 'cd /root/Downloads/amdgpu-pro-20.45-1188099-ubuntu-20.04; ./amdgpu-install -y'
# when: amdgpu_install.failed
- name: AMDGPU | Install AMDGPU-Pro Driver
shell: 'cd /root/Downloads/amdgpu-pro-20.45-1188099-ubuntu-20.04; ./amdgpu-pro-install -y --opencl=pal,legacy'
when: amdgpu_install.failed
- name: AMDGPU | Prepare Cron Job To SCM
cron:
user: root
name: "{{ amdgpu_cron_job }}"
special_time: reboot
2021-02-13 07:31:16 -06:00
job: "{{ amdgpu_cron_cmd }}"
state: present
disabled: no
when: amdgpu_install.failed
- name: AMDGPU | Reboot To GA Kernel
shell: reboot
when: amdgpu_install.failed
- pause:
prompt: "Rebooting to use driver! Please hold."
when: amdgpu_install.failed
2021-02-12 06:40:56 -06:00
## We're done! ##
- name: AMDGPU | Test Driver
shell: clinfo
register: clinfo
- name: AMDGPU | Test Results
debug:
var: clinfo
ignore_errors: yes