You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.6 KiB
YAML

---
- name: passthrough nvidia gpu on intel cpu
hosts: all
tasks:
- name: add iommu in grub
ansible.builtin.lineinfile:
path: /etc/default/grub
regexp: "GRUB_CMDLINE_LINUX_DEFAULT"
line: 'GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt nofb nomodeset initcall_blacklist=sysfb_init"'
register: grub_changed
- name: update grub
ansible.builtin.shell: update-grub
when: grub_changed.changed
register: grub_upgraded
- name: add modules
ansible.builtin.lineinfile:
path: /etc/modules
line: "{{ item }}"
loop:
- vfio
- vfio_iommu_type1
- vfio_pci
- vfio_virqfd
- name: search nvidia gpu id
ansible.builtin.shell: "lspci | grep VGA.*NVIDIA | head -c 5 | xargs -I% lspci -n -s % | cut -c15-23"
register: nvidia_id
changed_when: false
# - name: check result gpu id
# ansible.builtin.debug:
# var: nvidia_id.stdout_lines
- name: add nvidia id to vfio
ansible.builtin.lineinfile:
path: /etc/modprobe.d/vfio.conf
create: true
line: "options vfio-pci ids={{ nvidia_id.stdout_lines[0] }},{{ nvidia_id.stdout_lines[1] }} disable_vga=1"
- name: add blacklist
ansible.builtin.lineinfile:
path: /etc/modprobe.d/blacklist.conf
create: true
line: "{{ item }}"
loop:
- blacklist amdgpu
- blacklist radeon
- blacklist nouveau
- blacklist nvidia
- name: reboot system
ansible.builtin.reboot:
when: grub_upgraded.changed