Gentoo Wiki


NOTE This describes how to get the IR working using Ecto's program (see below) to use with Xmms. If you can provided general information about how to make this IR work with standards linux programs like LIRC please append this section. If you know how to modify Ecto's program to make it work with other applications (Quod Libet, Mplayer...etc.) please post your documents and share your knowledge.

The method for the Sound Blaster Audigy 2 Platinum never worked for with my Audigy 4. The IR when plugged in will output ID 041e:3100 Creative Technology, Ltd Philips Electronics - RCS Singapore Creative USB IR Receiver when typing dmesg in a console.

NOTE These instructions are old. Try using the Audigy 2 Platinum method using this remote config file, changing "livedrive_midi" to "alsa_usb" in the LIRC_DRIVERS= option and then report back here and let us know if it worked :).

machine ~#


ID 041e:3100 Creative Technology, Ltd [Philips Electronics - RCS Singapore Creative USB IR Receiver]Image:CursorOFF.gif

Someone called Ecto has posted a nifty little piece of code here to enable the use of the IR with XMMS. Check the link and follow the instructions in the README file.

However, the code relies on XMMS and Xmms-Perl which have both been moved out of portage... :) So if you already uninstalled XMMS you'll need to reinstall again XMMS and the Perl and Remote plugins.

With some small changes, Ecto's perl and C++ listener can be used to control either XMMS or Audacious without much effort. Here's my hacked-up version of Ecto's perl script. Note that it does NOT depend on any perl packages out of normal distribution. Note we're controlling the volume with aumix and Audacious with audtool.

