FedoraForum.org - Fedora Support Forums and Community
Results 1 to 4 of 4
  1. #1
    Join Date
    Mar 2011
    Posts
    5

    F14, jack audio & pulseaudio

    Hi,

    I am running jack audio and over that I do have pulseaudio. Jack daemon runs up nicely in realtime, but when I try running pulseaudio over jack with my jack.pa configuration file (below) I get next errors:

    W: module-jack-source.c: JACK error >Cannot use real-time scheduling (RR/15)(1: Operation not permitted)<
    W: module-jack-source.c: JACK error >AcquireRealTime error<
    W: module-jack-sink.c: JACK error >Cannot use real-time scheduling (RR/15)(1: Operation not permitted)<
    W: module-jack-sink.c: JACK error >AcquireRealTime error<

    I do have /etc/security/limits.d/99-jack.conf checked and user has been added to the all possible groups needed (audio, pulse, jackuser, pulse-access, ...), at least I think I have done it correctly or similarly like in F12 which was running nicely with this environment setup.

    Is there something in F14 kernel (like: http://en.gentoo-wiki.com/wiki/JACK#..._Configuration ) which could cause this kind of problem or is there just something wrong with configuration still ? Thanks for any tips.

    -Mika




    jack.pa --------------
    #!/usr/bin/pulseaudio -nF
    #
    load-module module-jack-source
    load-module module-jack-sink

    load-module module-native-protocol-unix
    load-module module-stream-restore
    load-module module-default-device-restore
    load-module module-rescue-streams
    load-module module-suspend-on-idle
    .ifexists module-gconf.so
    .nofail
    load-module module-gconf
    .fail
    .endif
    .ifexists module-x11-publish.so
    .nofail
    load-module module-x11-publish
    .fail
    .endif
    ------------------------

  2. #2
    Join Date
    May 2008
    Posts
    623

    Re: F14, jack audio & pulseaudio

    Do you use cgroups? I had the same issue and i found out it was because i was using cgroups. After disabling cgroup resource management for "jack" users it worked for me.

    here is my current jack settings:

    less ~/jack.pa

    Code:
    #!/usr/bin/pulseaudio -nF
    
    load-module module-jack-sink
    load-module module-jack-source
    
    load-module module-native-protocol-unix
    load-module module-stream-restore
    # load-module module-volume-restore
    load-module module-default-device-restore
    load-module module-rescue-streams
    load-module module-suspend-on-idle
    .ifexists module-gconf.so
    .nofail
    load-module module-gconf
    .fail
    .endif
    .ifexists module-x11-publish.so
    .nofail
    load-module module-x11-publish
    .fail
    .endif
    cat /etc/security/limits.d/*jack*

    Code:
    # Default limits for users of jack-audio-connection-kit
    
    # @jackuser - rtprio 20
    # @jackuser - memlock 4194304
    
    @jackuser - rtprio 90
    @jackuser - memlock unlimited
    @jackuser - nice -20
    
    @pulse-rt - rtprio 20
    @pulse-rt - nice -20
    notes

    Code:
    pulseaudio -k
    jackd -R -P4 -dalsa -r44100 -p512 -n4 -D -Chw:0 -Phw:0
    ./jack.pa
    
    pulseaudio --start to go back to pa.
    Last edited by domg472; 5th March 2011 at 04:50 PM.
    Come join us on #fedora-selinux on irc.freenode.org
    http://docs.fedoraproject.org/selinu...ide/f10/en-US/

  3. #3
    Join Date
    Dec 2007
    Posts
    10

    Re: F14, jack audio & pulseaudio

    so domg472
    how specifically does one go about disabling cgroup resource management for a user?

  4. #4
    Join Date
    May 2008
    Posts
    623

    Re: F14, jack audio & pulseaudio

    If you do not know how then this is most probably not related.

    Basically you would edit /etccgconfig.conf and add a new group there then edit /etc/cgrules.conf and add the user/group there.

    example cgconfig.conf:

    Code:
    #
    #  Copyright IBM Corporation. 2007
    #
    #  Authors:	Balbir Singh <balbir@linux.vnet.ibm.com>
    #  This program is free software; you can redistribute it and/or modify it
    #  under the terms of version 2.1 of the GNU Lesser General Public License
    #  as published by the Free Software Foundation.
    #
    #  This program is distributed in the hope that it would be useful, but
    #  WITHOUT ANY WARRANTY; without even the implied warranty of
    #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    #
    # See man cgconfig.conf for further details.
    #
    # By default, mount all separately controllers
    # to /cgroup/<controller name>
    
    mount {
    	cpuset	= /cgroup/cpuset;
    	cpu	= /cgroup/cpu;
    	cpuacct	= /cgroup/cpuacct;
    	memory	= /cgroup/memory;
    	devices	= /cgroup/devices;
    	freezer	= /cgroup/freezer;
    	net_cls	= /cgroup/net_cls;
    #	ns	= /cgroup/ns;
    	blkio	= /cgroup/blkio;
    }
    
    group staff {
            perm {
                    task {
                            uid = root;
                            gid = root;
                    }
                    admin {
                            uid = root;
                            gid = root;
                    }
            }
            cpu {
                    cpu.shares = 2000;
            }
            cpuset {
                    cpuset.cpus = 0-3;
                    cpuset.mems = 0;
            }
            cpuacct {
            }
            memory {
                    memory.limit_in_bytes = 3072M;
            }
            net_cls {
                    net_cls.classid = 0x10020;
            }
            freezer {
            }
            devices {
            }
            blkio {
                    blkio.weight = 800;
            }
    }
    
    group users {
            perm {
                    task {
                            uid = root;
                            gid = root;
                    }
                    admin {
                            uid = root;
                            gid = root;
                    }
            }
            cpu {
                    cpu.shares = 1000;
            }
    
            cpuset {
                    cpuset.cpus = 0;
                    cpuset.mems = 0;
            }
            cpuacct {
            }
            memory {
                    memory.limit_in_bytes = 100M;
            }
            net_cls {
                    net_cls.classid = 0x10030;
            }
            freezer {
            }
            devices {
            }
            blkio {
                    blkio.weight = 100;
            }
    }
    example cgrules.conf:

    Code:
    # /etc/cgrules.conf
    #
    #Each line describes a rule for a user in the forms:
    #
    #<user>			<controllers>		<destination>
    #<user>:<process name>	<controllers>		<destination>
    #
    #Where:
    # <user> can be:
    #        - an user name
    #        - a group name, with @group syntax
    #        - the wildcard *, for any user or group.
    #        - The %, which is equivalent to "ditto". This is useful for
    #          multiline rules where different cgroups need to be specified
    #          for various hierarchies for a single user.
    #
    # <process name> is optional and it can be:
    #	 - a process name
    #	 - a full command path of a process
    #
    # <controller> can be:
    # 	 - comma separated controller names (no spaces)
    # 	 - * (for all mounted controllers)
    #
    # <destination> can be:
    # 	 - path with-in the controller hierarchy (ex. pgrp1/gid1/uid1)
    #
    # Note:
    # - It currently has rules based on uids, gids and process name.
    #
    # - Don't put overlapping rules. First rule which matches the criteria
    #   will be executed.
    #
    # - Multiline rules can be specified for specifying different cgroups
    #   for multiple hierarchies. In the example below, user "peter" has
    #   specified 2 line rule. First line says put peter's task in test1/
    #   dir for "cpu" controller and second line says put peter's tasks in
    #   test2/ dir for memory controller. Make a note of "%" sign in second line.
    #   This is an indication that it is continuation of previous rule.
    #
    #
    #<user>  	<controllers>  	<destination>
    #
    #john          cpu		usergroup/faculty/john/
    #john:cp       cpu		usergroup/faculty/john/cp
    #@student      cpu,memory	usergroup/student/
    #peter	       cpu		test1/
    #%	       memory		test2/
    #@root	    	*		admingroup/
    #*		*		default/
    # End of file
    @staff	*	staff/
    @user	*	user/
    But as said, if you do not know about cgroups, then it is likely not related to your issue.
    Come join us on #fedora-selinux on irc.freenode.org
    http://docs.fedoraproject.org/selinu...ide/f10/en-US/

Similar Threads

  1. Make Pulseaudio cooperate with Jack on F14
    By hellork in forum Guides & Solutions (Not For Questions)
    Replies: 1
    Last Post: 26th October 2010, 03:05 PM
  2. Jack and Pulseaudio
    By darkman088 in forum Using Fedora
    Replies: 14
    Last Post: 2nd February 2010, 01:11 AM
  3. Fedora 12: Jack and Pulseaudio - is there any change?
    By darkman088 in forum Using Fedora
    Replies: 1
    Last Post: 20th December 2009, 10:09 PM
  4. jack and pulseaudio
    By tistu in forum Using Fedora
    Replies: 7
    Last Post: 4th April 2009, 03:04 PM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •