Install under Gentoo

From Rivendell Wiki

Jump to: navigation, search
Rivendell fails to emerge on Gentoo as of late.

Contents

MySQL

Rivendell uses a mySQL server to store everything other than the audio. Emerging RD will ensure that at the least a mySQL client is present on you machine.

Client Only

If you already have a database and don't want the server installed, set the minimal USE flag on mySQL, then skip the next section. Else, install the server.

echo "dev-db/mysql minimal" >> /etc/portage/package.use

Server

Emerge MySQL

emerge -uN mysql

The -uN will prevent a reinstall.

Now create the intial mySQL folders and root account. Note that the mySQL root account is only used inside of mySQL.

emerge --config mysql

You should be prompted for a password.

To allow access for other machines, see Remote Client Access.

Add the daemon to the default runlevel.

rc-update add mysql default

Start the deamon.

/etc/init.d/mysql start

For a comprehensive, but probably unnecessary introduction to mySQL, see the Gentoo MySQL Startup Guide.

Install RD

Fetch Ebuild

The ebuild and patches are in the proaudio overlay. See proaudio wiki for retrieval instructions.

Unmask and Install

Once the ebuild is on your system, unmask the package.

  • For i686
echo "media-radio/rivendell ~86" >> /etc/portage/package.keywords
  • For amd64
echo "media-radio/rivendell ~amd64" >> /etc/portage/package.keywords

Now that qt3 has been removed from the main portage tree, you'll need another overlay before emerging RD.

layman -a kde-sunset
emerge -avu rivendell

Post Installation Configuration

ALSA

Configure you sound cards for excusive RD control.

rdalsaconfig

rd.conf

Make an /etc/rd.conf. A sample is at /etc/rd.conf.sample and the most important options are at the top:

[Identity]
AudioOwner=
AudioGroup=

Set owner and group to the user account that logs in and runs the rivendell applications.

Set the Hostname, Loginname, Password, and Database to your existing database. If this is a fresh install, leave the hostname at localhost. By default the mySQL root account can only be accessed from localhost. The login, password, and database can be whatever you want, just make sure you put something in there. Its best not to use the root password you set mySQL up with, you should only need that once, and that's next.

[mySQL]
Hostname=localhost
Loginname=
Password=
Database=
Driver=QMYSQL3

MySQL Database Creation

Now create the database as defined above.

rdadmin

Give it your mysql root password. Once this is done, rdadmin will ask for a user and password. The user is admin and there is no password.

Now you can set the daemons to work.

rc-update add rivendell default
killall caed
killall rdcatchd
killall ripcd
/etc/init.d/rivendell start

Any user that should be able to add audio to your library need be in the rivendell group.

groupmems -a [your user] -g rivendell

You'll need to log out and back in if this is the account you are using right now.

You should have a working installation. From here you can a look at the documentation in /usr/share/doc/rivendell for further configuration and the official manual for general operation.

Et Cetera

Jack

The init script that portage installs with rivendell runs the daemons under the permissions of the system user "rivendell". Using jack will require those deamons and jack to run under the same user.

IO Scheduling

When building a kernel from source, you are given four options for I/O sheduling; Anticipatory, Deadline, CFQ, and no-op. These are four different methods for scheduling reads and writes to block devices. Use deadline or CFQ.

Enable the block layer  --->
  IO Schedulers  --->.
    < > Anticipatory I/O scheduler
    <*> Deadline I/O scheduler
    <*> CFQ I/O scheduler
    Default I/O scheduler (Deadline)--->

Realtime Priority

Follow the gentoo documentation[1] then make the user rivendell part of a realtime group and restart your daemons.

Serial Ports

RD daemons under default permissions cannnot access serial ports. To change that add the rivendell user to the uucp group and restart the daemons.

usermodd -a -G uucp rivendell

XFS

XFS is a 64bit filesystem designed for parallel large file operations. It supports both native defragmentation and backups while mounted and even aligns its blocks and allocation groups with your RAID stripes. See chapter 4 in the handbook for partitioning and formating.

Fstab example

/dev/[your partition here]    /var/snd    xfs    grpid,noatime,noexec,nodev,nosuid    0 2
# Grpid: Newly created files take the group id of the directory in which it is created.
# Noatime: Do not update inode access times on this filesystem
# Noexec: Do not allow direct execution of any binaries on the mounted filesystem.
# Nosuid: Do not allow set-user-identifier or set-group-identifier bits to take effect.

Defragment your mounted XFS filesystems once a month with cron.

emerge xfsdump
ln -s /usr/bin/xfs_fsr /etc/cron.monthly/

By default xfs_fsr spends two hours parsing /etc/mtab for mounted XFS filesystems and defrags the files with the largest number of file extents. It won't touch files in memory.

Personal tools