diff options
| author | Ahmed Abdelhalim <[email protected]> | 2026-04-07 00:10:32 +0200 |
|---|---|---|
| committer | Ahmed Abdelhalim <[email protected]> | 2026-04-07 00:12:25 +0200 |
| commit | 3b5aeebb4af21894ad75e2d9772159511eeb1457 (patch) | |
| tree | 322b30cc3b32f2f0a334100bbefe9aa8a68cca48 /roles/nvidia_gt750m | |
| parent | ad7cbc3511d201711c8c3bad0b3882e8e57a8d7d (diff) | |
Add nvidia gtm 750M for the mac
Diffstat (limited to 'roles/nvidia_gt750m')
| -rw-r--r-- | roles/nvidia_gt750m/defaults/main.yml | 12 | ||||
| -rw-r--r-- | roles/nvidia_gt750m/handlers/main.yml | 6 | ||||
| -rw-r--r-- | roles/nvidia_gt750m/meta/main.yml | 17 | ||||
| -rw-r--r-- | roles/nvidia_gt750m/tasks/install-archlinux.yml | 57 | ||||
| -rw-r--r-- | roles/nvidia_gt750m/tasks/main.yml | 3 | ||||
| -rw-r--r-- | roles/nvidia_gt750m/templates/nvidia.conf.j2 | 4 |
6 files changed, 99 insertions, 0 deletions
diff --git a/roles/nvidia_gt750m/defaults/main.yml b/roles/nvidia_gt750m/defaults/main.yml new file mode 100644 index 00000000..559ccdae --- /dev/null +++ b/roles/nvidia_gt750m/defaults/main.yml @@ -0,0 +1,12 @@ +--- +nvidia_gt750m_aur_packages: + - "nvidia-470xx-dkms" + - "nvidia-470xx-utils" + - "nvidia-470xx-settings" + - "lib32-nvidia-470xx-utils" + +nvidia_gt750m_modules: + - "nvidia" + - "nvidia_modeset" + - "nvidia_uvm" + - "nvidia_drm" diff --git a/roles/nvidia_gt750m/handlers/main.yml b/roles/nvidia_gt750m/handlers/main.yml new file mode 100644 index 00000000..67408c79 --- /dev/null +++ b/roles/nvidia_gt750m/handlers/main.yml @@ -0,0 +1,6 @@ +--- +- name: "Rebuild initramfs" + become: true + ansible.builtin.command: + cmd: "mkinitcpio -P" + changed_when: true diff --git a/roles/nvidia_gt750m/meta/main.yml b/roles/nvidia_gt750m/meta/main.yml new file mode 100644 index 00000000..6e299607 --- /dev/null +++ b/roles/nvidia_gt750m/meta/main.yml @@ -0,0 +1,17 @@ +--- +dependencies: + - role: "bash" + - role: "linux_headers" + - role: "yay" + when: ansible_facts['os_family'] == "Archlinux" + - role: "multilib" + when: ansible_facts['os_family'] == "Archlinux" +galaxy_info: + author: "a14m" + description: "Install and configure NVIDIA GT 750M proprietary drivers" + license: "MIT" + min_ansible_version: "2.18" + platforms: + - name: "ArchLinux" + versions: + - "all" diff --git a/roles/nvidia_gt750m/tasks/install-archlinux.yml b/roles/nvidia_gt750m/tasks/install-archlinux.yml new file mode 100644 index 00000000..2f9aae0b --- /dev/null +++ b/roles/nvidia_gt750m/tasks/install-archlinux.yml @@ -0,0 +1,57 @@ +--- +- name: "Install NVIDIA driver from AUR" + become: true + become_user: "aur_builder" + kewlfft.aur.aur: + name: "{{ nvidia_gt750m_aur_packages }}" + state: "present" + use: "yay" + +- name: "Configure NVIDIA DRM kernel mode setting" + become: true + ansible.builtin.template: + src: "nvidia.conf.j2" + dest: "/etc/modprobe.d/nvidia.conf" + mode: "0644" + notify: + - "Rebuild initramfs" + tags: + - "molecule-notest" + +- name: "Remove kms hook from mkinitcpio" + become: true + ansible.builtin.replace: + path: "/etc/mkinitcpio.conf" + regexp: "(HOOKS=\\([^)]*) kms" + replace: '\1' + notify: + - "Rebuild initramfs" + tags: + - "molecule-notest" + +- name: "Get current mkinitcpio MODULES" + become: true + ansible.builtin.shell: | + set -euo pipefail + grep '^MODULES=' /etc/mkinitcpio.conf | sed 's/MODULES=(\(.*\))/\1/' + # noqa var-naming[no-role-prefix] as it describes the current kernel modules and not the nvidia modules + register: "current_kernel_modules" + changed_when: false + args: + executable: /bin/bash + tags: + - "molecule-notest" + +- name: "Add NVIDIA modules to mkinitcpio" + become: true + vars: + existing_modules: "{{ current_kernel_modules.stdout.split() | reject('in', nvidia_gt750m_modules) | list }}" + all_modules: "{{ existing_modules + nvidia_gt750m_modules }}" + ansible.builtin.lineinfile: + path: "/etc/mkinitcpio.conf" + regexp: "^MODULES=\\(.*\\)" + line: "MODULES=({{ all_modules | join(' ') }})" + notify: + - "Rebuild initramfs" + tags: + - "molecule-notest" diff --git a/roles/nvidia_gt750m/tasks/main.yml b/roles/nvidia_gt750m/tasks/main.yml new file mode 100644 index 00000000..71bcbd0d --- /dev/null +++ b/roles/nvidia_gt750m/tasks/main.yml @@ -0,0 +1,3 @@ +--- +- name: "Include OS-specific tasks" + ansible.builtin.include_tasks: "install-{{ ansible_facts['os_family'] | lower }}.yml" diff --git a/roles/nvidia_gt750m/templates/nvidia.conf.j2 b/roles/nvidia_gt750m/templates/nvidia.conf.j2 new file mode 100644 index 00000000..9672977e --- /dev/null +++ b/roles/nvidia_gt750m/templates/nvidia.conf.j2 @@ -0,0 +1,4 @@ +blacklist nouveau + +options nvidia_drm modeset=1 +options nvidia_drm fbdev=1 |
