[linux-audio-user] 2.6.1, capabilities, jackstart, and Hydrogen

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: [linux-audio-user] 2.6.1, capabilities, jackstart, and Hydrogen
From: Benjamin Flaming (lau_AT_solobanjo.com)
Date: Sun Jan 18 2004 - 08:43:55 EET


     I'm in the process of trying to rebuild my audio box, after thoroughly
mangling my previous setup. I started with a fresh install of Slackware 9.1.
I then built the following software:

Vanilla 2.6.1 kernel (with 2-line capabilities patch)
ALSA-lib 1.0.0rc1
Jack 0.94.0 (configured with --enable-capabilities)
libcap 1.10
Hydrogen 0.8.1

     When I tried to start Hydrogen, however, the application locked up when
it connected to Jack. Any other program interacting with Hydrogen (e.g.
"killall -9 hydrogen", "ps -A", "top") also locked up. Jack continued
running smoothly, as did the rest of the environment.

     This problem does not happen when I run as root, nor does it happen when
I run Jack without realtime scheduling. It happens only when I use jackstart
as a normal user.

     I would like to test some of my other favorite Jack applications, but
sourceforge.net's CVS servers seem to be down right now, and some of the
library dependencies don't seem available by any other means. The only other
Jack client I'm aware of on my machine is jackrec. I successfully used
jackrec to capture 5 seconds of audio, with no lockup.

     Originally, the output of dmesg contained "Debug: sleeping function
called from invalid context at include/asm/semaphore.h:119" statements each
time there was a lockup. A visit with Google turned up this message:

http://www.mail-archive.com/alsa-devel_AT_lists.sourceforge.net/msg10203.html

     The call trace from my dmesg output was essentially identical, and so I
applied the patch contained in the message. This silenced the complaints,
but the lockups persisted.

     I was able to get a fresh CVS copy of Hydrogen (right before CVS went
down), but the result is the same as with 0.8.1. I was unable to build
0.8.0, due to backward-compatibility problems with Jack.

     Originally, I had Jack configured with --enable-optimize and
--enable-posix-shm, but I have since rebuilt (make uninstall, make clean,
./configure, make, make install) with only --enable-capabilities. No effect.

     If I use strace to launch Hydrogen, I get output which consistently
terminates with the following lines:

sched_get_priority_max(0x1) = 99
sched_get_priority_min(0x1) = 1
mlockall(MCL_CURRENT|MCL_FUTURE

     If I use strace to launch jackrec, the output continues past the mlockall
call:

sched_get_priority_max(0x1) = 99
sched_get_priority_min(0x1) = 1
mlockall(MCL_CURRENT|MCL_FUTURE) = 0
rt_sigprocmask(SIG_SETMASK, NULL, [RTMIN], 8) = 0
write(7, "\240\360\n@\0\0\0\0 M\5\10\31o\7_AT_P\260\4\10\0\0\0\200\0"..., 148) =
148
rt_sigprocmask(SIG_SETMASK, NULL, [RTMIN], 8) = 0

(Plus another screen or so of additional output.)

     If there's any other info I should provide, please let me know. I'm out
of my league here. I don't know whether the issue is the kernel, ALSA, Jack,
libcap, or Hydrogen. Can anyone point me in the right direction?

|)
|)enji


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Sun Jan 18 2004 - 08:43:32 EET