[PlanetCCRMA] Re: Problem with /usr/bin/jackstart
Mark Knecht
markknecht at gmail.com
Sat Aug 6 19:14:00 PDT 2005
On 8/6/05, Ron Pepper <feffer777 at yahoo.com> wrote:
>
> >
> > jackd -d alsa -r 44100 -n 4 -p 1024 -d hw
>
> [rp at localhost ~]$ jackd -d alsa -r 44100 -n 4 -p 1024 -d hw
> jackd 0.99.36
> Copyright 2001-2003 Paul Davis and others.
> jackd comes with ABSOLUTELY NO WARRANTY
> This is free software, and you are welcome to redistribute it
> under certain conditions; see the file COPYING for details
>
> JACK compiled with System V SHM support.
> loading driver ..
> apparent rate = 44100
> creating alsa driver ... hw|hw|1024|4|44100|0|0|nomon|swmeter|-|32bit
> configuring for 44100Hz, period = 1024 frames, buffer = 4 periods
> Couldn't open hw for 32bit samples trying 24bit instead
> Couldn't open hw for 24bit samples trying 16bit instead
> ALSA: got smaller periods 2 than 4 for capture
> ALSA: cannot configure capture channel
> cannot load driver module alsa
> no message buffer overruns
> >
> > This sets the sample rate and the basic transfer size. See man
> > jackd
> > for more info. If this still doesn't work then try raising -p to
> > 2048/4096/etc. as an experiement.
>
> Same result for -p 2048/4096/8192/16384
Right. You can see from the message above that it doesn't like n=4 and
sseems to want you to use n=2.
In terms of latency, n=2/p=1024 is the same as n=4/p=512.
>
> > The issue here is why you are not able to run realtime. Do you have
> > the realtime-lsm module loaded? As root
> >
> > lsmod
>
> [root at localhost rp]# /sbin/lsmod
> Module Size Used by
<SNIP>
> realtime 5256 0
> commoncap 7040 1 realtime
<SNIP>
So realtime is loaded but apparently your user account is not able to
access the capability...
I'm mostly running Gentoo today so I don't have access right now to a
machine similar to yours but from this laptop I can run modinfo and
get some data. I've added a few line feeds to make it more readable
for you:
flash ~ # modinfo realtime
vermagic: 2.6.12-gentoo-r3 preempt PENTIUM4 gcc-3.3
parmtype: any:int
parm: any: grant realtime privileges to any process.
parmtype: gid:int
parm: gid: the group ID with access to realtime privileges.
parmtype: mlock:int
parm: mlock: enable memory locking privileges.
description: Realtime Capabilities Security Module
license: GPL
description: Standard Linux Common Capabilities Security Module
license: GPL
vermagic: 2.6.12-gentoo-r3 preempt PENTIUM4 gcc-3.3
depends:
flash ~ #
So there are three parameters - any, gid and mlock
I load realtime like this:
modprobe realtime gid=408 any=1
This grants group 408 the rights to use realtime capabilities. In my
/etc/group file I have this line:
realtime:x:408:mark
which places user mark in group 408. With my laptop I can then run jackd -R
flash ~ # jackd -R -d alsa -r 44100 -n 2 -p 128 -d hw
jackd 0.99.0
Copyright 2001-2003 Paul Davis and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
loading driver ..
apparent rate = 44100
creating alsa driver ... hw|hw|128|2|44100|0|0|nomon|swmeter|-|32bit
configuring for 44100Hz, period = 128 frames, buffer = 2 periods
There really isn't much more to it than that. I think if you great a
group, add your user account to that group, reload realtime to allow
that group to use the capability, and then try running jackd again
you'll have a pretty good chance of getting it to work.
What confuses me about all of this is that I thought Fernando's
scripts set all this up automatically, although I know I had to do a
lot of this by hand in the old days.
Down't worry about being a newbie. We all were once. Learn and give back later.
Cheers!
- Mark
More information about the PlanetCCRMA
mailing list