Both sides previous revisionPrevious revisionNext revision | Previous revision |
wiki:system_configuration [2023/10/15 12:36] – [The kernel] autostatic | wiki:system_configuration [2024/01/13 15:00] (current) – [Priorities] autostatic |
---|
| |
After adjusting your system using the recommendations of [[system_configuration#rtcqs]] and with JACK (QjackCtl) and a2jmidid installed, the basics should be there for a well performing real-time audio system (depending on your hardware too of course). | After adjusting your system using the recommendations of [[system_configuration#rtcqs]] and with JACK (QjackCtl) and a2jmidid installed, the basics should be there for a well performing real-time audio system (depending on your hardware too of course). |
| |
| This wiki also contains a manual on installing a Linux audio system here: [[wiki:system_build|]] |
| |
==== Preliminary ==== | ==== Preliminary ==== |
| |
=== Disabling Spectre and Meltdown mitigations === | === Disabling Spectre and Meltdown mitigations === |
:!: Warning: disabling these mitigations will make your machine less secure! Use with caution! | :!: Warning: Using ''mitigations=off'' will make your machine less secure! Use with caution! For more information on the risks see https://meltdownattack.com/ |
| |
To work around the Spectre and Meltdown vulnerabilities several mitigations were built into the kernel. These mitigations can have a negative impact on the performance of your machine. To disable those mitigations and get the most out of your CPU's again you can add the following kernel parameter to your Grub configuration, add it to the value of either ''GRUB_CMDLINE_LINUX_DEFAULT'' or ''GRUB_CMDLINE_LINUX'': | To work around the Spectre and Meltdown vulnerabilities several mitigations were built into the kernel. These mitigations can have a negative impact on the performance of your machine. To disable those mitigations and get the most out of your CPU's again you can add the following kernel parameter to your Grub configuration, add it to the value of either ''GRUB_CMDLINE_LINUX_DEFAULT'' or ''GRUB_CMDLINE_LINUX'': |
| |
For rolling your own kernel, see [[build_your_own_real-time_kernel]]. | For rolling your own kernel, see [[build_your_own_real-time_kernel]]. |
| |
| === Other alternatives === |
| Besides low-latency or real-time kernels there are also other kernel flavors available specifically tailored for multimedia usage. |
| |
| == Liquorix == |
| > Liquorix is an enthusiast Linux kernel designed for uncompromised responsiveness in interactive systems, enabling low latency compute in A/V production, and reduced frame time deviations in games.((https://liquorix.net/)) |
| Especially when used in combination with the ''threadirqs'' kernel option this kernel flavor performs very well. It is also the kernel that drives [[https://www.bandshed.net/avlinux/|AV Linux]]. |
| |
== Other relevant links == | == Other relevant links == |
==== audio group ==== | ==== audio group ==== |
| |
It is generally good practice to have an ''audio'' group, and add any users that should be allowed to perform audio tasks to this group. This prevents some interference from non-audio-processes with audio tasks. To verify you're in the ''audio'' group, run the ''groups'' command. Remember, after adding yourself to new groups, you need to log out and back in again. Be careful when adding an ''audio'' group to your system: most systems come with a pre-configured ''audio'' group, and do not warn you when you add another group with the same name, leading to much confusion. When using Arch Linux the above is valid too except that Arch uses a different group name, i.e. ''realtime''((https://wiki.archlinux.org/title/Realtime_process_management#Configuring_PAM)). | It is generally good practice to have an ''audio'' group, and add any users that should be allowed to perform audio tasks to this group. This prevents some interference from non-audio-processes with audio tasks. To verify you're in the ''audio'' group, run the ''groups'' command. Remember, after adding yourself to new groups, it is best to log out and back in again. On systems that have an audio group you can add your user with the following command: |
| sudo usermod -a -G audio <username> |
| |
| Where ''<username>'' is your username. |
| |
| Be careful when adding an ''audio'' group to your system: most systems come with a pre-configured ''audio'' group, and do not warn you when you add another group with the same name, leading to much confusion. When using Arch Linux the above is valid too except that Arch uses a different group name, i.e. ''realtime''((https://wiki.archlinux.org/title/Realtime_process_management#Configuring_PAM)). |
| |
==== Timers ==== | ==== Timers ==== |
$ ps axHo user,lwp,pid,rtprio,ni,command | $ ps axHo user,lwp,pid,rtprio,ni,command |
| |
$ ps -eLo pid,cls,rtprio,pri,nice,cmd | grep -i irq | $ ps -eLo user,pid,cls,rtprio,cmd --sort rtprio |
| |
Or if you have [[system_configuration#rtirq]] installed: | Or if you have [[system_configuration#rtirq]] installed: |
''top'' is probably the most used tool to display system information like CPU or memory usage. It is installed by default on most distros. | ''top'' is probably the most used tool to display system information like CPU or memory usage. It is installed by default on most distros. |
| |
{{:wiki:top2.png|Terminal running top}} | {{:wiki:top_2023-10-15.png|Terminal running top}} |
| |
With the help of ''top'' you can find out which process is using up all your CPU or memory. By pressing ''h'' you get a help screen. To sort on memory usage instead of CPU usage you can press ''F'' + ''n'' + ''Enter''. | With the help of ''top'' you can find out which process is using up all your CPU or memory. By pressing ''h'' you get a help screen. To sort on memory usage instead of CPU usage you can press ''F'' + ''n'' + ''Enter''. |
''htop'' is the somewhat more sophisticated big brother of ''top''. | ''htop'' is the somewhat more sophisticated big brother of ''top''. |
| |
{{:wiki:htop2.png|Terminal running htop}} | {{:wiki:htop_2023-10-15.png|Terminal running htop}} |
| |
==== latencytop ==== | ==== latencytop ==== |
* Power management | * Power management |
* Rewrite rtirq section or move to separate page | * Rewrite rtirq section or move to separate page |
| * Pipewire |