next up previous
Next: Understanding low latency Up: Planet CCRMA at home Previous: What is Planet CCRMA

Installing Planet CCRMA on Fedora 28, 29 or 30

The Planet CCRMA package collection for Fedora 28, 29 or 30 (x86_64 architecture) resides in a yum repository that can be accessed through the Internet.

You will need to have a reasonably fast network connection to the world to install Planet CCRMA by connecting directly to its repository or one of its mirrors.

Installing Planet CCRMA is easy. You will be guided through the install process in the following pages.

Installing Fedora

The first step is to install Fedora 28, 29 or 30. You can download cdrom or dvd images from the main Fedora site at RedHat or one of its mirrors. Or you can use the re-spins from the Fedora Unity project which include more up to date packages and will save you a lot of downloads later.

Fedora no longer supports the 32 bit(i386) of the base operating system as a primary architecture. Planet CCRMA currently supports the 64 bit (x86_64) version of the base operating system.

Regardless of which dvd or cdrom you use, make sure you upgrade to the latest security and functionality upgrades before proceeding. Run this (as root) from a terminal if you have not yet upgraded:

yum upgrade

It could take a long time to download and install all the upgrades...

Adding the Planet CCRMA repositories

You now need to add the proper urls to your Yum configuration files so that it can access the Planet CCRMA repositories.

Type this to install configuration files for Yum that will enable it to access the Planet CCRMA repositories:

For Fedora 30:

rpm -Uvh

For Fedora 29:

rpm -Uvh

For Fedora 28:

rpm -Uvh

Adding the RPMFusion repositories

Some of the Planet CCRMA packages require libraries or programs contained in the RPMFusion repositories. It is probably a good idea to add them to your configuration. Surf to the RPMFusion Configuration page for instructions.

Access to realtime scheduling

In Fedora 14 or later access for all users to realtime scheduling is not turned on by default (as opposed to what was happenning before). The Jack package is now distributed by Fedora and they judge that having default realtime scheduling for everyone is a security risk (it is bit risky but not excessively so).

To be able to use Jack using realtime scheduling under Fedora 14 or higher (really needed for good audio performance) add the group ``jackuser'' to your user (or users). You can access the ``User Manager'' application from the ``System'' ``Administration'' menu in the default Gnome Desktop, highlight the user you want to change and double click it to access the groups it has access to (find jackuser and turn it on). Or from the command line, as root, type ``usermod -a -G jackuser USERNAME'' where USENAME is the name of the user you want to add to the jackuser group. For versions earlier than Fedora 17, the Fedora Jack package does not allow users to use high enough realtime scheduling priorities that are needed by the low latency Planet CCRMA kernels. You can install the ``planetccrma-rt-permissions'' package to enable those high priorities for the ``jackuser'' group, or the ``planetccrma-rt-permissions-all'' to allow all users unrestricted access to realtime scheduling.

In Fedora 17 and higher the Jack package has the proper realtime priority for any kernel, so those additional packages are not needed (but they are still there for convenience, specially if you are not that concerned about security and want to give all users blanket access to realtime scheduling).

Installing applications

Now you can install the actual sound and music programs and start having fun! You can browse the list of available packages here:

NOTE: don't be surprised if you don't find, say, Ardour, in the Planet CCRMA package repositories. Many applications have migrated (and are still migrating) to the Fedora repositories so look there as well. Eventually everything will move there, but it is a long process (packagers welcome!) Or use yumex to browse for packages with a gui.

Some shortcuts:

  • to install all SuperCollider 3 packages type:

    yum install supercollider-world

  • to install all Pd packages type:

    yum install pd-extended

Good luck in your explorations of the musical world hosted on Linux! Be patient, if you are coming from other operating systems there is a new world to learn and discover. Getting to know it is rewarding but it will take time.

While the stock Fedora kernel has a reasonable performance, the best perfomance for demanding audio tasks can be obtained by running the rt patched Planet CCRMA realtime kernel. See below for details on how to install it if you want...

Multiple sound cards

Fedora speeds up the boot process by loading device drivers for hardware in parallel. That means the load order of the drivers for soundcards is not predictable. If you are not using USB soundcards there is a possible workaround (see below), otherwise it is impossible to make sure the cards have consistent fixed indexes as USB drivers are loaded very early in the boot process.

In any case, it is now recommended to address soundcards by name instead of index number (which can change from boot to boot). You will need to do this, for example, to set the card that the Jack sound server will use if you start it from the command line or through Qjackctl.

To find out the name you want to use go to a terminal and type:

cat /proc/asound/cards

This is what I get in my workstation here at CCRMA:

cat /proc/asound/cards
 0 [M66            ]: ICE1712 - M Audio Delta 66
                      M Audio Delta 66 at 0xe880, irq 18
 1 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0xfe8f8000 irq 22

