Install Rivendell on Ubuntu

From Rivendell Wiki

Jump to: navigation, search

Contents

Introduction

Currently [ http://debian.tryphon.org ] maintains Rivendell packages for Ubuntu.

Note: More (Very outdated) documentation is available at http://tombrennan.org/index.php/2008/11/09/rivendell-how-to-ubuntu-style/

Prerequisite Recommendations

You either need to have mysql-server installed on your local machine or accessible via your network.

If you want to run Rivendell with jack then installing qjackctl is helpful.

Install Ubuntu Packages

Base Packages

These packages are compiled for Ubuntu 8.04.

Install the dependencies:

apt-get install bc cdda2wav cdparanoia flac lame libasound2 libc6 libflac8 libgcc1 libhpi libice6 libid3-3.8.3c2a libjack0 libqt3-mt libqt3-mt-mysql libsamplerate0 libsm6 libstdc++6 libvorbisenc2 libvorbisfile3 libx11-6 libxext6 libxi6 libxmu6 libxt6 mpg321 sox vorbis-tools

Install in this order:

wget http://www.kdrt.org/resources/Rivendell/ubuntu/libhpi_3.06.03-1ubuntu1_all.deb
sudo dpkg -i libhpi_3.06.03-1ubuntu1_all.deb
wget http://www.kdrt.org/resources/Rivendell/ubuntu/librivendell_1.0.0rc2-1ubuntu1_i386.deb
sudo dpkg -i librivendell_1.0.0rc2-1ubuntu1_i386.deb
wget http://www.kdrt.org/resources/Rivendell/ubuntu/rivendell-1.0.0rc2-1ubuntu1-i386.deb
sudo dpkg -i rivendell-1.0.0rc2-1ubuntu1-i386.deb

GPIO Support

wget http://www.kdrt.org/resources/Rivendell/ubuntu/gpio-source_0.9.6-0_all.deb
sudo dpkg -i gpio-source_0.9.6-0_all.deb

You'll need to install the modules_assistant package to install this. I have not done this so please help.


sudo apt-get install module-assistant

HPI Support

wget http://www.kdrt.org/resources/Rivendell/ubuntu/hpklinux-source_3.06.03-1ubuntu1_all.deb
sudo dpkg -i hpklinux-source_3.06.03-1ubuntu1_all.deb 

You'll need to install the modules_assistant package to install this. I have not done this so please help.

wget http://www.kdrt.org/resources/Rivendell/ubuntu/hpklinux-utils_3.06.03-1ubuntu1_all.deb

Warning: Installing the hpklinux-utils package without first compiling the hpklinux module will fail.

Configuration

Use:

sudo dpkg-reconfigure rivendell

Troubleshooting

Choosing the default sound card

If you have two soundcards sometimes your default device will get mixed up.

To make sure your chosen card shows up as the default device.

  • In a shell, type cat /proc/asound/modules
  • This will give the the name and index of each soundcard you have currently. Make a note of the names, and decide which one you want to be the default card.
  • Now type sudo nano /etc/modprobe.d/alsa-base
  • At the very end of the file, add the following (assuming you have 3 cards with module names A, B and C and you want to have them in the order CAB)
 options snd-C index=0
 options snd-A index=1
 options snd-B index=2

Or from: http://alsa.opensrc.org/index.php/MultipleCards#Multiple_Sound_Cards_--_Example_on_Debian_GNU.2FLinux

Since the above advice for Ubuntu Dapper didn't work for me this is what I did:

  1. run sudo nano -w /etc/modprobe.d/alsa-base to edit your alsa config, from a terminal.
  2. then I added the following at the end of the file and left the rest intact:

options snd-intel8x0 index=-2
options snd-cs46xx index=-1

Notes

Realtime Preemption

Most of the following is taken straight from: http://tapas.affenbande.org/wordpress/?page_id=6

If you are going to use jack-init, then you may want to see that page for a fix to the realtime startup issue.

If you are running jack you will want to install a realtime kernel for best performance.

The realtime kernel for Ubuntu Feisty is available here: https://wiki.ubuntu.com/RealTime/Feisty

After you've got the kernel you still need to set up real-time access for the audio group.

All you have to do for this is give your audio group permissions to access the rtprio, nice, and memlock limits. To do this, you just need to run these commands:

sudo su -c 'echo @audio - rtprio 99 >> /etc/security/limits.conf'
sudo su -c 'echo @audio - memlock 250000 >> /etc/security/limits.conf'
sudo su -c 'echo @audio - nice -10 >> /etc/security/limits.conf'

We can (albeit oversimplifying) say that the higher the priority of a task the more likely it is to run undisturbed. With -rt kernels we have the option of making IRQ handlers run with a lower priority than certain user space applications. It is, for example, possible to run jackd with a priority greater then all IRQ’s which might disturb audio operation (like disk or network). We need the jackd -P switch for that.

In a default -rt kernel all IRQ handler threads have default priorities in the range of 40-60, so making jackd run with a priority of 70 is a good choice here:

jackd -R -P 70 -d alsa …

But we also want the soundcard IRQ handler run at a higher prio than jack, as the soundcard irq is what ultimately drives jackd. Thus we can use the chrt utility to change this (my soundcard is on IRQ 4 in my system - make sure you check in /proc/interrupts what’s yours):

chrt -f -p 82 `pidof “IRQ-4″`

A priority of 82 is well above jackd. jackd also runs threads besides its main loop. Namely a watchdog at priority 10 above its main loop (80 in this example), and all clients’ process() threads will run with a priority 1 smaller than the main loop (69).

Jack Examples

I find the following jack configurations useful:

If you have only one soundcard with one stereo in and one stereo out then use this.

[JackSession]
Source1=rivendell_0:playout_0L
Destination1=alsa_pcm:playback_1
Source2=rivendell_0:playout_0R
Destination2=alsa_pcm:playback_2
Source3=rivendell_0:playout_1L
Destination3=alsa_pcm:playback_1
Source4=rivendell_0:playout_1R
Destination4=alsa_pcm:playback_2
Source5=rivendell_0:playout_2L
Destination5=alsa_pcm:playback_1
Source6=rivendell_0:playout_2R
Destination6=alsa_pcm:playback_2
Source7=alsa_pcm:capture_1
Destination7=rivendell_0:record_0L
Source8=alsa_pcm:capture_2
Destination8=rivendell_0:record_0R

If you have a card with multiple outputs and inputs try this one:

[JackSession]
Source1=rivendell_0:playout_0L
Destination1=alsa_pcm:playback_1
Source2=rivendell_0:playout_0R
Destination2=alsa_pcm:playback_2
Source3=rivendell_0:playout_1L
Destination3=alsa_pcm:playback_1
Source4=rivendell_0:playout_1R
Destination4=alsa_pcm:playback_2
Source5=rivendell_0:playout_2L
Destination5=alsa_pcm:playback_3
Source6=rivendell_0:playout_2R
Destination6=alsa_pcm:playback_4
Source7=alsa_pcm:capture_1
Destination7=rivendell_0:record_0L
Source8=alsa_pcm:capture_2
Destination8=rivendell_0:record_0R




Reference: English – Translations: Portuguese-br

Personal tools