# make modules modules_install # depmod -a
This document sets out to identify the software most commonly used with the Rio Karma portable audio player under the Linux operating system. There are a number of available applications and software components to help you get the most out of your player:
USB/FS drivers: changes to the Linux kernel to provide access to the mass storage mode of the player
libkarma: a software library and utilities for manipulation of the Karma (USB/net)
LKarmaFS: a filesystem based on libkarma that exposes the Karma database as a directory hierarchy (USB/net)
Amarok: a KDE music player that sports a Karma DAP plugin (USB only)
Banshee: a Gnome music player that also has a Karma DAP plugin (USB only)
Rio Music Manager Lite (RMML): a Java application similar to the Windows Rio Music Manager (net only)
jEmplode: an Java application for the empeg which also works with Karma (net only)
To use the USB features of the Karma, one must enable kernel support for it. To proceed you will need:
Linux kernel 2.6.16 or later (includes partition and USB support)
omfs-0.6.1 or later (filesystem driver for device's raw FS)
It is important that the kernel be built with CONFIG_USB_STORAGE=(y/m) and CONFIG_KARMA_PARTITION=y. Most distro kernels are configured this way.
Test the kernel by plugging in the Karma. If the unit displays the "Connecting…" screen, and dmesg shows two new scsi devices, (e.g: "sda: sda1 sda2"), then you have the proper kernel support. If not, refer to the Troubleshooting section.
Build the omfs driver so that you can mount the device. Download it, unpack it, and then:
# make modules modules_install # depmod -a
You should now be able to mount the raw disk for use by other applications:
# mount -t omfs /dev/sda2 /mnt/karma
Libkarma is a library that abstracts the database and transport mechanisms of the Karma, and is a requirement for several Linux applications. It supports both the network (Ethernet) and the USB interfaces. The Ethernet calls implement the PEARL protocol http://www.cliff.biffle.org/software/pearl/docs.php, while the corresponding USB calls accurately emulate the same protocol. Therefore, libkarma provides transparent access to the Rio Karma disk contents through both interfaces.
Download the latest (major) release from http://www.freakysoft.de/libkarma/, or clone the mercurial repository at link:http://www.freakysoft.de/repos/libkarma/. Snapshots of recent patch releases are also posted at http://sourceforge.net/projects/linux-karma/. Installing libkarma requires first installing the taglib library (C bindings) from http://developer.kde.org/~wheeler/taglib.html.
To build and install the archive, do the following:
$ tar xzvf libkarma-<version>.tar.gz $ cd libkarma-<version>/ $ make $ sudo make install
If you plan on using Banshee with the Karma, be sure to install a mono development environment before installing libkarma. If libkarma detects a C# compiler it will install the mono bindings automatically.
Libkarma comes with several useful utilities which are built in the tools/ directory. One such utility is riocp. If you have installed the USB drivers you can pass a mount point to riocp; otherwise, you may use the IP address of the Karma when connected to the dock.
Copying files to the Karma is easy with riocp, both through the Ethernet or the USB interfaces:
$ ./riocp /my/music (or) $ ./riocp -a /mnt/karma /my/music
LKarmaFS is a read/write filesystem view of the contents of the Karma device. It is based upon libkarma and FUSE, the filesystem-in-userspace facility built into recent kernels. This provides a way to manage the Karma as if it were a regular directory tree, both over the network and USB. In order to use it, you will need the following:
most recent lkarmafs, from http://linux-karma.sourceforge.net
libkarma and (optionally) USB drivers
FUSE userspace libraries
To build, install the prerequisites, then simply invoke make in the lkarmafs directory.
Refer to the http://linux-karma.sourceforge.net/lkarmafs.html for information on building and using LKarmaFS.
Amarok is an advanced media player for the Linux/KDE platform. Currently Amarok supports a range of portable media devices: Apple's iPod, devices based on iRiver's iFP protocol, devices based on the Creative NJB protocol, as well as usb mass-storage devices.
Since version 1.4.4, Amarok includes a Karma DAP plugin. You can read more about it at http://linux-karma.sourceforge.net/amarok-karma.html.
Banshee is a music player similar to iTunes, with a rich plugin architecture. It is possible to patch Banshee to recognize the Karma and play tracks from its hard drive. At some point, synchronization support will be added and the plugin patch will be integrated with the Banshee project.
The Banshee Karma plugin requires having the USB drivers installed and libkarma with the mono bindings. For more information on installing Banshee, visit http://bobcopeland.com/karma/banshee/.
Banshee should recognize the Karma when plugged in, and show the Karma icon after it is mounted. Mount as shown in the "USB Driver" section.
Rio Music Manager Lite was one of the first applications to support the Rio Karma in Linux. Written by Michael Schrag for Rio, RMML is a Java application that comes with the Karma and supports music transfers over the network. RMML presents a GUI that is similar in spirit to the Rio Music Manager Windows application that comes with the player, though as the name implies, with a reduced feature set.
To get RMML, visit https://rmml.dev.java.net/. You will need to have a Java runtime installed.
jEmplode is an application written primarily for the empeg, a car stereo unit that was a predecessor of the Karma. As both units use the same network protocol, jEmplode uses RMML's libraries and can thus also speak to the Karma. Note that jEmplode will NOT work with the Karma over USB, despite links to a USB driver on its web page. This driver is for the empeg which used a different USB protocol than the Karma.
jEmplode lives at http://www.jemplode.org/ and requires RMML and a Java runtime.
KarmaLib is an LGPL Java library that is not maintained. It is located at http://karmalib.sourceforge.net/ and requires Java 1.4.