feat(hardware): auto-detect audio, bluetooth, camera with declarative override
This commit is contained in:
22
roles/environment/tasks/_merge_hardware_profile.yml
Normal file
22
roles/environment/tasks/_merge_hardware_profile.yml
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
# Supplements whatever profile is active (detected or full-override) rather than
|
||||
# replacing it: vendor lists union, booleans OR, cpu overrides when set.
|
||||
- name: Merge declarative hardware group over detection
|
||||
vars:
|
||||
_hw: "{{ system_cfg.features.hardware }}"
|
||||
_det: "{{ hardware_profile_active }}"
|
||||
ansible.builtin.set_fact:
|
||||
hardware_profile_active:
|
||||
cpu: "{{ (_hw.cpu | default('') | string | lower) if (_hw.cpu | default('') | length > 0) else _det.cpu }}"
|
||||
gpus: "{{ ((_det.gpus | default([])) + (_hw.gpus | default([]) | map('lower') | list)) | unique | list }}"
|
||||
nvidia_supports_open: "{{ _det.nvidia_supports_open | default(true) | bool }}"
|
||||
wireless: "{{ ((_det.wireless | default([])) + (_hw.wireless | default([]) | map('lower') | list)) | unique | list }}"
|
||||
audio: "{{ ((_det.audio | default([])) + (_hw.audio | default([]) | map('lower') | list)) | unique | list }}"
|
||||
fingerprint: "{{ (_det.fingerprint | default(false) | bool) or (_hw.fingerprint | default(false) | bool) }}"
|
||||
bluetooth: "{{ (_det.bluetooth | default(false) | bool) or (_hw.bluetooth | default(false) | bool) }}"
|
||||
camera:
|
||||
uvc: "{{ (_det.camera.uvc | default(false) | bool) or (_hw.camera.uvc | default(false) | bool) }}"
|
||||
ipu6: "{{ (_det.camera.ipu6 | default(false) | bool) or (_hw.camera.ipu6 | default(false) | bool) }}"
|
||||
_hardware_profile_packages: "{{ _hw.packages | default({}) }}"
|
||||
_hardware_profile_disable: "{{ _hw.disable | default([]) | list }}"
|
||||
_hardware_profile_kernel_params: "{{ _hw.kernel_params | default([]) | list }}"
|
||||
Reference in New Issue
Block a user