This relates to Bug 21752 which is currently marked as 'Won't fix'. I wasn't sure whether to append to that one or open a new one. jackstart is required if I want to run specific applications using real-time scheduling with Alsa & the Jack-Audio-Connection-Kit as non-root. I understand that the current Gentoo kernel does not support capabilities, so jackstart won't run today. However, I'd like to patch my own custom kernel and then be able to use jackstart. This allows users to get root capabilities for specific applications while not having them working in a root xterm. Is it possible to put jackstart into the ebuild for jack-audio-connection-kit and then: 1) (preferred) don't worry about it actually working for now? I believe jackstart will bomb out telling users the kernel doesn't have capabilities enabled or 2) (not prefered) also patch the kernel to enable capabilities? In my mind I will likely 1) Patch the kernel by hand anyway. The patch is simple. 2) emerge alsa 3) emerge jack to get this working. I think it won't impact people who don't know what they are doing. Thanks, Mark Reproducible: Always Steps to Reproduce:
How about i add it hidden behind a local use flag that you'll have to explicitly turn on? I don't want you to think that i'm making this difficult on purpose, it's just that i don't want to deal with the kernel part right. In the past i've discussed working with one of the kernel tree maintainers to include patches to turn on capabilities. The problem is that not everyone want to use the same kernel package. Anyway, one of us will get to this in the next couple of days.
J.Ellis, By a 'hidden flag' do you mean a USE flag? I have no problem with that at all if there is some documentation that would tell people. Maybe on the jack-audio-connection-ket Gentoo Database page that calls it out? My issue is that no one will end up knowing what flag to use. (Please be aware I am a newer Gentoo user and do not always know where to go to get info like this.) The real point about jackstart is that you do NOT have to deal with the kernel at all, even if you build it by default with Jack. (my preference) If my machine's kernel doesn't have capabilities built in, and I run jackstart, it will just tell me my kernel doesn't have capabilities. The machine doesn't crash. jackstart gives a clear message. The jackd man page gives more explanation for users that are interested. I think you should just include jackstart in the ebuild, don't bother with the kernel patch, and let users that want to use it figure out how to patch the kernel. It was no different for me when I turned on 3D acceleration for my video card. The ebuild were only part of the story. I still had to do some work. The point was the ebuilds didn't stop me from using the program. Obviously we can't have people build from source as it breaks the dependeny flow. Thanks for your attention to this! Cheers, Mark
Really, jackstart could be integrated into an addition of an init.d script. Also, since the "jack" use-flag exists, it could affect the patches applied to the kernel.
Commited in 0.80.0-r1, ~x86 masked. The local use flag is 'jack-caps'. Please let me know if there are any issues. Thanks, and sorry for the slow turn around. I've been away and this fell through the cracks.
Has the 0.80-r1 ebuild been incorporated into portage yet? I've synced today (and the last several days) but no -r1. Thanks.
perhaps I'm missing something, but there is no 0.80.0-r1 in the tree... There is however 0.90.{0,1}, and 0.94.0. Status of this? Reopening, since the issue seems to exist.
Can someone fill me in on what 'capabilities' are in the kernel? Are they in 2.6? Have they been introduced in any 2.4 kernel patchset? Can I look somewhere in /proc or grep some /usr/src/linux/include file or linux/.config to determine that capabilities have been enabled?
In /usr/src/include/kernel there is a file called capabilities.h which defines what users, etc. and and can not do on a system. For Jack you have to modify it to allow some low latency stuff to happen (see the Jack web site under FAQs about increasing performance). Basically you're allowing some low latency stuff. In 2.4.20 there is an option to build that in. I made the changes to capability.h and built in the low latency stuff. I think that 2.6 includes this. That's my understanding but you'd be better off asking on the jack mailing list.
setting this back to fixed as the ebuilds in portage use the 'caps' use flag for this feature.