summaryrefslogtreecommitdiffstats
path: root/roles/gpu_driver
diff options
context:
space:
mode:
Diffstat (limited to 'roles/gpu_driver')
-rw-r--r--roles/gpu_driver/meta/argument_specs.yml8
-rw-r--r--roles/gpu_driver/meta/main.yml12
-rw-r--r--roles/gpu_driver/tasks/main.yml12
-rw-r--r--roles/gpu_driver/vars/main.yml6
4 files changed, 38 insertions, 0 deletions
diff --git a/roles/gpu_driver/meta/argument_specs.yml b/roles/gpu_driver/meta/argument_specs.yml
new file mode 100644
index 00000000..6986388f
--- /dev/null
+++ b/roles/gpu_driver/meta/argument_specs.yml
@@ -0,0 +1,8 @@
+---
+argument_specs:
+ main:
+ short_description: "Detect the GPU and include the appropriate driver role"
+ description: >
+ Detects the GPU present on the machine using PCI device information and
+ includes the matching driver role (intel_i915 or nvidia_gtx1060).
+ options: {}
diff --git a/roles/gpu_driver/meta/main.yml b/roles/gpu_driver/meta/main.yml
new file mode 100644
index 00000000..4b4c9a4e
--- /dev/null
+++ b/roles/gpu_driver/meta/main.yml
@@ -0,0 +1,12 @@
+---
+dependencies:
+ - role: "pciutils"
+galaxy_info:
+ author: "a14m"
+ description: "Detect the GPU and include the appropriate driver role"
+ license: "MIT"
+ min_ansible_version: "2.18"
+ platforms:
+ - name: "ArchLinux"
+ versions:
+ - "all"
diff --git a/roles/gpu_driver/tasks/main.yml b/roles/gpu_driver/tasks/main.yml
new file mode 100644
index 00000000..7f6f130f
--- /dev/null
+++ b/roles/gpu_driver/tasks/main.yml
@@ -0,0 +1,12 @@
+---
+- name: "Detect GPU"
+ ansible.builtin.command:
+ cmd: "lspci"
+ register: gpu_driver_lspci
+ changed_when: false
+
+- name: "Include driver role for matched GPU"
+ ansible.builtin.include_role:
+ name: "{{ item.role }}"
+ loop: "{{ gpu_driver_map }}"
+ when: item.match in gpu_driver_lspci.stdout
diff --git a/roles/gpu_driver/vars/main.yml b/roles/gpu_driver/vars/main.yml
new file mode 100644
index 00000000..152f7499
--- /dev/null
+++ b/roles/gpu_driver/vars/main.yml
@@ -0,0 +1,6 @@
+---
+gpu_driver_map:
+ - match: "GeForce GTX 1060"
+ role: "nvidia_gtx1060"
+ - match: "Intel"
+ role: "intel_i915"