You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.8 KiB
64 lines
2.8 KiB
Running JACK server in realtime mode.
|
|
|
|
The JACK server jackd has the capability to run in a real-time mode
|
|
which greatly decreases the chance of audio glitches. The real-time mode
|
|
is enabled by passing the -R or --realtime option to jackd when starting
|
|
the server. It is only possible to run jackd in real-time mode as a
|
|
non-root user by modifying your PAM configuration, PAM stands for
|
|
Pluggable Authentication Modules and is the primary authentification
|
|
mechanism used on Fedora. The primary source of PAM documentation can be
|
|
found at the following at http://www.kernel.org/pub/linux/libs/pam/
|
|
|
|
The specific PAM configuration file that needs to be modified is
|
|
/etc/security/limits.conf and it controls the system resource limits. It
|
|
is important to understand that modifying the resource limits
|
|
configuration files can decrease the security of your system.
|
|
Documentation specific to the resource limits PAM module can be found at
|
|
http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/pam-6.html#ss6.12
|
|
|
|
The resource limits that need to be changed to allow jackd to run in
|
|
realtime mode are named rtprio and memlock. To increase the limits for a
|
|
specific user named fred you would add the following to
|
|
/etc/security/limits.conf
|
|
|
|
fred - rtprio 20
|
|
fred - memlock 50000
|
|
|
|
The value of rtprio can be set in the range 0 - 99 where any value
|
|
greater that 0 will allow the user to change the scheduling policy to
|
|
"real-time". By default the JACK server requires a minimum rtprio
|
|
setting of 20 but jackd will accept a command line parameter -P or
|
|
--realtime-priority which will change the minimum required value of
|
|
rtprio that is needed, but the default of 20 is nearly always
|
|
sufficient.
|
|
|
|
The appropriate value for memlock is dependent on the amount of memory
|
|
present in the system but a minimum value of 50000(50MB) and a maximum
|
|
value of half the available memory can be used as a rough guideline.
|
|
|
|
To verify that the resource limits have been modified you can use the
|
|
bash built-in ulimit command, for example:
|
|
|
|
$ulimit -a
|
|
core file size (blocks, -c) 0
|
|
data seg size (kbytes, -d) unlimited
|
|
max nice (-e) 0
|
|
file size (blocks, -f) unlimited
|
|
pending signals (-i) 8191
|
|
max locked memory (kbytes, -l) 50000
|
|
max memory size (kbytes, -m) unlimited
|
|
open files (-n) 1024
|
|
pipe size (512 bytes, -p) 8
|
|
POSIX message queues (bytes, -q) 819200
|
|
max rt priority (-r) 20
|
|
stack size (kbytes, -s) 10240
|
|
cpu time (seconds, -t) unlimited
|
|
max user processes (-u) 8191
|
|
virtual memory (kbytes, -v) unlimited
|
|
file locks (-x) unlimited
|
|
file locks (-x) unlimited
|
|
|
|
Keep in mind that you may have to re-login before changes to limits.conf
|
|
take effect.
|
|
|