[PlanetCCRMA] Fedora Core 5 audio process...

Fernando Lopez-Lezcano nando@ccrma.Stanford.EDU
Tue Apr 4 13:02:02 2006

On Tue, 2006-04-04 at 11:11 -0400, blindman jones wrote:
> I installed a partition with FC5 on it to try and get audio apps
> working. My goal is to get the programs that I use most going. I hope
> this might help Fernando and others who might want to do the same. I
> am hoping for a little guidance from the community... I will detail
> the process on a google page also.
> First, I am going to look at the current FC5 kernel,
> 2.6.16-1.2080_FC5, to see what patches need to be applied. Most of the
> documentation I can find is out of date.
> What I am curious to know, is what changes to PAM did Fernando do to
> FC4 and do I have to do the same for the FC5 version? Are there any
> other changes I will need to make just to get a base system ready to
> build audio apps?

BTW, I started working on fc5 last week, most apps build (on a first
preliminary run), some don't[*]. I have spent a few days trying to get a
system going that will make it easier to figure out build dependencies
and will also flag overlaps with Fedora Core Extras, Livna and probably

I have not started with the kernel yet, that a whole different
story[**]. About PAM, I think the PAM that comes with Fedora Core
already has the right patches. What it does not have is its
configuration set to allow realtime scheduling from user processes (ie:
programs not running as root). That can be configured
in /etc/security/limits.conf. The lines I was using on fc4 are:

# or (default) allow everyone access
*               -       rtprio          99
*               -       nice            -10
*               -       memlock         4000000

First one allows any user to run SCHED_FIFO processes with any priority,
the second allows run you renice processes (not really needed, I guess),
the third allows you to lock down memory. 

So, you could use this (you will need to logout and login again after
the changes) and the normal FC kernel to run audio apps with realtime
scheduling. The low latency behavior will not be the best but the latest
kernels are getting better. 

> Once I have a kernel with realtime working, and made any changes to
> PAM etc... I will then begin to build JACK, Ardour, JAMin, Hydrogen.
> Will I need to mess with any other programs than the kernel & PAM?

You don't really need to mess with the kernel (for initial tests). Most
probably the FC kernel will be fine unless you need low latencies
(although I have not done any tests yet). 

-- Fernando

[**] the kernel: I have a kernel based on 1.1833 (fc4) that I grafted
Ingo Molnar's patch on. Not trivial and I have to do that again with the
latest fc kernel, probably a morning's worth _if_ I can concentrate. I
have not released it because it was causing crashes in some tests I did
here - I have not been able to pinpoint the real cause, last candidate
was a stack overflow but I have gotten no response from a post I wrote
to lkml and Ingo. 

[*] here is a quick list of things that did not build and why (very
criptic) - some of these will be very easy to fix, I just didn't and
moved along to get a better picture of what to expect. In a few cases I
tried with newer versions, I have to do that with more apps:

  patches required for gcc4.1 (done)

  weird problem at the final link, tries to link with libcurl and
libidn, both fail. If those two are removed from the link stage the link
succeeds and the resulting binary does link with both libraries!

  fails to build, new version available

  gcc4.1 template problem

  gcc4.1 extra qualification problems

  still using -Wall in fc5

  complains about something

  check to see if it can be made to build with wxGTK 2.6.x
  with compat-wxGTK2-devel if fails with:
    /usr/lib/libwx_gtk2-2.4.so: undefined reference to

  config.status: error: cannot find input file: po/Makefile.in.in

  src/lib/xml/tinyxml.h:828: error: extra qualification
'TiXmlDeclaration::' on member 'TiXmlDeclaration'

  prbsgen.h:126: error: extra qualification 'Prbsgen::' on member
  prbsgen.h:127: error: extra qualification 'Prbsgen::' on member
  (same prob on previous package, patch available)

  extra qualifications...

    File not
found: /var/tmp/libquicktime-0.9.7-1.rhfc5.ccrma-root/usr/bin/lqtplay
    File not
found: /var/tmp/libquicktime-0.9.7-1.rhfc5.ccrma-root/usr/bin/lqtvrplay
    File not found by
glob: /var/tmp/libquicktime-0.9.7-1.rhfc5.ccrma-root/usr/share/man/man1/*

  fails to build, new version available

  fails to build (early fail)

  fails to build

  fails to build (warnings being treated as errors)

  src/qsynthMainForm.cpp:27:25: error: qsynthmeter.h: No such file or
  src/qsynthMainForm.cpp:28:26: error: qsynthtabbar.h: No such file or

  fails to build

  extra qualification

  poor naming choice of new binary? (dump)

  fails to build, need auto* tools?

  extra qualification

  /usr/bin/ld: cannot find -lSM

Things that apparently built (_no_ testing at all):

a52dec a52dec-devel aeolus alsaplayer alsaplayer-devel amb-plugins ams
ats bitscope blop brutefir ceres3 cinepaint cinepaint-devel clalsadrv
clalsadrv-devel clthreads clthreads-devel clxclient clxclient-devel
denemo dssi dssi-devel dvdauthor ecamegapedal ecasound ecasound-devel
faad2 faad2-devel ffmpeg ffmpeg2theora ffmpeg-devel fil-plugins
fluidsynth fluidsynth-dssi galan gamix gscanbus gtk-canvas
gtk-canvas-devel hexter jack-audio-connection-kit
jack-audio-connection-kit-example-clients jackmix jamin kmidimon lash
lash-devel libdvdread libdvdread-devel libecasoundc libfishsound
libfishsound-devel libfluidsynth libfluidsynth-devel liblo liblo-devel
liblrdf liblrdf-devel libmad libmad-devel libmpeg3 libpostproc mftrace
muse mxml mxml-devel pmidi potrace PVC pvoc pyecasound qamix qjackctl
qmidiarp qmidicontrol qmidiroute qwt qwt-devel raptor raptor-devel
resample rev-plugins rosegarden4 rubyecasound seq24 supercollider
swh-plugins tapiir tap-plugins tap-plugins-doc tap-reverbed timemachine
tse3 tse3-devel vcdimager vco-plugins vkeybd xmms-aac xsynth-dssi