# $Id:,v 1.3 2006-12-27 07:35:00 svh Exp $
# Licensed under GPLv2
use strict;
use warnings;
$| = 1;
my %event_map = (
        "power" => sub {`audtool --playback-play`},
        "mute" =>  sub {`aumix -v0`} ,
        "vol-" => sub { `aumix -v-1` },
        "vol+" => sub { `aumix -v+1` },
        "stop-eject" => sub { `audtool --playback-stop` },
        "play-pause" => sub { `audtool --playback-playpause` },
        "prev" => sub { `audtool --playlist-reverse` },
        "next" => sub { `audtool --playlist-advance` }

open EVENT, './hid_read2|';

while ( <EVENT> ) {
        print and next unless /^ \+ got key\(..\): (.*)$/;
        print "key[$1]: ";
        print "no event for this key\n" and next unless defined $event_map{$1};
        print "event dispatched\n" 


close EVENT;

First method: the Gentoo way

Warning: Xmms has been removed from portage. Use another player, such as audacious.

Here is an Xmms ebuild I copied from somewhere on the web. Create the directory /usr/portage/media-sound/xmms, copy the ebuild (give it the same as described here otherwise it won't work)

File: /usr/portage/media-sound/xmms/xmms-1.2.10.r16.ebuild
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/www/,v 1.5 2006/11/20 20:05:33 flameeyes dead $

inherit flag-o-matic eutils libtool



DESCRIPTION="X MultiMedia System"

KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86"
IUSE="nls esd mmx vorbis 3dnow mikmod directfb alsa oss arts jack sndfile lirc flac mad mp3"


	directfb? ( dev-libs/DirectFB )

#We want these things in DEPEND only
	nls? ( dev-util/intltool
	       sys-devel/gettext )
	!nls? ( !<sys-devel/gettext-0.14.1 )"

# USE flags pull in xmms plugins
PDEPEND="lirc? ( media-plugins/xmms-lirc )

	 flac? ( media-libs/flac )
	 mikmod? ( media-plugins/xmms-mikmod )
	 mp3? ( mad? ( >=media-plugins/xmms-mad-0.7 )
	        >=media-plugins/xmms-mpg123-1.2.10-r1 )
	 vorbis? ( >=media-plugins/xmms-vorbis-1.2.10-r1 )
	 sndfile? ( media-plugins/xmms-sndfile )

	 alsa? ( media-plugins/xmms-alsa )
	 arts? ( media-plugins/xmms-arts )
	 jack? ( media-plugins/xmms-jack )
	 esd? ( media-plugins/xmms-esd )
	 oss? ( media-plugins/xmms-oss )"

src_unpack() {
	unpack ${A}
	cd ${S}

		EPATCH_FORCE="yes" epatch

	export WANT_AUTOMAKE=1.9
	export WANT_AUTOCONF=2.5

	sed -i 's:Output Input Effect General Visualization::'

	for dir in . libxmms; do
		cd ${S}/${dir}
		rm acinclude.m4
		libtoolize --force --copy || die "libtoolize --force --copy failed"
		[ ! -f ] && ln -s ../
		aclocal -I ${WORKDIR}/m4 || die "aclocal failed"
		autoheader || die "autoheader failed"
		automake --gnu --add-missing --include-deps --force-missing --copy || die "automake failed"
		autoconf || die "autoconf failed"

	if use nls; then
		cd ${S}/po
		cp ${FILESDIR}/
		perl --pot

src_compile() {
	export EGREP="grep -E"

	local myconf=""

	if use !amd64 && { use 3dnow || use mmx; }; then
		myconf="${myconf} --enable-simd"
		myconf="${myconf} --disable-simd"

	# Please see Bug 58092 for details
	use ppc64 && replace-flags "-O[2-9]" "-O1"

	econf `use_enable nls` ${myconf} || die

	# For some reason, gmake doesn't export this for libtool's consumption
	emake -j1 || die

src_install() {
	export EGREP="grep -E"
	make DESTDIR="${D}" install || die

	newdoc ${PATCHDIR}/README README.patches
	newdoc ${PATCHDIR}/ChangeLog ChangeLog.patches

	keepdir /usr/share/xmms/Skins
	insinto /usr/share/pixmaps/
	newins ${DISTDIR}/gnomexmms.xpm xmms.xpm
	doins xmms/xmms_logo.xpm
	insinto /usr/share/pixmaps/mini
	doins xmms/xmms_mini.xpm

	insinto /etc/X11/wmconfig
	newins xmms/xmms.wmconfig xmms

	insinto /usr/share/applications
	doins ${FILESDIR}/xmms.desktop

	# Add the sexy Gentoo Ice skin
	insinto /usr/share/xmms/Skins/gentoo_ice
	doins ${WORKDIR}/gentoo_ice/*
	docinto gentoo_ice

	insinto /usr/include/xmms/libxmms
	doins ${S}/libxmms/*.h

	insinto /usr/include/xmms
	doins ${S}/xmms/i18n.h

pkg_postinst() {
	einfo "media-sound/xmms now just provides the xmms binary and libxmms."
	einfo "All plugins that were packaged with xmms are now provided by other"
	einfo "packages in media-plugins.  Some of these are automatically pulled in"
	einfo "based on USE flags.  Others you will need to emerge manually.  The"
	einfo "following is a list of packages which were previously provided by"
	einfo "media-sound/xmms that are not automatically emerged:"
	einfo "media-plugins/xmms-blur-scope"
	einfo "media-plugins/xmms-cdaudio"
	einfo "media-plugins/xmms-disk-writer"
	einfo "media-plugins/xmms-echo"
	einfo "media-plugins/xmms-ir"
	einfo "media-plugins/xmms-joystick"
	einfo "media-plugins/xmms-opengl-spectrum"
	einfo "media-plugins/xmms-sanalyzer"
	einfo "media-plugins/xmms-song-change"
	einfo "media-plugins/xmms-stereo"
	einfo "media-plugins/xmms-tonegen"
	einfo "media-plugins/xmms-voice"
	einfo "media-plugins/xmms-wav"

Then do:

machine ~#
ebuild /usr/portage/media-sound/xmms/xmms-1.2.10.r16.ebuild digestImage:CursorOFF.gif

Now if like me you cannot get Xmms-Perl to compile by invoking:

machine ~#
perl -CPAN -e "install Bundle::Xmms"Image:CursorOFF.gif

Get the Xmms-Perl ebuild below and repeat the procedure above and change accordingly the path as follows: /usr/portage/dev-perl/Xmms-Perl. The ebuild should be saved in this directory under the name Xmms-Perl-0.12.ebuild.

File: /usr/portage/dev-perl/Xmms-Perl/Xmms-Perl-0.12.ebuild
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/www/,v 1.15 2006/11/20 19:44:59 flameeyes dead $

inherit perl-module eutils

DESCRIPTION="A Perl extension interface to XMMS"

KEYWORDS="alpha amd64 ia64 ppc sparc x86"


src_unpack() {
	unpack ${P}.tar.gz


NOTE: I had to delete a few lines at the end of the ebuild because it would not compile. Take the original one if this does not work for you.

Then do:

machine ~#
ebuild /usr/portage/dev-perl/Xmms-Perl/Xmms-Perl-0.12.ebuild digestImage:CursorOFF.gif

Second method: build from source

Get the tar from The XMMS Site. Then do:

machine ~#
cd /location/where you downloaded/the fileImage:CursorOFF.gif
machine ~#
tar -xvf "type here the name of the file"Image:CursorOFF.gif
machine ~#
cd "name of the directory created"Image:CursorOFF.gif
machine ~#
machine ~#
make && make installImage:CursorOFF.gif

To install the Xmms-Perl package. Refer to this page.

Now cd to Ecto's program directory and execute

machine ~#

Pressing on the keys should give you an output, if XMMS is running it should actually respond to the keys accrodingly. NOTE: I could not get this to work myself.

Retrieved from ""

Last modified: Tue, 19 Aug 2008 22:28:00 +0000 Hits: 309