Install Rivendell on Ubuntu
From Rivendell Wiki
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
Since the above advice for Ubuntu Dapper didn't work for me this is what I did:
- run
sudo nano -w /etc/modprobe.d/alsa-baseto edit your alsa config, from a terminal. - 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

