From 38d255f0ab8c33b18a5d526a6313651df9332b40 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sat, 18 May 2024 09:52:18 -0400 Subject: [PATCH] Set up multiple sound server options for FreeBSD. --- ansible/environments/colo/host_vars/mrmanager | 1 + .../environments/laptop/host_vars/odofreebsd | 1 + .../currentznver4-default-framework-make.conf | 4 +- .../currentznver4-default-framework-pkglist | 4 -- ansible/roles/sound/tasks/freebsd.yaml | 26 ++++++------- ansible/roles/sound/tasks/freebsd_jack.yaml | 37 +++++++++++++++++++ ansible/roles/sound/tasks/freebsd_oss.yaml | 0 .../roles/sound/tasks/freebsd_pulseaudio.yaml | 7 ++++ 8 files changed, 59 insertions(+), 21 deletions(-) create mode 100644 ansible/roles/sound/tasks/freebsd_jack.yaml create mode 100644 ansible/roles/sound/tasks/freebsd_oss.yaml create mode 100644 ansible/roles/sound/tasks/freebsd_pulseaudio.yaml diff --git a/ansible/environments/colo/host_vars/mrmanager b/ansible/environments/colo/host_vars/mrmanager index 46f484f..02c14bb 100644 --- a/ansible/environments/colo/host_vars/mrmanager +++ b/ansible/environments/colo/host_vars/mrmanager @@ -15,6 +15,7 @@ pflog_conf: - name: 0 dev: pflog0 cputype: "amd" +hwpstate: true etc_hosts: {} wireguard_directory: mrmanager enabled_wireguard: diff --git a/ansible/environments/laptop/host_vars/odofreebsd b/ansible/environments/laptop/host_vars/odofreebsd index b2fd3f8..9db901b 100644 --- a/ansible/environments/laptop/host_vars/odofreebsd +++ b/ansible/environments/laptop/host_vars/odofreebsd @@ -17,6 +17,7 @@ graphics_driver: "amd" cputype: "amd" hwpstate: true cores: 16 +sound_system: "oss" users: talexander: initialize: true diff --git a/ansible/roles/poudriere/files/poudriere.d/currentznver4-default-framework-make.conf b/ansible/roles/poudriere/files/poudriere.d/currentznver4-default-framework-make.conf index 316b351..b7ec021 100644 --- a/ansible/roles/poudriere/files/poudriere.d/currentznver4-default-framework-make.conf +++ b/ansible/roles/poudriere/files/poudriere.d/currentznver4-default-framework-make.conf @@ -5,7 +5,6 @@ CPUTYPE?=x86-64-v4 .elif ${.CURDIR:N*/lang/gcc48*} && ${.CURDIR:N*/lang/gcc10*} && ${.CURDIR:N*/devel/binutils*} && ${.CURDIR:N*/devel/qt6-base*} && ${.CURDIR:N*/www/node20*} CPUTYPE?=znver4 -# CPUTYPE?=x86-64-v4 .endif # Disable static for subversion because /usr/local/lib/libutf8proc.a not found despite utf8proc being installed @@ -26,7 +25,8 @@ OPTIONS_SET+=NATIVECOMP PGTK .endif .if ${.CURDIR:M*/www/firefox*} -OPTIONS_UNSET+=PULSEAUDIO SNDIO JACK +OPTIONS_UNSET+=PULSEAUDIO SNDIO +OPTIONS_UNSET+=JACK .endif OPTIONS_SET+=OPTIMIZED_CFLAGS diff --git a/ansible/roles/poudriere/files/poudriere.d/currentznver4-default-framework-pkglist b/ansible/roles/poudriere/files/poudriere.d/currentznver4-default-framework-pkglist index 94ceeef..0bb4a7e 100644 --- a/ansible/roles/poudriere/files/poudriere.d/currentznver4-default-framework-pkglist +++ b/ansible/roles/poudriere/files/poudriere.d/currentznver4-default-framework-pkglist @@ -1,11 +1,7 @@ archivers/unrar archivers/unzip archivers/zip -audio/jack audio/mixertui -audio/noise-suppression-for-voice-lv2 -audio/pavucontrol -audio/qjackctl databases/sqlite3 deskutils/xdg-desktop-portal devel/git diff --git a/ansible/roles/sound/tasks/freebsd.yaml b/ansible/roles/sound/tasks/freebsd.yaml index b2f5593..87afc76 100644 --- a/ansible/roles/sound/tasks/freebsd.yaml +++ b/ansible/roles/sound/tasks/freebsd.yaml @@ -4,13 +4,6 @@ - mixertui state: present -- name: Install packages - when: install_graphics - package: - name: - - pavucontrol - state: present - - name: Configure sysctls ignore_errors: true when: sound_default_unit is defined @@ -25,12 +18,15 @@ - name: hw.snd.default_unit value: "{{ sound_default_unit }}" -- name: Install loader.conf - copy: - src: "files/{{ item }}_loader.conf" - dest: "/boot/loader.conf.d/{{ item }}.conf" - mode: 0644 - owner: root - group: wheel +- name: Configure sysctls + sysctl: + name: "{{ item.name }}" + value: "{{ item.value }}" + state: present + sysctl_file: "/etc/sysctl.conf.local" loop: - - realtime_priority + - name: hw.snd.verbose + value: "2" + +- include_tasks: "tasks/freebsd_{{sound_system}}.yaml" + when: sound_system is defined diff --git a/ansible/roles/sound/tasks/freebsd_jack.yaml b/ansible/roles/sound/tasks/freebsd_jack.yaml new file mode 100644 index 0000000..6cc8331 --- /dev/null +++ b/ansible/roles/sound/tasks/freebsd_jack.yaml @@ -0,0 +1,37 @@ +# Jack users must be added to the realtime group. +# Also set memorylocked to 128M in login.conf +# D-bus should be enabled for auto-launching jack. +- name: Install loader.conf + copy: + src: "files/{{ item }}_loader.conf" + dest: "/boot/loader.conf.d/{{ item }}.conf" + mode: 0644 + owner: root + group: wheel + loop: + - realtime_priority + +- name: Install packages + package: + name: + - jackit + state: present + +- name: Install packages + when: install_graphics + package: + name: + - qjackctl + state: present + +# hw.snd.default_auto=0 # (2) +# hw.snd.default_unit=1 # (3) + +# hw.usb.uaudio.buffer_ms="2" + +# hw.snd.latency=0 +# hw.snd.latency_profile=0 + +# Hurts battery: +# kern.timecounter.alloweddeviation=0 + diff --git a/ansible/roles/sound/tasks/freebsd_oss.yaml b/ansible/roles/sound/tasks/freebsd_oss.yaml new file mode 100644 index 0000000..e69de29 diff --git a/ansible/roles/sound/tasks/freebsd_pulseaudio.yaml b/ansible/roles/sound/tasks/freebsd_pulseaudio.yaml new file mode 100644 index 0000000..1d845dd --- /dev/null +++ b/ansible/roles/sound/tasks/freebsd_pulseaudio.yaml @@ -0,0 +1,7 @@ +- name: Install packages + when: install_graphics + package: + name: + - pavucontrol + state: present +