If I want to use the first soundcard listed there (the MAudio Delta 66) I could use ``hw:0'' but the index could change in the next boot. The answer is to use ``hw:M66'' instead (the name is in between square brackets). If you do that you will always use the proper card regardless of the load order of device drivers.

Multiple sound cards workaround

NOTE: The following is optional, only useful if you are not using USB soundcards, and if for some reason you don't want to use the name of the card to address it as outlined above.

Typing this in a terminal will show you which cards you have and what is their current order:

cat /proc/asound/cards

If you see just one card you should be fine and can ignore the rest of this section.

Otherwise you will need to add (as root) /etc/modprobe.d/local.conf if it does not exist and add some magic so that the card device drivers are always loaded in the same order.

You can use the following template as a basis for what you have to add to local.conf. If local.conf already exists just add to this at the end:

alias snd-card-0 snd-CARD_0
options snd-card-0 index=0
options snd-CARD_0 index=0
alias snd-card-1 snd-CARD_1
options snd-card-1 index=1
options snd-CARD_1 index=1
alias snd-card-N snd-CARD_N
options snd-card-N index=N
options snd-CARD_N index=N

In this template ``...'' stands for more lines here, one for each extra card (don't copy the dots! :-) ``CARD_N'' is the name of the kernel module that corresponds to the card you want in position ``N'' (N=0 is the first card, usually the default device used by all programs).

If you don't know what kernel module your card uses just do this as root from a terminal:

/sbin/lsmod | grep ^snd

This will list all the soundcard related kernel modules. From the list and the output for ``cat /proc/asound/cards'' you should be able to figure out which is which.

Here is a filled in example that includes three cards:

alias snd-card-0 snd-ice1712
options snd-card-0 index=0
options snd-ice1712 index=0
alias snd-card-1 snd-ens1370
options snd-card-1 index=1
options snd-ens1370 index=1
alias snd-card-2 snd-usb-audio
options snd-card-2 index=2
options snd-usb-audio index=2

As there is currently no clean way to reload the whole alsa subsystem just reboot the machine. From now on the cards you have should always appear in the same order.

Installing the low latency kernel

The Planet CCRMA low latency kernels include the rt patch. The patch modifies the kernel in a way that lowers its latency. This is critical for running audio programs (specially the Jack sound server) with very small buffers. Features of this set of patches have been slowly percolating to the regular mainline kernel over the years with the result that current Fedora stock kernels are not that bad. But if you plan on using Jack or other audio applications with very small buffers, say 128 or 64 frames, you will probably need to use the realtime kernel for best results. So, if you try the Fedora kernel and it is good enough for your purposes you don't really need to install the Planet CCRMA rt kernel.

Fedora, by default, only keeps the last two installed kernels. As the realtime kernels are more experimental than the stock Fedora kernels it is wiser to keep all versions until you decide it is time to erase them (after testing that a new kernel actually works).

To change this edit /etc/yum.conf and modify the installonly_limit option to read:


NOTE: we are not installing the kernels directly. There's a reason. The planetccrma-core package is empty but it requires all the actual packages needed, and with the proper versions. The core packages include the patched kernel itself, a startup script that reorders the priority of the interrupt handling to favor the sound cards and several additional components of the ALSA device driver and utilities system.

So, go ahead and install the Planet realtime kernel:

yum install planetccrma-core

If you have more than 4Gytes of RAM and you installed the 32 bit version of the operating system you can install the following kernel instead:

yum install planetccrma-core-PAE

(NOTE: in Fedora 12 or higher the PAE kernel is the default and the non-PAE version no longer exists).

The PAE (Physical Address Extension kernel will be able to address all your memory. Individual applications will still be limited to 4G of addressing but that is, at least in my experience, plenty for now.

Testing the new kernel

At this point you can cross your fingers and reboot the machine. At the grub prompt press any key to access the boot menu and then select the kernel you want to try (the Planet CCRMA kernel, if it was the last kernel installed, should be the default).

If at any time you want or need to change the default boot kernel you can edit the /boot/grub/grub.conf file and changing the ``default='' line to point to the kernel you want to boot by default. Kernels are zero base indexed, ``0'' being the first in the list of kernels that follows the default line. Depending on how many kernels you just installed, and which one you want to boot by default, the ``default='' line should read ``0'' or ``1''.

You are done with the hard stuff. At this point you have a machine that has a low latency kernel and it is booting happily. Just start making music!

The Planet CCRMA testing repositories

Some applications live in the Planet CCRMA testing repositories. To install their configuration files type this (all in one line):

For Fedora 30:

rpm -Uvh

For Fedora 29:

rpm -Uvh

For Fedora 28:

rpm -Uvh

You can browse the list of available packages here:

next up previous
Next: Understanding low latency Up: Planet CCRMA at home Previous: What is Planet CCRMA

© Copyright 2001...2019 Fernando Lopez-Lezcano, CCRMA, Stanford University.
All rights reserved.