Sure. The following are the bits that I'm pretty sure are universal. The rest -- mostly configuring my audio interface -- is IMO fairly specific to my system and can be found in my dotfiles.
- Limits for Pipewire:
# /etc/security/limits.d/25-pw-rlimits.conf @pipewire - rtprio 95 @pipewire - nice -19 @pipewire - memlock 4194304 - Add the
realtimegroup and grant it access to/dev/cpu_dma_latencyso Ardour can prevent the system from going into idle:# /etc/udev/rules.d/40-realtime-privileges.rules KERNEL=="cpu_dma_latency", GROUP="realtime" - Add
threadirqsandpreempt=fullto the kernel commandline - Disable VM swap readahead since Kinoite uses ZRAM anyways:
# /etc/sysctl.d/50-audio.conf vm.page-cluster = 0 - Set IO scheduler to
Nonefor SSDs and NVMe:# /etc/udev/rules.d/60-block-scheduler.rules ACTION=="add|change", SUBSYSTEM=="block", ATTR{queue/rotational}=="0", KERNEL=="nvme?n?", ATTR{queue/scheduler}="none" ACTION=="add|change", SUBSYSTEM=="block", ATTR{queue/rotational}=="0", KERNEL=="sd?", ATTR{queue/scheduler}="none"
I'm not using a preempt kernel or anything like that; I've only gotten into audio when Pipewire had already hit the scene and I've found it to be good enough with these settings.