[LAU] anyone running 4.13.15-300.rt5.1.fc27.ccrma.x86_64+rt + snd_usb yet?

Len Ovens len at ovenwerks.net
Sun Dec 3 06:05:32 UTC 2017


On Sat, 2 Dec 2017, Chris Caudle wrote:

> I thought perhaps jackd would give useful error messages, but I see no
> errors when starting, but "no callback" messages begin showing up right
> away.  I'm stopped at the moment, I do not know how to proceed without
> finding some kind of error message to point me in the right direction.  Is
> there any other location to find status information on USB audio devices?
>
> This is the rtirq configuration in use:
> RTIRQ_NAME_LIST="usb enp3s4f1 i8042"
> RTIRQ_PRIO_HIGH=95
> RTIRQ_PRIO_DECR=2
>
> Is "usb" enough there, or should it be snd_usb in place of usb?

In my experience, usb is not enough. Think of it another way, do you want 
your mouse, web cam, whatever to have a higher priority than your audio? I 
have found that the high priority usb device needs to be unique (use3 used 
to work for me) and that the rest of the usb needs to be less than all 
other high priority things example "usb3 enp3s4f1 i8042 usb".

> As an aside, I found that the IRQ priorities were not set automatically, I
> had to manually run rtirq, but that is probably a fedora package problem.

I have found this too, it means that rtirq was run before one or more of 
the devices you are interested in being ready. rtirq really needs to run 
as a daemon setting priorities as devices show up. (even reordering them 
if needed) the change is hot plugable devices have become a thing. It may 
be better to not have rtirq not run at startup but after the audio device 
has been detected.

> Getting USB interrupt priority set to a high priority made no difference
>
> This is the startup output from jackd:
> Acquire audio card Audio1
> creating alsa driver ...
> hw:Lambda|hw:Lambda|1024|3|48000|0|0|nomon|swmeter|-|32bit
> configuring for 48000Hz, period = 1024 frames (21.3 ms), buffer = 3 periods
> ALSA: final selected sample format for capture: 24bit little-endian
> ALSA: use 3 periods for capture
> ALSA: final selected sample format for playback: 24bit little-endian
> ALSA: use 3 periods for playback

At this point I would expect a line for each port on the audio interface 
like:
graph reorder: new port 'system:capture_1'

> Jack: JackSocketServerChannel::Open
> Jack: JackServerSocket::Bind : addr.sun_path /dev/shm/jack_default_1000_0
> Jack: JackSocketServerChannel::BuildPoolTable size = 1
> Jack: JackEngine::Open
> Jack: JackClientSocket::Connect : addr.sun_path /dev/shm/jack_default_1000_0
> Jack: JackEngine::ClientInternalOpen: name = freewheel
> Jack: JackEngine::AllocateRefNum ref = 1
> Jack: JackPosixSemaphore::Allocate name = jack_sem.1000_default_freewheel
> val = 0
> Jack: JackEngine::NotifyAddClient: name = freewheel
> Jack: JackDriver::ClientNotify ref = 1 driver = system name = freewheel
> notify = 0
> Jack: JackDriver::ClientNotify ref = 0 driver = freewheel name = system
> notify = 0

Umm, driver = freewheel? If jack is in freewheel and also connected to the 
sound card that does not make sense. Unless I am mixing up this freewheel 
with another one, jack freewheel means advance to the next block/graph 
when this one is finished regardless of when the audio card is ready 
without calling it an xrun. That would distort things for sure.

Thats all that sticks out for me.

Which version of jackd? with or without dbus, what command to start? I use 
jackdbus and the startup config is in ${HOME}/.config/jack/conf.xml 
jackd stores its command line in ${HOME}/.jackdrc. also check /etc/jackdrc 
to see if the distro has set that odd.

--
Len Ovens
www.ovenwerks.net



More information about the Linux-audio-user mailing list