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@xxxxxxxxxxxxxxxxxxxxx/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@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